C++: Contract Implementation Rules

SkillDev tools

C++ CODEMANIFEST contract implementation rules

Available today. Use it from your connected AI after setup.

Connect ahel once, and every AI you use reads what you have installed.

Then ask your AI: use the C++: Contract Implementation Rules skill

What this skill tells your AI

The instructions your AI receives, as published by qarium/goga in goga/assets/skills/goga-cell-cpp/SKILL.md and read by ahel’s review.

Language skill for C++.

Apply the specification in the context of the calling skill. Do not retell the content — use it for decision-making.

Invoked through the goga-lang-disp router.


Examples

Full CODEMANIFEST example for C++ with all DSL constructs:

Imports:
  - Types:
      - Buffer
      - StreamConfig AS Config
    Usages:
      - memory_layout
    From: path/to/stream_cell

Usages:
  conventions: .goga/usages/cpp_conventions.md
  pattern: |
    Use RAII for resource management. Prefer stack allocation over heap allocation.
  testing: |
    Use Catch2. Each public function must have test coverage.

Annotations: |
  Use `conventions` for code style.
  Use `testing` for test requirements.
  Use `memory_layout` from Imports for buffer alignment rules.

  Use value semantics only. No raw pointers or references in public API.

---

"lookup_entry(std::string key) -> value: int":
  location: engine.hpp
  annotations: |
    Look up an entry by key.

    `key`: lookup key string
    `value`: found value or 0 if not found

    Use `pattern` for implementation.

"Parser(input: std::string)":
  location: parser.hpp
  annotations: |
    Configurable parser for structured input.

    `input`: raw input string

    Use `memory_layout` from Imports for buffer sizing.
    Use `conventions` for code style.
  properties:
    "position -> int": |
      Current parsing position.
    "length -> int": |
      Total input length.
  methods:
    "parse() -> tokens: std::vector<std::string>": |
      Parse input into tokens.

      `tokens`: parsed token list

      Use `pattern` for implementation.
    "reset()": |
      Reset parser state to beginning.

"Buffer::StreamBuffer(config: Config)":
  location: stream.hpp
  annotations: |
    Stream buffer extending Buffer with configurable capacity.

    `config`: buffer configuration from `Config` type.

    Use `memory_layout` from Imports for allocation strategy.

->Buffer: {}

---

Author: Goga
CreatedAt: 22/05/26
Description: |
  Example CODEMANIFEST demonstrating all DSL constructs for C++.

Cell

A cell is a directory with a public header:

cell/
├── CODEMANIFEST
├── cell.hpp

Language Features

Facade: the header file (cell.hpp) defines the public API. Everything declared in the header within the cell namespace constitutes the facade. Implementation resides in the corresponding .cpp files.

Naming: PascalCase for user-defined classes and structs, snake_case for functions and variables. Standard library types (std::string, std::vector) are used as-is (snake_case).

Namespace: each cell uses its own namespace for isolation.

Constructors: the Entity signature describes the class constructor. Constructor parameters are the input data.

Memory: pointers, references, and smart pointers are forbidden in the contract. Use value semantics.

Construct Mapping

C++CODEMANIFESTNote
class / struct in namespaceEntityConstructor → Entity signature
Free function in namespaceRoutine
Public member variableProperty
Public member functionMethod
ConstructorEntity signature

Implementation

  • Public API defined in header
  • Use namespace per cell

Signature Rules

Allowed:

std::string
int, double, bool
std::vector<T>
std::map<K, V>
std::optional<T>

Forbidden:

pointers (*T)
references (&, &&)
smart pointers
void*
templates in DSL

Signals

GitHub stars
29
Last commit
Sep 2026
Advanced
Catalog kind
skill
Gateway key
goga-cell-cpp
Source
github.com/qarium/goga