con un clic
goga-cell-go
Golang rules for implementing CODEMANIFEST contracts
Instalar con Codex o Claude Copia este prompt, pégalo en Codex, Claude u otro asistente, y deja que revise la página de la skill y la instale por ti.
Menú
Golang rules for implementing CODEMANIFEST contracts
Instalar con Codex o Claude Copia este prompt, pégalo en Codex, Claude u otro asistente, y deja que revise la página de la skill y la instale por ti.
Basado en la clasificación ocupacional SOC
Python rules for implementing CODEMANIFEST contracts
Verify each Cell's CODEMANIFEST against the implementation
Generate the final acceptance report with verdict
Defines the acceptance scope — the set of cells for a given functionality
Final acceptance orchestrator for contract-oriented workflows
Cell test coverage assessment for acceptance review
| name | goga-cell-go |
| description | Golang rules for implementing CODEMANIFEST contracts |
Language skill for Golang.
Apply this specification within the calling skill's context. Do not paraphrase the contents — use them to drive decisions.
Invoked through the goga-lang-disp router.
A complete CODEMANIFEST example for Go with all DSL constructs:
Imports:
- Types:
- BaseModel
- RepositoryConfig AS Config
Usages:
- query_patterns
From: path/to/storage_cell
Usages:
conventions: .goga/usages/go_conventions.md
pattern: |
Follow Go idioms: return errors as last return value, use interfaces for abstraction.
testing: |
Table-driven tests required for all exported functions and methods.
Annotations: |
Use `conventions` for code style.
Use `testing` for test requirements.
Use `query_patterns` from Imports for database query patterns.
All methods returning errors must follow `(result, error)` pattern.
---
"ParseInput(input string) -> data:[]byte":
location: parser.go
annotations: |
Parse raw input string into structured data.
`input`: raw string to parse
Use `pattern` for implementation.
"Server(host string)":
location: server.go
annotations: |
HTTP server with configurable host.
`host`: server hostname
Use `query_patterns` from Imports for request handling.
Use `conventions` for code style.
properties:
"Host -> string": |
Server hostname.
"Port -> int64": |
Server port number.
methods:
"HandleRequest(req Request) -> resp:Response, err:error": |
Handle incoming HTTP request.
`req`: incoming request
`resp`: response to send
`err`: error if request handling fails
Use `pattern` for implementation.
"Shutdown() -> err:error": |
Gracefully shut down the server.
`err`: error if shutdown fails.
"BaseModel::Repository(db DB)":
location: repository.go
annotations: |
Repository extending BaseModel with database operations.
`db`: database connection
Use `query_patterns` from Imports for query construction.
->BaseModel: {}
---
Author: Goga
CreatedAt: 22/05/26
Description: |
Example CODEMANIFEST demonstrating all DSL constructs for Go.
A cell is a Go package:
cell/
├── CODEMANIFEST
├── cell.go
Facade: The Go package itself serves as the facade. All exported identifiers define the cell's public API. The contract-extractor reads exported names verbatim — names declared in CODEMANIFEST must match exactly.
Naming: Use camelCase for all identifiers (no underscores). Exported identifiers start with
an uppercase letter: SomeFunc, SomeField. Unexported identifiers start with lowercase: someFunc, someField.
CODEMANIFEST references exported names only.
Constructors: Go does not provide constructors. The Entity signature declares a factory function (e.g. NewServer()).
Methods: Methods are defined via receivers, not inside struct definitions. The contract-extractor associates methods with their struct based on the receiver type.
Error handling: Follow the (result, error) idiom. CODEMANIFEST return values must carry
a semantic label: () -> err:error or () -> result:T, err:error.
| Go | CODEMANIFEST | Note |
|---|---|---|
type X struct | Entity | Struct fields → properties (exported only) |
type X interface | Entity | Interface methods → methods |
func (r *X) Method() | Method | Bound to Entity by receiver type |
func Name() (no receiver) | Routine | Package-level function |
| Exported struct field | Property | Type derived from field declaration |
Allowed:
string, int, float64, bool, error
[]T, map[string]T
Forbidden:
pointers (*T),
interface{},
variadic (...),
channels,