원클릭으로
goga-cell-go
Golang rules for implementing CODEMANIFEST contracts
Codex 또는 Claude로 설치 이 Prompt를 복사해 Codex, Claude 또는 다른 어시스턴트에 붙여 넣으면 Skill 페이지를 검토하고 설치를 진행할 수 있습니다.
메뉴
Golang rules for implementing CODEMANIFEST contracts
Codex 또는 Claude로 설치 이 Prompt를 복사해 Codex, Claude 또는 다른 어시스턴트에 붙여 넣으면 Skill 페이지를 검토하고 설치를 진행할 수 있습니다.
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,