Pre-action boundary checking — validates agent tool calls against declared capabilities and task contracts
한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.
Idiomatic Go patterns from Effective Go
한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.
설치 방법 보기설치하기 전에 에이전트에게 전달되는 지시 내용을 확인할 수 있습니다.
Apply idiomatic Go patterns and best practices from official Go documentation.
rules:
- Use gofmt for all code formatting
- Indentation uses tabs, not spaces
- No line length limit, but break long lines sensibly
- Let gofmt handle alignment
package_names:
- Short, concise, lowercase, single-word
- No underscores or mixedCaps
- Name is basename of source directory
- Example: bufio, not bufIO or buf_io
getters:
- No "Get" prefix for getters
- obj.Owner() not obj.GetOwner()
- Setter can use "Set": obj.SetOwner(user)
interface_names:
- One-method interfaces: method name + "er"
- Reader, Writer, Formatter, CloseNotifier
- Avoid stealing standard names unless same signature
mixedCaps:
- Use MixedCaps or mixedCaps, never underscores
- Exported: MixedCaps (uppercase first)
- Unexported: mixedCaps (lowercase first)
if_statements:
- Accept initialization statement
- Prefer: if err := file.Chmod(0664); err != nil
- Omit else when if ends with break/continue/return
- Avoid unnecessary else
for_loops:
- Go's only loop construct
- for init; condition; post { } - like C for
- for condition { } - like C while
- for { } - infinite loop
- Use range for strings, slices, arrays, maps, channels
switch:
- Cases don't fall through by default
- Use fallthrough keyword if needed
- Multiple cases: case '0', '1', '2'
- Type switch: switch v := x.(type)
multiple_returns:
- Return multiple values for result + error
- func (file *File) Write(b []byte) (n int, err error)
named_results:
- Document return values with names
- Can simplify code but use judiciously
- Unnamed returns OK for short functions
defer:
- Executes when function returns
- LIFO order for multiple defers
- Use for cleanup: unlock mutexes, close files
- Arguments evaluated when defer executes, not when called
new_vs_make:
- new(T): allocates zeroed storage, returns *T
- make(T, args): creates slices, maps, channels only
- make returns initialized (not zeroed) value of type T
slices:
- Backed by arrays, can grow
- append() to add elements
- copy() for safe duplication
- Slice of slice shares underlying array
maps:
- Reference type, nil until initialized
- make(map[KeyType]ValueType)
- Comma ok idiom: val, ok := map[key]
- delete(map, key) to remove
pointer_vs_value_receivers:
- Pointer receiver: can modify, no copy overhead
- Value receiver: safe from modification
- If any method needs pointer, all should use pointer
- Rule: values immutable, pointers mutable
design:
- Interfaces define behavior, not data
- Small interfaces (1-3 methods) preferred
- Accept interfaces, return structs
- If type implements interface, it satisfies implicitly
common_interfaces:
- io.Reader: Read(p []byte) (n int, err error)
- io.Writer: Write(p []byte) (n int, err error)
- fmt.Stringer: String() string
- error: Error() string
goroutines:
- Lightweight, multiplexed onto OS threads
- go function() to start
- Don't communicate by sharing memory
- Share memory by communicating
channels:
- Primary synchronization mechanism
- ch := make(chan int) - unbuffered
- ch := make(chan int, 100) - buffered
- Send: ch <- v
- Receive: v := <-ch
- Close: close(ch)
patterns:
- Don't leak goroutines - ensure they exit
- Use context for cancellation
- select for multiple channel operations
- sync.WaitGroup for goroutine coordination
principles:
- Errors are values, handle them explicitly
- Check errors immediately after call
- Return errors, don't panic
- Add context when propagating: fmt.Errorf("op failed: %w", err)
panic_recover:
- Panic for unrecoverable errors only
- Library functions should return errors, not panic
- Recover only in deferred functions
- Convert internal panics to errors at package boundary
packages:
- One package per directory
- Package name matches directory name
- main package for executables
- Avoid circular imports
files:
- doc.go for package documentation
- _test.go suffix for test files
- Group related types and functions
When writing or reviewing Go code:
gofmt or goimports아직 리뷰가 없습니다. 사용해 본 소감을 남겨 주세요.
로그인 없이 쓸 수 있습니다. 사용 후기, 질문, 작동하지 않은 환경 등을 편하게 남겨 주세요.
아직 댓글이 없습니다. 첫 댓글을 남겨 보세요.
Pre-action boundary checking — validates agent tool calls against declared capabilities and task contracts
한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.
Auto-detect project context and optimize harness — deactivate unused agents/skills, suggest missing experts, generate project profile
한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.
Adversarial code review using attacker mindset — trust boundary, attack surface, business logic, and defense evaluation
한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.
Apache Airflow best practices for DAG authoring, testing, and production deployment
한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.
Alembic migration patterns for naming conventions, safety checks, expand-contract, env.py configuration, and CI integration
한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.
Pre-routing ambiguity analysis — scores request clarity and asks clarifying questions when needed (inspired by ouroboros)
한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.