@givolt/i3-composer-agent 0.0.0-stage → 1.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.agents/plugins/marketplace.json +23 -0
- package/.claude/commands/build.md +44 -0
- package/.claude/commands/code-simplify.md +22 -0
- package/.claude/commands/constraints.md +32 -0
- package/.claude/commands/plan.md +18 -0
- package/.claude/commands/review.md +16 -0
- package/.claude/commands/ship.md +72 -0
- package/.claude/commands/spec.md +17 -0
- package/.claude/commands/test.md +19 -0
- package/.claude/commands/webperf.md +32 -0
- package/.claude-plugin/marketplace.json +27 -0
- package/.claude-plugin/plugin.json +19 -0
- package/.codex-plugin/plugin.json +28 -0
- package/.gemini/commands/build.toml +43 -0
- package/.gemini/commands/code-simplify.toml +22 -0
- package/.gemini/commands/constraints.toml +32 -0
- package/.gemini/commands/planning.toml +18 -0
- package/.gemini/commands/review.toml +16 -0
- package/.gemini/commands/ship.toml +72 -0
- package/.gemini/commands/spec.toml +17 -0
- package/.gemini/commands/test.toml +19 -0
- package/.gemini/commands/webperf.toml +32 -0
- package/CHANGELOG.md +23 -0
- package/LICENSE +21 -0
- package/NOTICE.md +9 -0
- package/README.md +117 -2
- package/agents/code-reviewer.md +102 -0
- package/agents/security-auditor.md +112 -0
- package/agents/test-engineer.md +95 -0
- package/agents/web-performance-auditor.md +184 -0
- package/bin/i3-composer-agent.cjs +122 -0
- package/commands/build.toml +43 -0
- package/commands/code-simplify.toml +22 -0
- package/commands/constraints.toml +32 -0
- package/commands/planning.toml +18 -0
- package/commands/review.toml +16 -0
- package/commands/ship.toml +72 -0
- package/commands/spec.toml +17 -0
- package/commands/test.toml +19 -0
- package/commands/webperf.toml +32 -0
- package/docs/adoption-guide.md +129 -0
- package/docs/advanced-per-agent-configuration.md +70 -0
- package/docs/agents.md +123 -0
- package/docs/antigravity-setup.md +128 -0
- package/docs/codebuddy-setup.md +41 -0
- package/docs/codex-setup.md +34 -0
- package/docs/commandcode-setup.md +69 -0
- package/docs/comparison.md +131 -0
- package/docs/copilot-cli-setup.md +64 -0
- package/docs/copilot-setup.md +162 -0
- package/docs/cursor-setup.md +225 -0
- package/docs/developer-onboarding.md +116 -0
- package/docs/gemini-cli-setup.md +133 -0
- package/docs/getting-started.md +208 -0
- package/docs/opencode-setup.md +259 -0
- package/docs/other-hosts.md +7 -0
- package/docs/skill-anatomy.md +203 -0
- package/docs/windsurf-setup.md +48 -0
- package/evals/README.md +101 -0
- package/evals/cases/api-and-interface-design.json +45 -0
- package/evals/cases/browser-testing-with-devtools.json +44 -0
- package/evals/cases/ci-cd-and-automation.json +45 -0
- package/evals/cases/code-review-and-quality.json +49 -0
- package/evals/cases/code-simplification.json +45 -0
- package/evals/cases/constraint-driven-development.json +79 -0
- package/evals/cases/context-engineering.json +44 -0
- package/evals/cases/debugging-and-error-recovery.json +58 -0
- package/evals/cases/deprecation-and-migration.json +52 -0
- package/evals/cases/documentation-and-adrs.json +44 -0
- package/evals/cases/doubt-driven-development.json +43 -0
- package/evals/cases/frontend-ui-engineering.json +52 -0
- package/evals/cases/git-workflow-and-versioning.json +47 -0
- package/evals/cases/idea-refine.json +43 -0
- package/evals/cases/incremental-implementation.json +57 -0
- package/evals/cases/interview-me.json +42 -0
- package/evals/cases/observability-and-instrumentation.json +44 -0
- package/evals/cases/performance-optimization.json +53 -0
- package/evals/cases/planning-and-task-breakdown.json +45 -0
- package/evals/cases/security-and-hardening.json +53 -0
- package/evals/cases/shipping-and-launch.json +56 -0
- package/evals/cases/source-driven-development.json +44 -0
- package/evals/cases/spec-driven-development.json +72 -0
- package/evals/cases/test-driven-development.json +73 -0
- package/evals/cases/using-agent-skills.json +44 -0
- package/evals/fixtures/api-and-interface-design/service-brief.md +19 -0
- package/evals/fixtures/browser-testing-with-devtools/README.md +5 -0
- package/evals/fixtures/browser-testing-with-devtools/index.html +24 -0
- package/evals/fixtures/browser-testing-with-devtools/server.js +15 -0
- package/evals/fixtures/ci-cd-and-automation/package.json +8 -0
- package/evals/fixtures/ci-cd-and-automation/src/slug.js +3 -0
- package/evals/fixtures/ci-cd-and-automation/test/slug.test.js +9 -0
- package/evals/fixtures/code-review-and-quality/user-search.diff +16 -0
- package/evals/fixtures/code-simplification/config-parser.js +46 -0
- package/evals/fixtures/code-simplification/config-parser.test.js +15 -0
- package/evals/fixtures/context-engineering/context-audit.md +15 -0
- package/evals/fixtures/debugging-and-error-recovery/pagination.js +8 -0
- package/evals/fixtures/debugging-and-error-recovery/pagination.test.js +9 -0
- package/evals/fixtures/debugging-and-error-recovery/time-pressure.md +6 -0
- package/evals/fixtures/deprecation-and-migration/api-inventory.md +9 -0
- package/evals/fixtures/documentation-and-adrs/decision-context.md +16 -0
- package/evals/fixtures/doubt-driven-development/migration-plan.md +19 -0
- package/evals/fixtures/frontend-ui-engineering/Button.tsx +7 -0
- package/evals/fixtures/frontend-ui-engineering/design-system.md +11 -0
- package/evals/fixtures/git-workflow-and-versioning/.eval/working-tree.patch +21 -0
- package/evals/fixtures/git-workflow-and-versioning/app.js +7 -0
- package/evals/fixtures/git-workflow-and-versioning/app.test.js +9 -0
- package/evals/fixtures/incremental-implementation/reports.js +7 -0
- package/evals/fixtures/incremental-implementation/reports.test.js +12 -0
- package/evals/fixtures/incremental-implementation/tasks/plan.md +8 -0
- package/evals/fixtures/incremental-implementation-pressure/draft-export.js +17 -0
- package/evals/fixtures/incremental-implementation-pressure/scenario.md +9 -0
- package/evals/fixtures/observability-and-instrumentation/operations.md +11 -0
- package/evals/fixtures/observability-and-instrumentation/payment-retry.js +14 -0
- package/evals/fixtures/performance-optimization/benchmark.js +15 -0
- package/evals/fixtures/performance-optimization/products.js +14 -0
- package/evals/fixtures/planning-and-task-breakdown/notifications-spec.md +18 -0
- package/evals/fixtures/security-and-hardening/webhook.js +11 -0
- package/evals/fixtures/security-and-hardening/webhook.test.js +13 -0
- package/evals/fixtures/shipping-and-launch/authority-pressure.md +6 -0
- package/evals/fixtures/shipping-and-launch/launch-status.md +11 -0
- package/evals/fixtures/source-driven-development/framework-task.md +10 -0
- package/evals/fixtures/spec-driven-development/billing-brief.md +16 -0
- package/evals/fixtures/spec-driven-development-decomposition/portal-brief.md +22 -0
- package/evals/fixtures/test-driven-development/BUG.md +10 -0
- package/evals/fixtures/test-driven-development/README.md +28 -0
- package/evals/fixtures/test-driven-development/package.json +9 -0
- package/evals/fixtures/test-driven-development/src/split.js +8 -0
- package/evals/fixtures/test-driven-development/test/split.test.js +13 -0
- package/evals/fixtures/test-driven-development-ecosystem/README.md +9 -0
- package/evals/fixtures/test-driven-development-ecosystem/ledger.py +15 -0
- package/evals/fixtures/test-driven-development-ecosystem/test_ledger.py +19 -0
- package/evals/fixtures/using-agent-skills/incident.md +6 -0
- package/evals/plugin/code-review-fires/graders/off-by-one.md +7 -0
- package/evals/plugin/code-review-fires/graders/severity-labels.md +4 -0
- package/evals/plugin/code-review-fires/graders/skill-fired.md +5 -0
- package/evals/plugin/code-review-fires/prompt.md +31 -0
- package/evals/plugin/code-review-stays-quiet/graders/not-fired.md +8 -0
- package/evals/plugin/code-review-stays-quiet/graders/tdd-fired.md +6 -0
- package/evals/plugin/code-review-stays-quiet/prompt.md +8 -0
- package/evals/plugin/code-review-stays-quiet-on-commit-message/graders/not-fired.md +8 -0
- package/evals/plugin/code-review-stays-quiet-on-commit-message/prompt.md +25 -0
- package/evals/skill-impact.md +6 -0
- package/hooks/SDD-CACHE.md +167 -0
- package/hooks/SIMPLIFY-IGNORE.md +91 -0
- package/hooks/sdd-cache-post.sh +135 -0
- package/hooks/sdd-cache-pre.sh +106 -0
- package/hooks/sdd-cache-test.sh +246 -0
- package/hooks/session-start-test.sh +47 -0
- package/hooks/session-start.sh +33 -0
- package/hooks/simplify-ignore-test.sh +476 -0
- package/hooks/simplify-ignore.sh +352 -0
- package/package.json +89 -4
- package/plugin.json +7 -0
- package/rebrand/MAINTENANCE.md +112 -0
- package/rebrand/NOTICE.md +9 -0
- package/rebrand/PR-WORKFLOW.md +34 -0
- package/rebrand/UNIFICATION-SPEC.md +33 -0
- package/rebrand/VALIDATION.md +28 -0
- package/rebrand/VERSIONING.md +32 -0
- package/rebrand/apply.cjs +194 -0
- package/rebrand/brand.json +13 -0
- package/rebrand/catalog.cjs +56 -0
- package/rebrand/fork-patches.json +12 -0
- package/rebrand/overlay/.github/workflows/test-plugin-install.yml +177 -0
- package/rebrand/overlay/CHANGELOG.md +23 -0
- package/rebrand/overlay/bin/i3-composer-agent.cjs +122 -0
- package/rebrand/overlay/scripts/validate-brand.cjs +44 -0
- package/rebrand/overlay/tests/bundle.test.cjs +85 -0
- package/rebrand/package.template.json +82 -0
- package/rebrand/rebrand.sh +4 -0
- package/rebrand/record-upstream.cjs +37 -0
- package/rebrand/templates/README.md +86 -0
- package/rebrand/templates/codebuddy-setup.md +41 -0
- package/rebrand/templates/codex-setup.md +34 -0
- package/rebrand/tests/pipeline.test.cjs +185 -0
- package/rebrand/upstream.json +171 -0
- package/references/accessibility-checklist.md +160 -0
- package/references/definition-of-done.md +67 -0
- package/references/observability-checklist.md +92 -0
- package/references/orchestration-patterns.md +370 -0
- package/references/performance-checklist.md +236 -0
- package/references/security-checklist.md +248 -0
- package/references/testing-patterns.md +235 -0
- package/scripts/floor-guard-reference-test.js +291 -0
- package/scripts/lib/skill-lint-test.js +650 -0
- package/scripts/lib/skill-lint.js +584 -0
- package/scripts/run-evals-test.js +623 -0
- package/scripts/run-evals.js +638 -0
- package/scripts/validate-artifact-paths-test.js +179 -0
- package/scripts/validate-artifact-paths.js +128 -0
- package/scripts/validate-brand.cjs +44 -0
- package/scripts/validate-commands-test.js +216 -0
- package/scripts/validate-commands.js +222 -0
- package/scripts/validate-reference-links-test.js +495 -0
- package/scripts/validate-reference-links.js +187 -0
- package/scripts/validate-skills.js +69 -0
- package/scripts/validate-versions-test.js +32 -0
- package/scripts/validate-versions.js +35 -0
- package/skills/api-and-interface-design/SKILL.md +367 -0
- package/skills/browser-testing-with-devtools/SKILL.md +317 -0
- package/skills/ci-cd-and-automation/SKILL.md +390 -0
- package/skills/code-review-and-quality/SKILL.md +398 -0
- package/skills/code-simplification/SKILL.md +331 -0
- package/skills/constraint-driven-development/SKILL.md +311 -0
- package/skills/constraint-driven-development/references/floor-guard.md +182 -0
- package/skills/context-engineering/SKILL.md +353 -0
- package/skills/debugging-and-error-recovery/SKILL.md +300 -0
- package/skills/deprecation-and-migration/SKILL.md +247 -0
- package/skills/documentation-and-adrs/SKILL.md +288 -0
- package/skills/doubt-driven-development/SKILL.md +243 -0
- package/skills/frontend-ui-engineering/SKILL.md +340 -0
- package/skills/git-workflow-and-versioning/SKILL.md +355 -0
- package/skills/idea-refine/SKILL.md +178 -0
- package/skills/idea-refine/examples.md +238 -0
- package/skills/idea-refine/frameworks.md +99 -0
- package/skills/idea-refine/refinement-criteria.md +113 -0
- package/skills/idea-refine/scripts/idea-refine.sh +15 -0
- package/skills/incremental-implementation/SKILL.md +249 -0
- package/skills/interview-me/SKILL.md +235 -0
- package/skills/observability-and-instrumentation/SKILL.md +238 -0
- package/skills/performance-optimization/SKILL.md +267 -0
- package/skills/performance-optimization/references/optimization-patterns.md +250 -0
- package/skills/planning-and-task-breakdown/SKILL.md +257 -0
- package/skills/security-and-hardening/SKILL.md +216 -0
- package/skills/security-and-hardening/references/hardening-patterns.md +324 -0
- package/skills/shipping-and-launch/SKILL.md +330 -0
- package/skills/source-driven-development/SKILL.md +216 -0
- package/skills/spec-driven-development/SKILL.md +259 -0
- package/skills/test-driven-development/SKILL.md +398 -0
- package/skills/using-agent-skills/SKILL.md +192 -0
- package/tests/bundle.test.cjs +85 -0
|
@@ -0,0 +1,129 @@
|
|
|
1
|
+
# Adoption Guide: New Projects vs. Established Codebases
|
|
2
|
+
|
|
3
|
+
How to roll out i3-composer-agent depends heavily on where your codebase is in its life. A greenfield project can adopt the full lifecycle from commit one. A codebase with years of history needs an incremental path that respects what already exists, its conventions, its undocumented decisions, and its lack of test coverage in places you'd rather not touch blind.
|
|
4
|
+
|
|
5
|
+
This guide covers both paths. For installation mechanics, see [getting-started.md](getting-started.md) and the per-tool setup guides. For what each skill does, see the [skill catalog in the README](../README.md#all-25-skills).
|
|
6
|
+
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
## Which path are you on?
|
|
10
|
+
|
|
11
|
+
| Signal | Greenfield | Brownfield |
|
|
12
|
+
| -------------------------- | ------------------------------- | -------------------------------------------- |
|
|
13
|
+
| Age of codebase | Days to weeks | Months to years |
|
|
14
|
+
| Test coverage | You control it from day one | Uneven; some areas untested |
|
|
15
|
+
| Conventions | Defined as you go | Established, often undocumented |
|
|
16
|
+
| Team habits | Forming | Entrenched (for better or worse) |
|
|
17
|
+
| Risk of a bad agent change | Low blast radius | Can break things nobody remembers how to fix |
|
|
18
|
+
| Adoption strategy | **Full lifecycle, immediately** | **Incremental, verification-first** |
|
|
19
|
+
|
|
20
|
+
If you're somewhere in between (a young project that already shipped to production), start with the brownfield path and accelerate, it converges on the same end state.
|
|
21
|
+
|
|
22
|
+
---
|
|
23
|
+
|
|
24
|
+
## Path A | Greenfield: full lifecycle from day one
|
|
25
|
+
|
|
26
|
+
A new project is the best-case scenario: there's no legacy behavior to preserve, so the skills' quality gates cost almost nothing and compound from the first commit.
|
|
27
|
+
|
|
28
|
+
### Day 0 | Install and wire up
|
|
29
|
+
|
|
30
|
+
1. Install the pack (`npx skills add /path/to/i3-composer-agent`, or the native integration for your tool, see [getting-started.md](getting-started.md)).
|
|
31
|
+
2. If the host has no native skill router, load `using-agent-skills` (the meta-skill) so the agent can route work to the right skill on its own. On hosts with native routing, install the individual skills and do not preload the meta-skill as always-on context.
|
|
32
|
+
3. Add a short project rules file (`CLAUDE.md`, `.cursorrules`, etc.) with your stack, commands, and boundaries, `context-engineering` describes what belongs there.
|
|
33
|
+
|
|
34
|
+
### Day 0 | Define before you build
|
|
35
|
+
|
|
36
|
+
Run the lifecycle in order for the project's first real feature:
|
|
37
|
+
|
|
38
|
+
```
|
|
39
|
+
/spec → SPEC.md (spec-driven-development)
|
|
40
|
+
/plan → tasks/plan.md (planning-and-task-breakdown)
|
|
41
|
+
/build → one slice at a time (incremental-implementation + test-driven-development)
|
|
42
|
+
/review → before every merge (code-review-and-quality)
|
|
43
|
+
/ship → when going live (shipping-and-launch)
|
|
44
|
+
```
|
|
45
|
+
|
|
46
|
+
`/build auto` is a good fit for greenfield: you approve the plan once and every task still runs test-driven and commits individually. The spec and plan artifacts (`SPEC.md`, `tasks/`) are living documents, keep them in version control while the work is in flight. If the feature spans more than one session, those files are also the handoff, see [working across sessions](getting-started.md#working-across-sessions).
|
|
47
|
+
|
|
48
|
+
### From the start, treat these as always-on
|
|
49
|
+
|
|
50
|
+
- **test-driven-development**, coverage debt is cheapest to avoid at zero.
|
|
51
|
+
- **git-workflow-and-versioning**, atomic commits and ~100-line changes are habits, not retrofits.
|
|
52
|
+
- **security-and-hardening**, auth, input validation, and secrets handling are structural; bolting them on later is a migration project.
|
|
53
|
+
- **documentation-and-adrs**, the first architectural decisions are exactly the ones nobody will remember the _why_ of in two years. An ADR now prevents the brownfield archaeology described in Path B.
|
|
54
|
+
|
|
55
|
+
### Add as the project grows
|
|
56
|
+
|
|
57
|
+
| When | Load |
|
|
58
|
+
| ----------------------------------- | ------------------------------------------------------------- |
|
|
59
|
+
| First public API or module boundary | `api-and-interface-design` |
|
|
60
|
+
| First UI work | `frontend-ui-engineering` (+ `browser-testing-with-devtools`) |
|
|
61
|
+
| First CI pipeline | `ci-cd-and-automation` |
|
|
62
|
+
| First production deploy | `observability-and-instrumentation`, `shipping-and-launch` |
|
|
63
|
+
| Performance requirements appear | `performance-optimization` |
|
|
64
|
+
|
|
65
|
+
### Greenfield anti-patterns
|
|
66
|
+
|
|
67
|
+
- **Skipping `/spec` because "it's just a prototype."** Prototypes become products. The spec is the cheapest artifact you'll ever write for this codebase.
|
|
68
|
+
- **Loading all 25 skills into every session.** It wastes context and dilutes the ones that matter. Load by phase; let the host's native router or `using-agent-skills` route, but not both.
|
|
69
|
+
- **Deferring observability until "there's something to observe."** Instrument as you build, retrofitting structured logging is a Path B problem you're choosing to create.
|
|
70
|
+
|
|
71
|
+
---
|
|
72
|
+
|
|
73
|
+
## Path B | Brownfield: incremental, verification-first
|
|
74
|
+
|
|
75
|
+
In an established codebase, the risk profile inverts: the danger isn't building the wrong thing, it's _changing_ something whose behavior nobody fully specified. The adoption order therefore starts with the skills that **read and protect** the codebase, and only later moves to the skills that **change** it.
|
|
76
|
+
|
|
77
|
+
### Phase 1 | Context and read-only skills
|
|
78
|
+
|
|
79
|
+
Goal: the agent understands the codebase before it modifies anything.
|
|
80
|
+
|
|
81
|
+
1. **`context-engineering` first.** Write the project rules file describing the real conventions, the ones in the code, not the ones in the wiki. Include build/test commands, directory meaning, known landmines ("don't touch `legacy/billing`, it has no tests and three known workarounds").
|
|
82
|
+
2. **`code-review-and-quality` on incoming changes.** Reviewing is zero-risk and immediately valuable: the five-axis review and its severity labels (which separate what blocks a merge, Critical and Required, from what doesn't) work on any PR regardless of the codebase's state.
|
|
83
|
+
3. **`debugging-and-error-recovery` for the bugs you were fixing anyway.** The five-step triage (reproduce → localize → reduce → fix → guard) shines in unfamiliar code, and the "guard" step starts building the regression suite you don't have.
|
|
84
|
+
4. **`doubt-driven-development` as a safety net.** Legacy code is exactly the "unfamiliar code, high cost of being wrong" scenario this skill targets. Adversarial fresh-context review of the agent's claims about how the legacy system works catches confident hallucinations before they become commits.
|
|
85
|
+
|
|
86
|
+
### Phase 2 | Tests before change
|
|
87
|
+
|
|
88
|
+
Goal: every area the agent will touch gets a safety net first.
|
|
89
|
+
|
|
90
|
+
- **`test-driven-development`, applied selectively.** Don't aim for global coverage; aim for coverage _where change is planned_. For untested legacy behavior, write characterization tests, tests that pin down what the code currently does, right or wrong, before any modification. The Beyonce Rule applies: if the agent liked a behavior enough to depend on it, it should have put a test on it.
|
|
91
|
+
- **`code-simplification` on the worst hotspots.** Chesterton's Fence is the operative principle: the skill forces the agent to understand _why_ code exists before removing it. Behavior-preserving simplification plus characterization tests is the lowest-risk way to make legacy code changeable.
|
|
92
|
+
- **`git-workflow-and-versioning` everywhere.** Small atomic commits matter _more_ in brownfield: when a change to old code breaks something subtle, a ~100-line commit is bisectable; a 2,000-line "modernization" commit is not.
|
|
93
|
+
|
|
94
|
+
### Phase 3 | New work runs the full lifecycle
|
|
95
|
+
|
|
96
|
+
Goal: two-speed adoption, legacy code stays under the Phase 1–2 regime; **new features get the greenfield treatment**.
|
|
97
|
+
|
|
98
|
+
- New feature in the old codebase? `/spec → /plan → /build → /review`. The spec's boundaries section is where you declare what legacy surface the feature may and may not touch.
|
|
99
|
+
- **`api-and-interface-design` at the seams.** When new code must talk to old code, design the boundary contract-first. Hyrum's Law is not theoretical in a years-old codebase, someone depends on every observable behavior, including the bugs.
|
|
100
|
+
- **`security-and-hardening` as an audit, then a gate.** Run it once across the existing attack surface (auth, input handling, dependencies, the dependency audit alone usually pays for the exercise), file what you find, then enforce it on new changes.
|
|
101
|
+
|
|
102
|
+
### Phase 4 | Pay down, deprecate, observe
|
|
103
|
+
|
|
104
|
+
- **`deprecation-and-migration`** is the brownfield skill par excellence: code-as-liability, compulsory vs. advisory deprecation, and zombie-code removal give you a disciplined way to shrink the legacy surface instead of just wrapping it.
|
|
105
|
+
- **`observability-and-instrumentation`** retrofitted along the paths you actually debug: structured logging and RED metrics on the top incident sources first.
|
|
106
|
+
- **`performance-optimization`** when regressions matter, its measure-first rule prevents the classic legacy trap of optimizing code that was never the bottleneck.
|
|
107
|
+
|
|
108
|
+
### Brownfield anti-patterns
|
|
109
|
+
|
|
110
|
+
- **"Big bang" adoption.** Loading the full lifecycle onto a legacy codebase on day one produces specs for code that already exists and refactors without safety nets. Sequence it.
|
|
111
|
+
- **Letting the agent refactor untested code.** No characterization tests, no refactor. This is the single most expensive shortcut in brownfield adoption.
|
|
112
|
+
- **Skipping `context-engineering` because "the code is the documentation."** The agent will infer conventions from the worst file it happens to read. Tell it the real ones.
|
|
113
|
+
- **Treating the legacy system's behavior as wrong by default.** Chesterton's Fence: the weird retry loop may be load-bearing. Understand, then change.
|
|
114
|
+
- **Ratcheting nothing.** Adoption should make quality monotonically better: each phase adds a gate that doesn't come back off. If a month in you can't name what's now enforced that wasn't before, the rollout has stalled.
|
|
115
|
+
|
|
116
|
+
---
|
|
117
|
+
|
|
118
|
+
## The two paths converge
|
|
119
|
+
|
|
120
|
+
Both end in the same steady state: `/spec → /plan → /build → /review → /ship` for new work, always-on TDD and git discipline, review gates before merge, and skills loaded by phase rather than in bulk. Greenfield gets there in days; brownfield gets there in a quarter, and the difference is exactly the safety nets (context, characterization tests, boundaries) that the old codebase never had.
|
|
121
|
+
|
|
122
|
+
| | Greenfield | Brownfield |
|
|
123
|
+
| ---------------------- | ------------------------------ | ---------------------------------------- |
|
|
124
|
+
| First skill loaded | Native router, or `using-agent-skills` + `/spec` | `context-engineering` |
|
|
125
|
+
| First value delivered | Spec'd, tested first feature | Zero-risk reviews and safer bug fixes |
|
|
126
|
+
| TDD posture | Universal from commit one | Selective: tests where change is planned |
|
|
127
|
+
| Refactoring rule | Rare (little to refactor) | Characterization tests first, always |
|
|
128
|
+
| Riskiest anti-pattern | Skipping the spec | Refactoring untested code |
|
|
129
|
+
| Time to full lifecycle | Day one | ~One quarter, two-speed in between |
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
# Advanced per-agent configuration
|
|
2
|
+
|
|
3
|
+
Skills in this repository are intentionally portable. Every `SKILL.md` keeps its frontmatter limited to the fields the [Agent Skills specification](https://agentskills.io) defines, so the same file works across Claude Code, Cursor, Gemini CLI, Antigravity, and any other spec-conformant client.
|
|
4
|
+
|
|
5
|
+
Several agents also support extra runtime controls: model routing, tool restrictions, turn limits, execution isolation. These controls are valuable, but they are vendor-specific and do not belong in the shared, portable frontmatter. This document explains which controls each agent supports, where they belong, and how to apply them as an opt-in without breaking portability.
|
|
6
|
+
|
|
7
|
+
This is the canonical reference for per-agent configuration, and it supersedes the earlier approach of adding vendor fields to top-level `SKILL.md` frontmatter. Fields such as `kind`, `model`, `temperature`, `max_turns`, `tools`, and `context` must not appear at the top level of a skill. They belong under `metadata` or in a separate per-agent adapter file, as described below.
|
|
8
|
+
|
|
9
|
+
## Principles
|
|
10
|
+
|
|
11
|
+
1. **Keep `SKILL.md` portable.** The Agent Skills specification reserves top-level frontmatter for `name`, `description`, `license`, `compatibility`, `metadata`, and the experimental `allowed-tools`. Vendor or client-specific properties belong under `metadata`, not at the top level.
|
|
12
|
+
2. **Unknown top-level fields are not guaranteed to be ignored.** Many parsers only read `name` and `description` and silently drop the rest, but a strict spec-conformant validator or client may flag or reject unrecognized top-level keys. Putting vendor fields under `metadata` keeps the file conformant everywhere.
|
|
13
|
+
3. **Opt-in, not global.** Runtime controls should be something a user adds for their own agent and workflow, not a default baked into every skill in the repository.
|
|
14
|
+
4. **Prefer generation over hand-editing.** Where a configuration is repetitive and mechanical, generate it from a single source of truth instead of maintaining copies by hand. See [Automating with scripts](#automating-with-scripts).
|
|
15
|
+
|
|
16
|
+
## Where vendor fields belong
|
|
17
|
+
|
|
18
|
+
| Field type | Example | Correct home |
|
|
19
|
+
|---|---|---|
|
|
20
|
+
| Spec fields | `name`, `description`, `license`, `compatibility` | Top-level frontmatter in `SKILL.md` |
|
|
21
|
+
| Vendor metadata | model hints, routing tags | Under the `metadata` key in `SKILL.md` |
|
|
22
|
+
| Runtime orchestration | subagent definitions, turn limits, tool allowlists | A separate per-agent adapter file (see each agent below) |
|
|
23
|
+
|
|
24
|
+
## Claude Code
|
|
25
|
+
|
|
26
|
+
Claude Code reads `name` and `description` for discovery. Custom commands and skills share the same frontmatter, so the `context` and `allowed-tools` fields below work in both `.claude/commands/*.md` and `.claude/skills/*/SKILL.md`.
|
|
27
|
+
|
|
28
|
+
- **`context: fork`** runs a command or skill in an isolated subagent context instead of the active conversation. This gives context isolation, repeatable execution from a clean state, execution tokens spent in the fork rather than the main session, and a cleaner handoff where only the result surfaces back. An optional **`agent`** field selects which subagent type runs the fork (for example `agent: Plan`); it defaults to `general-purpose`.
|
|
29
|
+
- **`allowed-tools`** pre-approves tools; it does not restrict them. Listed tools run without a permission prompt for the turn that invokes the command or skill, and the grant clears on your next message. Nothing is removed from the tool pool.
|
|
30
|
+
- **`disallowed-tools`** is the field that actually restricts: it removes the listed tools from the available pool while the skill is active, which is what least-privilege needs for passive stages such as review or audit. The restriction also clears on your next message. Note it is a Claude Code field and not one of the specification's six, so it belongs in a local copy or an adapter file; in a published `SKILL.md` it fails packaging with an unexpected-key error.
|
|
31
|
+
|
|
32
|
+
These are Claude Code conventions. Keep the shared, published `SKILL.md` limited to spec fields; apply these runtime controls in your own local command or skill copies instead.
|
|
33
|
+
|
|
34
|
+
## Gemini CLI and Antigravity
|
|
35
|
+
|
|
36
|
+
Gemini CLI and Antigravity discover skills the same way: they match `name` and `description`, then load the full skill on demand. Runtime orchestration lives in a separate resource, not in the skill frontmatter.
|
|
37
|
+
|
|
38
|
+
- **Subagent definitions** live in `.gemini/agents/*.md`, which are distinct from skills. Their schema is `kind` (`local` or `remote`), `model`, `temperature`, `max_turns`, and `tools`. Note that this is a subagent schema, not a skill schema: the two should not be merged into one `SKILL.md`.
|
|
39
|
+
- **Model routing** can send lighter tasks (formatting, documentation, git operations) to a faster model and reserve a stronger model for cognitively demanding work (debugging, security auditing, interface design).
|
|
40
|
+
- **Tool restrictions** enforce least-privilege per subagent, which also trims unused tool schemas from the prompt.
|
|
41
|
+
- **Turn limits** (`max_turns`) cap execution to avoid runaway correction loops.
|
|
42
|
+
|
|
43
|
+
### Model guidance
|
|
44
|
+
|
|
45
|
+
Google recommends omitting `temperature` for Gemini 3.x models and using `thinking_level` instead. Do not hardcode `temperature` on skills or subagents routed to 3.x models; prefer `thinking_level` and revisit this guidance as the models evolve.
|
|
46
|
+
|
|
47
|
+
```yaml
|
|
48
|
+
# .gemini/agents/security-auditor.md
|
|
49
|
+
---
|
|
50
|
+
kind: local
|
|
51
|
+
model: gemini-3-pro
|
|
52
|
+
thinking_level: high # not: temperature: 0.1
|
|
53
|
+
tools: [read_file, grep]
|
|
54
|
+
max_turns: 10
|
|
55
|
+
---
|
|
56
|
+
```
|
|
57
|
+
|
|
58
|
+
## Automating with scripts
|
|
59
|
+
|
|
60
|
+
Maintaining per-agent metadata by hand across every skill is repetitive, drifts out of sync, and is easy to get wrong. A better approach is to keep a single source of truth and generate the agent-specific output:
|
|
61
|
+
|
|
62
|
+
- A generator reads a per-skill configuration map (which model, tool allowlist, turn limit, and isolation each skill should use for a given agent).
|
|
63
|
+
- For metadata-style fields, it injects them under the `metadata` key of each `SKILL.md`, keeping the file spec-conformant.
|
|
64
|
+
- For orchestration-style fields, it emits the separate adapter files an agent expects, for example `.gemini/agents/*.md` subagent definitions, leaving `SKILL.md` untouched.
|
|
65
|
+
|
|
66
|
+
Generation also lets the tooling validate **semantics, not just shape**: confirm that a model name is a known model, that a tool name is a real tool, that `max_turns` is a positive integer, and that `temperature` (where still applicable) is a valid number in range. Shape-only checks let invalid values such as `parseInt("1.5")` or `parseFloat("0.2oops")` slip through.
|
|
67
|
+
|
|
68
|
+
## Status
|
|
69
|
+
|
|
70
|
+
This document consolidates the discussion from [#272](https://github.com/addyosmani/agent-skills/pull/272), [#36](https://github.com/addyosmani/agent-skills/pull/36), and [upstream agent-skills #35](https://github.com/addyosmani/agent-skills/issues/35), all closed in favor of this approach. It is the single reference for per-agent configuration: it keeps the shared skills portable while documenting the advanced controls each agent offers as an opt-in. The script-based automation described above is a proposal pending agreement before any implementation.
|
package/docs/agents.md
ADDED
|
@@ -0,0 +1,123 @@
|
|
|
1
|
+
# Agent Personas
|
|
2
|
+
|
|
3
|
+
Specialist personas that play a single role with a single perspective. Each persona is a Markdown file consumed as a system prompt by your harness (Claude Code, Cursor, Copilot, etc.).
|
|
4
|
+
|
|
5
|
+
| Persona | Role | Best for |
|
|
6
|
+
|---------|------|----------|
|
|
7
|
+
| [code-reviewer](../agents/code-reviewer.md) | Senior Staff Engineer | Five-axis review before merge |
|
|
8
|
+
| [security-auditor](../agents/security-auditor.md) | Security Engineer | Vulnerability detection, OWASP-style audit |
|
|
9
|
+
| [test-engineer](../agents/test-engineer.md) | QA Engineer | Test strategy, coverage analysis, Prove-It pattern |
|
|
10
|
+
| [web-performance-auditor](../agents/web-performance-auditor.md) | Web Performance Engineer | Core Web Vitals audit, loading/rendering/network analysis |
|
|
11
|
+
|
|
12
|
+
## How personas relate to skills and commands
|
|
13
|
+
|
|
14
|
+
Three layers, each with a distinct job:
|
|
15
|
+
|
|
16
|
+
| Layer | What it is | Example | Composition role |
|
|
17
|
+
|-------|-----------|---------|------------------|
|
|
18
|
+
| **Skill** | A workflow with steps and exit criteria | `code-review-and-quality` | The *how* — invoked from inside a persona or command |
|
|
19
|
+
| **Persona** | A role with a perspective and an output format | `code-reviewer` | The *who* — adopts a viewpoint, produces a report |
|
|
20
|
+
| **Command** | A user-facing entry point | `/review`, `/ship` | The *when* — composes personas and skills |
|
|
21
|
+
|
|
22
|
+
The user (or a slash command) is the orchestrator. **Personas do not call other personas.** Skills are mandatory hops inside a persona's workflow.
|
|
23
|
+
|
|
24
|
+
## When to use each
|
|
25
|
+
|
|
26
|
+
### Direct persona invocation
|
|
27
|
+
Pick this when you want one perspective on the current change and the user is in the loop.
|
|
28
|
+
|
|
29
|
+
- "Review this PR" → invoke `code-reviewer` directly
|
|
30
|
+
- "Are there security issues in `auth.ts`?" → invoke `security-auditor` directly
|
|
31
|
+
- "What tests are missing for the checkout flow?" → invoke `test-engineer` directly
|
|
32
|
+
- "Audit Core Web Vitals on the product page" → invoke `web-performance-auditor` directly
|
|
33
|
+
|
|
34
|
+
### Slash command (single persona behind it)
|
|
35
|
+
Pick this when there's a repeatable workflow you'd otherwise re-explain every time.
|
|
36
|
+
|
|
37
|
+
- `/review` → wraps `code-reviewer` with the project's review skill
|
|
38
|
+
- `/test` → wraps `test-engineer` with TDD skill
|
|
39
|
+
- `/webperf` → wraps `web-performance-auditor` for performance-focused audits on web apps
|
|
40
|
+
|
|
41
|
+
### Slash command (orchestrator — fan-out)
|
|
42
|
+
Pick this only when **independent** investigations can run in parallel and produce reports that a single agent then merges.
|
|
43
|
+
|
|
44
|
+
- `/ship` → fans out to `code-reviewer` + `security-auditor` + `test-engineer` in parallel, then synthesizes their reports into a go/no-go decision
|
|
45
|
+
|
|
46
|
+
This is the only orchestration pattern this repo endorses. See [references/orchestration-patterns.md](../references/orchestration-patterns.md) for the full pattern catalog and anti-patterns.
|
|
47
|
+
|
|
48
|
+
## Decision matrix
|
|
49
|
+
|
|
50
|
+
```
|
|
51
|
+
Is the work a single perspective on a single artifact?
|
|
52
|
+
├── Yes → Direct persona invocation
|
|
53
|
+
└── No → Are the sub-tasks independent (no shared mutable state, no ordering)?
|
|
54
|
+
├── Yes → Slash command with parallel fan-out (e.g. /ship)
|
|
55
|
+
└── No → Sequential slash commands run by the user (/spec → /plan → /build → /test → /review)
|
|
56
|
+
```
|
|
57
|
+
|
|
58
|
+
## Worked example: valid orchestration
|
|
59
|
+
|
|
60
|
+
`/ship` is the canonical fan-out orchestrator in this repo:
|
|
61
|
+
|
|
62
|
+
```
|
|
63
|
+
/ship
|
|
64
|
+
├── (parallel) code-reviewer → review report
|
|
65
|
+
├── (parallel) security-auditor → audit report
|
|
66
|
+
└── (parallel) test-engineer → coverage report
|
|
67
|
+
↓
|
|
68
|
+
merge phase (main agent)
|
|
69
|
+
↓
|
|
70
|
+
go/no-go decision + rollback plan
|
|
71
|
+
```
|
|
72
|
+
|
|
73
|
+
Why this works:
|
|
74
|
+
- Each sub-agent operates on the same diff but produces a **different perspective**
|
|
75
|
+
- They have no dependencies on each other → genuine parallelism, real wall-clock savings
|
|
76
|
+
- Each runs in a fresh context window → main session stays uncluttered
|
|
77
|
+
- The merge step is small and benefits from full context, so it stays in the main agent
|
|
78
|
+
|
|
79
|
+
## Worked example: invalid orchestration (do not build this)
|
|
80
|
+
|
|
81
|
+
A `meta-orchestrator` persona whose job is "decide which other persona to call":
|
|
82
|
+
|
|
83
|
+
```
|
|
84
|
+
/work-on-pr → meta-orchestrator
|
|
85
|
+
↓ (decides "this needs a review")
|
|
86
|
+
code-reviewer
|
|
87
|
+
↓ (returns)
|
|
88
|
+
meta-orchestrator (paraphrases result)
|
|
89
|
+
↓
|
|
90
|
+
user
|
|
91
|
+
```
|
|
92
|
+
|
|
93
|
+
Why this fails:
|
|
94
|
+
- Pure routing layer with no domain value
|
|
95
|
+
- Adds two paraphrasing hops → information loss + 2× token cost
|
|
96
|
+
- The user already knows they want a review; let them call `/review` directly
|
|
97
|
+
- Replicates work that slash commands and `AGENTS.md` intent-mapping already do
|
|
98
|
+
|
|
99
|
+
## Rules for personas
|
|
100
|
+
|
|
101
|
+
1. A persona is a single role with a single output format. If you find yourself adding a second role, create a second persona.
|
|
102
|
+
2. **Personas do not invoke other personas.** Composition is the job of slash commands or the user. On Claude Code this is also a hard platform constraint — *"subagents cannot spawn other subagents"* — so the rule is enforced for you.
|
|
103
|
+
3. A persona may invoke skills (the *how*).
|
|
104
|
+
4. Every persona file ends with a "Composition" block stating where it fits.
|
|
105
|
+
|
|
106
|
+
## Claude Code interop
|
|
107
|
+
|
|
108
|
+
The personas in this repo are designed to work as Claude Code subagents and as Agent Teams teammates without modification:
|
|
109
|
+
|
|
110
|
+
- **As subagents:** auto-discovered when this plugin is enabled (no path config needed). Use the Agent tool with `subagent_type: code-reviewer` (or `security-auditor`, `test-engineer`). `/ship` is the canonical example.
|
|
111
|
+
- **As Agent Teams teammates** (experimental, requires `CLAUDE_CODE_EXPERIMENTAL_AGENT_TEAMS=1`): reference the same persona name when spawning a teammate. The persona's body is **appended to** the teammate's system prompt as additional instructions (not a replacement), so your persona text sits on top of the team-coordination instructions the lead installs (SendMessage, task-list tools, etc.).
|
|
112
|
+
|
|
113
|
+
Subagents only report results back to the main agent. Agent Teams let teammates message each other directly. Use subagents when reports are enough; use Agent Teams when sub-agents need to challenge each other's findings (e.g. competing-hypothesis debugging). See [references/orchestration-patterns.md](../references/orchestration-patterns.md) for the full mapping.
|
|
114
|
+
|
|
115
|
+
Plugin agents do not support `hooks`, `mcpServers`, or `permissionMode` frontmatter — those fields are silently ignored. Avoid relying on them when authoring new personas here.
|
|
116
|
+
|
|
117
|
+
## Adding a new persona
|
|
118
|
+
|
|
119
|
+
1. Create `agents/<role>.md` with the same frontmatter format used by existing personas.
|
|
120
|
+
2. Define the role, scope, output format, and rules.
|
|
121
|
+
3. Add a **Composition** block at the bottom (Invoke directly when / Invoke via / Do not invoke from another persona).
|
|
122
|
+
4. Add the persona to the table at the top of this file.
|
|
123
|
+
5. If the persona enables a new orchestration pattern, document it in `references/orchestration-patterns.md` rather than inventing the pattern in the persona file itself.
|
|
@@ -0,0 +1,128 @@
|
|
|
1
|
+
# Using i3-composer-agent with Antigravity CLI (agy)
|
|
2
|
+
|
|
3
|
+
The `i3-composer-agent` package can be installed as a native plugin in the Antigravity CLI (`agy`), giving the agent access to structured workflows and personas.
|
|
4
|
+
|
|
5
|
+
## Setup
|
|
6
|
+
|
|
7
|
+
### Option 1: Native Plugin Installation (Recommended)
|
|
8
|
+
|
|
9
|
+
Antigravity CLI has a first-class [plugin system](https://www.agy.dev/docs/plugins/) that registers skills and agents. The repository also carries legacy command TOMLs, but affected `agy` releases do not expose their converted wrappers; see [Lifecycle Workflows and Command Compatibility](#lifecycle-workflows-and-command-compatibility).
|
|
10
|
+
|
|
11
|
+
**Install from a prepared local bundle:**
|
|
12
|
+
|
|
13
|
+
```bash
|
|
14
|
+
agy plugin install /path/to/i3-composer-agent
|
|
15
|
+
```
|
|
16
|
+
|
|
17
|
+
**Install from a local clone:**
|
|
18
|
+
|
|
19
|
+
1. Prepare the plugin bundle:
|
|
20
|
+
```bash
|
|
21
|
+
npx @givolt/i3-composer-agent --extract --dir ./i3-composer-agent
|
|
22
|
+
```
|
|
23
|
+
2. Install the plugin using `agy`:
|
|
24
|
+
```bash
|
|
25
|
+
agy plugin install /path/to/i3-composer-agent
|
|
26
|
+
```
|
|
27
|
+
|
|
28
|
+
This will validate the plugin and install it into your global Antigravity configuration directory (`~/.gemini/config/plugins/i3-composer-agent/`).
|
|
29
|
+
|
|
30
|
+
> **Note:** on current agy releases the plugin lands under `~/.gemini/config/plugins/`, not the legacy `~/.gemini/antigravity-cli/plugins/` path used by older versions. If you don't see the plugin at the legacy path, check `~/.gemini/config/plugins/i3-composer-agent/` first.
|
|
31
|
+
|
|
32
|
+
### Option 2: Import from Gemini CLI
|
|
33
|
+
|
|
34
|
+
If you have already installed `i3-composer-agent` under your legacy Gemini CLI installation, you can import it directly:
|
|
35
|
+
```bash
|
|
36
|
+
agy plugin import gemini
|
|
37
|
+
```
|
|
38
|
+
|
|
39
|
+
Once installed, verify the active plugin:
|
|
40
|
+
```bash
|
|
41
|
+
agy plugin list
|
|
42
|
+
```
|
|
43
|
+
|
|
44
|
+
---
|
|
45
|
+
|
|
46
|
+
## Lifecycle Workflows and Command Compatibility
|
|
47
|
+
|
|
48
|
+
Antigravity's [migration tooling](https://www.agy.dev/docs/cli/gcli-migration/) reports the 9 legacy definitions in `commands/*.toml` as "converted to skills." In affected `agy` 1.1.x releases, validation succeeds but the converted wrappers do not appear in the slash-command or skill catalog. A successful `agy plugin validate` therefore confirms the files are well formed, not that `/build` and the other short wrappers are available. This is tracked in [upstream agent-skills #445](https://github.com/addyosmani/agent-skills/issues/445) and upstream in [antigravity-cli #788](https://github.com/google-antigravity/antigravity-cli/issues/788).
|
|
49
|
+
|
|
50
|
+
Use the native plugin skills directly while that importer limitation applies:
|
|
51
|
+
|
|
52
|
+
| Intended wrapper | Direct Antigravity invocation | Notes |
|
|
53
|
+
|------------------|-------------------------------|-------|
|
|
54
|
+
| `/spec` | `/i3-composer-agent:spec-driven-development` | Writes a structured spec before code |
|
|
55
|
+
| `/constraints` | `/i3-composer-agent:constraint-driven-development` | Defines and enforces the project's quality bar |
|
|
56
|
+
| `/planning` | `/i3-composer-agent:planning-and-task-breakdown` | Antigravity's built-in `/planning` command is a separate plan-mode control |
|
|
57
|
+
| `/build` | `/i3-composer-agent:incremental-implementation` | Also invoke `/i3-composer-agent:test-driven-development`; wrapper-only `/build auto` orchestration is unavailable |
|
|
58
|
+
| `/test` | `/i3-composer-agent:test-driven-development` | Runs the red-green-refactor workflow |
|
|
59
|
+
| `/review` | `/i3-composer-agent:code-review-and-quality` | Runs the five-axis review workflow |
|
|
60
|
+
| `/code-simplify` | `/i3-composer-agent:code-simplification` | Simplifies without changing behavior |
|
|
61
|
+
| `/ship` | `/i3-composer-agent:shipping-and-launch` | The wrapper's automatic persona fan-out is unavailable; invoke specialist agents separately |
|
|
62
|
+
| `/webperf` | Select `web-performance-auditor` from `/agents` | This workflow is a persona, not a skill |
|
|
63
|
+
|
|
64
|
+
Do not add YAML frontmatter to the TOML files as a workaround. Gemini CLI reads the parallel TOML command format with a strict parser, and `---` frontmatter makes those files invalid TOML without changing Antigravity's conversion behavior.
|
|
65
|
+
|
|
66
|
+
---
|
|
67
|
+
|
|
68
|
+
## Skills & Discovery
|
|
69
|
+
|
|
70
|
+
Antigravity automatically discovers skills inside the plugin's `skills/` directory.
|
|
71
|
+
* Antigravity matches user tasks and intents to relevant skills on-demand.
|
|
72
|
+
* If a task matches a skill, the agent will load the skill and prompt you for permission before executing.
|
|
73
|
+
|
|
74
|
+
---
|
|
75
|
+
|
|
76
|
+
## Verification & Validation
|
|
77
|
+
|
|
78
|
+
To validate that your local plugin is correctly structured and contains all skills, run:
|
|
79
|
+
```bash
|
|
80
|
+
agy plugin validate /path/to/i3-composer-agent
|
|
81
|
+
```
|
|
82
|
+
|
|
83
|
+
Then start a fresh session and type `/i3-composer-agent:` to inspect the namespaced skill catalog. If the validator reports that commands were converted but `/build` returns `No matches`, use the direct invocations above; reinstalling or adding a TOML `name` field does not resolve the known importer limitation.
|
|
84
|
+
|
|
85
|
+
---
|
|
86
|
+
|
|
87
|
+
## How It Works
|
|
88
|
+
|
|
89
|
+
### 1. On-Demand Skill Activation
|
|
90
|
+
Antigravity CLI automatically discovers the `SKILL.md` files located in the `skills/` directory of the installed plugin. Using the trigger descriptions in each skill's frontmatter, the agent will dynamically activate the appropriate workflow when it detects matching developer intent.
|
|
91
|
+
|
|
92
|
+
For example, when you ask the agent to:
|
|
93
|
+
- **Design a new system** → It will suggest/activate `spec-driven-development`.
|
|
94
|
+
- **Implement a feature** → It will activate `incremental-implementation` and `test-driven-development`.
|
|
95
|
+
- **Fix a bug** → It will activate `debugging-and-error-recovery`.
|
|
96
|
+
|
|
97
|
+
### 2. Specialized Agent Personas
|
|
98
|
+
The plugin registers reusable subagent definitions from the `agents/` directory:
|
|
99
|
+
- `code-reviewer.md`
|
|
100
|
+
- `security-auditor.md`
|
|
101
|
+
- `test-engineer.md`
|
|
102
|
+
|
|
103
|
+
You can invoke these personas directly within your session or when delegating tasks using subagents.
|
|
104
|
+
|
|
105
|
+
---
|
|
106
|
+
|
|
107
|
+
## Configuration & Customization
|
|
108
|
+
|
|
109
|
+
### Project-Specific Enforcements (`AGENTS.md`)
|
|
110
|
+
To enforce strict skill compliance (e.g. requiring a spec or plan before writing code), copy or link `AGENTS.md` into the root of your workspace. Antigravity CLI reads this file to align the agent's behavior and planning phase with your team's conventions.
|
|
111
|
+
|
|
112
|
+
### Sandbox Mode
|
|
113
|
+
If you want to run skills or scripts with limited terminal permissions (for safety when running third-party validation tests), launch the CLI with:
|
|
114
|
+
|
|
115
|
+
```bash
|
|
116
|
+
agy --sandbox
|
|
117
|
+
```
|
|
118
|
+
|
|
119
|
+
---
|
|
120
|
+
|
|
121
|
+
## Usage Tips
|
|
122
|
+
|
|
123
|
+
1. **Keep plugins up-to-date:** You can update the CLI or check for newer plugin versions using:
|
|
124
|
+
```bash
|
|
125
|
+
agy update
|
|
126
|
+
```
|
|
127
|
+
2. **Review before execution:** When agents execute complex refactoring tasks using these skills, use `Ctrl+r` to enter the **Artifact Review** screen to review, edit, or approve code before it is committed.
|
|
128
|
+
3. **Control permissions:** You can use the `--dangerously-skip-permissions` flag only in trusted local projects where you want to bypass manual tool approval prompts.
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
# Using i3 Composer Agent with CodeBuddy
|
|
2
|
+
|
|
3
|
+
Prepare the complete plugin inside the project where you want to use it:
|
|
4
|
+
|
|
5
|
+
```bash
|
|
6
|
+
npx @givolt/i3-composer-agent --codebuddy
|
|
7
|
+
```
|
|
8
|
+
|
|
9
|
+
In the CodeBuddy chat, register the prepared directory and install the plugin:
|
|
10
|
+
|
|
11
|
+
```text
|
|
12
|
+
/plugin marketplace add ./i3-composer-agent
|
|
13
|
+
/plugin install i3-composer-agent@i3-composer-agent
|
|
14
|
+
```
|
|
15
|
+
|
|
16
|
+
Use the absolute directory printed by the CLI if CodeBuddy has a different
|
|
17
|
+
working directory. Choose the intended installation scope in CodeBuddy's native
|
|
18
|
+
plugin manager. Reload plugins or start a new session after installation.
|
|
19
|
+
|
|
20
|
+
CodeBuddy supports the existing `.claude-plugin/plugin.json` compatibility
|
|
21
|
+
manifest. It declares `.claude/commands/` and `commands/`, preserving the nine
|
|
22
|
+
original lifecycle commands and their workflow content.
|
|
23
|
+
|
|
24
|
+
```text
|
|
25
|
+
/i3-composer-agent:spec
|
|
26
|
+
/i3-composer-agent:plan
|
|
27
|
+
/i3-composer-agent:build
|
|
28
|
+
/i3-composer-agent:build auto
|
|
29
|
+
/i3-composer-agent:review
|
|
30
|
+
/i3-composer-agent:ship
|
|
31
|
+
```
|
|
32
|
+
|
|
33
|
+
Skill IDs, persona names, artifact paths, and workflow gates retain their
|
|
34
|
+
upstream behavior. The plugin namespace changes to `i3-composer-agent`.
|
|
35
|
+
|
|
36
|
+
The bundle includes all skills and shared `references/`. Installing individual
|
|
37
|
+
skills is a different distribution method and does not install the command
|
|
38
|
+
wrappers or persona definitions.
|
|
39
|
+
|
|
40
|
+
The CLI prepares files and prints registration commands. Actual host discovery
|
|
41
|
+
and model execution should be verified after registering the plugin.
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
# Using i3 Composer Agent with Codex
|
|
2
|
+
|
|
3
|
+
Prepare the complete plugin inside the project where you want to use it:
|
|
4
|
+
|
|
5
|
+
```bash
|
|
6
|
+
npx @givolt/i3-composer-agent --codex
|
|
7
|
+
```
|
|
8
|
+
|
|
9
|
+
The CLI copies a persistent `./i3-composer-agent/` bundle and prints these
|
|
10
|
+
native registration commands. Run them to enable the plugin:
|
|
11
|
+
|
|
12
|
+
```bash
|
|
13
|
+
codex plugin marketplace add ./i3-composer-agent
|
|
14
|
+
codex plugin add i3-composer-agent@i3-composer-agent
|
|
15
|
+
```
|
|
16
|
+
|
|
17
|
+
Start a new Codex session after registration. All 25 existing skills keep their
|
|
18
|
+
original IDs. In CLI/IDE, use `/skills` or `$spec-driven-development`; in chat,
|
|
19
|
+
explicitly request the relevant skill from i3 Composer Agent.
|
|
20
|
+
|
|
21
|
+
The adapter in `.codex-plugin/plugin.json` points at the unchanged `skills/`
|
|
22
|
+
layout. Shared checklists remain under `references/`, so skill-relative links
|
|
23
|
+
resolve inside the complete plugin bundle.
|
|
24
|
+
|
|
25
|
+
The short lifecycle commands (`/spec`, `/plan`, `/build`, `/ship`) remain
|
|
26
|
+
available in hosts that load the Claude-compatible command manifest. Codex
|
|
27
|
+
lifecycle-command adaptation is separate from this brand conversion. Native
|
|
28
|
+
Codex `/plan` switches planning mode; it is not the plugin's planning wrapper.
|
|
29
|
+
|
|
30
|
+
Do not preload `using-agent-skills/SKILL.md` into always-on context: Codex routes
|
|
31
|
+
skills natively. The meta-skill can remain installed and explicitly invoked.
|
|
32
|
+
|
|
33
|
+
For local source testing, replace `./i3-composer-agent` above with the absolute
|
|
34
|
+
path to the branded checkout. The CLI does not modify existing plugin settings.
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
# Using i3-composer-agent with Command Code
|
|
2
|
+
|
|
3
|
+
[Command Code](https://commandcode.ai) has a native skills system. The built-in `cmd skills` command clones a GitHub repo, recursively discovers every `SKILL.md`, and installs the ones you pick.
|
|
4
|
+
|
|
5
|
+
The Command Code binary is available as `cmd` (with aliases `cmdc` on Windows and `command-code`). The examples below use `cmd`.
|
|
6
|
+
|
|
7
|
+
## Install
|
|
8
|
+
|
|
9
|
+
**Project scope** (installs into `.commandcode/skills/` at the current git root — the default):
|
|
10
|
+
|
|
11
|
+
```bash
|
|
12
|
+
cmd skills add /path/to/i3-composer-agent
|
|
13
|
+
```
|
|
14
|
+
|
|
15
|
+
In an interactive terminal this shows a multi-select so you can choose which of the 25 skills to install. Pipe/non-interactive invocations install all discovered skills.
|
|
16
|
+
|
|
17
|
+
**Install a specific skill:**
|
|
18
|
+
|
|
19
|
+
```bash
|
|
20
|
+
cmd skills add /path/to/i3-composer-agent -s spec-driven-development
|
|
21
|
+
```
|
|
22
|
+
|
|
23
|
+
**User scope** (installs into `~/.commandcode/skills/`, available in every project):
|
|
24
|
+
|
|
25
|
+
```bash
|
|
26
|
+
cmd skills add /path/to/i3-composer-agent --global
|
|
27
|
+
```
|
|
28
|
+
|
|
29
|
+
**Other supported forms:**
|
|
30
|
+
|
|
31
|
+
```bash
|
|
32
|
+
# Branch selectors apply to Git sources; prepared npm bundles have no Git history.
|
|
33
|
+
cmd skills add /path/to/i3-composer-agent/skills/interview-me # a specific path in the repo
|
|
34
|
+
cmd skills add /path/to/i3-composer-agent --force # overwrite / update if already installed
|
|
35
|
+
```
|
|
36
|
+
|
|
37
|
+
## Manage
|
|
38
|
+
|
|
39
|
+
```bash
|
|
40
|
+
cmd skills list # list installed skills (project + user + bundled)
|
|
41
|
+
cmd skills remove spec-driven-development # remove a project-scoped skill
|
|
42
|
+
cmd skills remove spec-driven-development --global # remove a user-scoped skill
|
|
43
|
+
```
|
|
44
|
+
|
|
45
|
+
`--force` on `add` re-fetches and overwrites an existing skill, which is how you update to the latest version.
|
|
46
|
+
|
|
47
|
+
## Usage
|
|
48
|
+
|
|
49
|
+
Installed skills are discovered automatically and appear in the TUI slash menu, tagged `[skill]`:
|
|
50
|
+
|
|
51
|
+
```
|
|
52
|
+
/spec-driven-development [skill] Write a spec before writing code…
|
|
53
|
+
```
|
|
54
|
+
|
|
55
|
+
Type `/` to browse, or start typing a skill name to filter. Use `/skills` to enable/disable skills.
|
|
56
|
+
|
|
57
|
+
## Where skills live
|
|
58
|
+
|
|
59
|
+
Command Code discovers skills from these locations (project entries resolve against the nearest git root):
|
|
60
|
+
|
|
61
|
+
| Scope | Path |
|
|
62
|
+
|-------|------|
|
|
63
|
+
| Project | `.commandcode/skills/<name>/SKILL.md` |
|
|
64
|
+
| Project (agents-compat) | `.agents/skills/<name>/SKILL.md` |
|
|
65
|
+
| User | `~/.commandcode/skills/<name>/SKILL.md` |
|
|
66
|
+
| User (agents-compat) | `~/.agents/skills/<name>/SKILL.md` |
|
|
67
|
+
|
|
68
|
+
`cmd skills add` writes to `.commandcode/skills/` (project) or `~/.commandcode/skills/` (`--global`).
|
|
69
|
+
|