syllago
CLAUDE.md15 starsChanged 4 months agoApache-2.0View on GitHub
A package manager for AI coding tool content. Import, export, and convert content (rules, skills, agents, prompts, hooks, commands, MCP configs) between providers. Hub-and-spoke conversion through syllago's own canonical format. Content registries are community-driven — syllago provides the tooling but does not own or curate registry content. IMPORTANT: After any Go code change, you MUST do BOTH steps before declaring work complete or asking the user to test: If you only ran make build, the work is NOT done. Both…
In this repository4 other files it gives its agents.
- AGENTS.mdAGENTS.md
- cli/CLAUDE.mdCLAUDE.md
- releaseSkill
- tui-builderSkill
The file
We split this CLAUDE.md into the rules it gives an agent
10 rules. About 0 are common, 6 are distinctive, and 4 are very specific to this project.
≈0
Common · estimate
Many files like this have a rule of this kind.
≈6
Distinctive · estimate
This author's own choices. Worth a look.
4
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Very specific: line 23
If you only ran make build, the work is NOT done.
- Distinctive: line 41
Every behavioral code change must include tests.
- Distinctive: line 43
New logic: must have test cases covering the happy path and at least one error path.
- Distinctive: line 44
Bug fixes: must include a regression test that would have caught the bug.
- Very specific: line 45
CLI commands: must have integration tests using cobra's RunE pattern (see cli/CLAUDE.md and .claude/rules/cli-test-patterns.md).
- Very specific: line 46
TUI components: must have golden file tests for visual output and unit tests for logic (see .claude/rules/tui-test-patterns.md).
- Distinctive: line 48
Test patterns already established:
- Distinctive: line 52
No mocking libraries — hand-craft stubs using interfaces and function overrides
- Very specific: line 54
Check coverage after changes: cd cli && go test ./your/package/...
- Distinctive: line 58
When adding new functionality that requires both a new import AND new code using that import:
≈ “Common” is an estimate: at least 1 in 5 of the 26,980 CLAUDE.md files we read have a rule of the same kind, not the same words. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
Syllago
@AGENTS.md
A package manager for AI coding tool content. Import, export, and convert content (rules, skills, agents, prompts, hooks, commands, MCP configs) between providers. Hub-and-spoke conversion through syllago's own canonical format.
Content registries are community-driven — syllago provides the tooling but does not own or curate registry content.
Build and Test
make setup # Configure git hooks (run once after clone)
make build # Compile binary to cli/syllago
cp cli/syllago ~/.local/bin/syllago # Install to PATH (REQUIRED — see below)
make test # Run all testsIMPORTANT: After any Go code change, you MUST do BOTH steps before declaring work complete or asking the user to test:
- Build —
make buildwrites the compiled binary tocli/syllagoonly. The Makefile has no install target. - Install to PATH —
cp cli/syllago ~/.local/bin/syllago(or whichever pathwhich syllagoresolves to). The user'ssyllagocommand runs the binary on PATH, NOTcli/syllago. Skipping this step means the user tests against a stale binary and your fix appears not to work — wasting a full debug cycle.
If you only ran make build, the work is NOT done. Both commands are mandatory; treat them as one indivisible step.
IMPORTANT: Always run cd cli && make fmt before committing Go changes. CI enforces gofmt and will fail on unformatted code. A pre-commit hook also blocks unformatted commits locally.
For TUI visual changes, regenerate golden baselines after tests pass:
cd cli && go test ./internal/tui/ -update-goldenKey Conventions
- Hooks and MCP configs merge into provider settings files (JSON merge). All other content types use filesystem (files, dirs, symlinks).
- Hook canonical format is defined in
docs/spec/hooks.md. Canonical event names are provider-neutral snake_case (before_tool_execute, notPreToolUse). Canonical tool names are descriptive lowercase (shell,file_read,file_edit). Provider-native names (CC'sPreToolUse, Gemini'sBeforeTool, etc.) live in theHookEvents/ToolNamesmaps intoolmap.go— Claude Code is a regular provider entry, not the implicit key. - Go conventions: see
cli/CLAUDE.md - TUI component patterns: see
cli/internal/tui/CLAUDE.md
Testing Requirements
Every behavioral code change must include tests. Coverage target is 80% on core logic packages (converter, installer, lifecycle, catalog, loadout, moat, analyzer). Thin command wiring, print-only functions, and stubs are explicitly exempt — never write a test whose only purpose is to raise a coverage number.
- New logic must have test cases covering the happy path and at least one error path.
- Bug fixes must include a regression test that would have caught the bug.
- CLI commands must have integration tests using cobra's
RunEpattern (seecli/CLAUDE.mdand.claude/rules/cli-test-patterns.md). - TUI components must have golden file tests for visual output and unit tests for logic (see
.claude/rules/tui-test-patterns.md).
Test patterns already established:
httptest.NewServerfor HTTP endpoints (seeupdater/updater_test.go)t.TempDir()+git initfor git operations (seepromote/promote_test.go)- Table-driven tests with
t.Run()subtests - No mocking libraries — hand-craft stubs using interfaces and function overrides
Check coverage after changes: cd cli && go test ./your/package/... -coverprofile=cov.out && go tool cover -func=cov.out | grep total
Go Edit Patterns
When adding new functionality that requires both a new import AND new code using that import:
- Prefer a new file over modifying an existing file when adding a cohesive set of functions (e.g.,
privacy.gofor privacy gate logic). This avoids any risk of import/usage sequencing issues. - If modifying an existing file, add the import and the code that uses it in a single Edit call — never add an import in one edit and the function using it in a separate edit. Between edits,
goimportsorgoplsmay strip the "unused" import. - After editing Go files, verify with
grepthat your changes survived before proceeding. System reminders about files being "modified by a linter" mean the edit may not have applied as expected.
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
No reviews yet
People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.
- It worked
- Partly
- It didn't
Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

