@givolt/i3-composer-agent 1.0.1 → 2.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 +1 -1
- package/.claude/commands/{build.md → i3-build.md} +10 -10
- package/.claude/commands/{code-simplify.md → i3-code-simplify.md} +2 -2
- package/.claude/commands/{constraints.md → i3-constraints.md} +4 -4
- package/.claude/commands/{plan.md → i3-plan.md} +1 -1
- package/.claude/commands/{review.md → i3-review.md} +3 -3
- package/.claude/commands/{ship.md → i3-ship.md} +4 -4
- package/.claude/commands/{spec.md → i3-spec.md} +1 -1
- package/.claude/commands/{test.md → i3-test.md} +2 -2
- package/.claude/commands/{webperf.md → i3-webperf.md} +1 -1
- package/.claude-plugin/marketplace.json +1 -1
- package/.claude-plugin/plugin.json +1 -1
- package/.codex-plugin/plugin.json +1 -1
- package/.gemini/commands/{build.toml → i3-build.toml} +10 -10
- package/.gemini/commands/{code-simplify.toml → i3-code-simplify.toml} +2 -2
- package/.gemini/commands/{constraints.toml → i3-constraints.toml} +4 -4
- package/.gemini/commands/{planning.toml → i3-planning.toml} +1 -1
- package/{commands/review.toml → .gemini/commands/i3-review.toml} +3 -3
- package/.gemini/commands/{ship.toml → i3-ship.toml} +4 -4
- package/.gemini/commands/{spec.toml → i3-spec.toml} +1 -1
- package/{commands/test.toml → .gemini/commands/i3-test.toml} +2 -2
- package/.gemini/commands/{webperf.toml → i3-webperf.toml} +1 -1
- package/CHANGELOG.md +17 -0
- package/NOTICE.md +2 -1
- package/README.md +47 -41
- package/agents/code-reviewer.md +2 -2
- package/agents/security-auditor.md +1 -1
- package/agents/test-engineer.md +1 -1
- package/agents/web-performance-auditor.md +3 -3
- package/bin/i3-composer-agent.cjs +2 -2
- package/bin/install.cjs +20 -4
- package/commands/{build.toml → i3-build.toml} +10 -10
- package/commands/{code-simplify.toml → i3-code-simplify.toml} +2 -2
- package/commands/{constraints.toml → i3-constraints.toml} +4 -4
- package/commands/{planning.toml → i3-planning.toml} +1 -1
- package/{.gemini/commands/review.toml → commands/i3-review.toml} +3 -3
- package/commands/{ship.toml → i3-ship.toml} +4 -4
- package/commands/{spec.toml → i3-spec.toml} +1 -1
- package/{.gemini/commands/test.toml → commands/i3-test.toml} +2 -2
- package/commands/{webperf.toml → i3-webperf.toml} +1 -1
- package/docs/adoption-guide.md +35 -35
- package/docs/agents.md +12 -12
- package/docs/antigravity-setup.md +14 -14
- package/docs/codebuddy-setup.md +16 -15
- package/docs/codex-setup.md +6 -6
- package/docs/commandcode-setup.md +5 -5
- package/docs/copilot-cli-setup.md +5 -5
- package/docs/copilot-setup.md +22 -22
- package/docs/cursor-setup.md +20 -20
- package/docs/developer-onboarding.md +5 -5
- package/docs/gemini-cli-setup.md +26 -26
- package/docs/getting-started.md +36 -36
- package/docs/opencode-setup.md +27 -27
- package/docs/skill-anatomy.md +3 -3
- package/docs/windsurf-setup.md +7 -7
- package/evals/cases/{api-and-interface-design.json → i3-api-and-interface-design.json} +4 -4
- package/evals/cases/{browser-testing-with-devtools.json → i3-browser-testing-with-devtools.json} +4 -4
- package/evals/cases/{ci-cd-and-automation.json → i3-ci-cd-and-automation.json} +4 -4
- package/evals/cases/{code-review-and-quality.json → i3-code-review-and-quality.json} +4 -4
- package/evals/cases/{code-simplification.json → i3-code-simplification.json} +4 -4
- package/evals/cases/{constraint-driven-development.json → i3-constraint-driven-development.json} +4 -4
- package/evals/cases/{context-engineering.json → i3-context-engineering.json} +4 -4
- package/evals/cases/{debugging-and-error-recovery.json → i3-debugging-and-error-recovery.json} +5 -5
- package/evals/cases/{deprecation-and-migration.json → i3-deprecation-and-migration.json} +4 -4
- package/evals/cases/{documentation-and-adrs.json → i3-documentation-and-adrs.json} +4 -4
- package/evals/cases/{doubt-driven-development.json → i3-doubt-driven-development.json} +3 -3
- package/evals/cases/{frontend-ui-engineering.json → i3-frontend-ui-engineering.json} +4 -4
- package/evals/cases/{git-workflow-and-versioning.json → i3-git-workflow-and-versioning.json} +3 -3
- package/evals/cases/{idea-refine.json → i3-idea-refine.json} +3 -3
- package/evals/cases/{incremental-implementation.json → i3-incremental-implementation.json} +4 -4
- package/evals/cases/{interview-me.json → i3-interview-me.json} +3 -3
- package/evals/cases/{observability-and-instrumentation.json → i3-observability-and-instrumentation.json} +3 -3
- package/evals/cases/{performance-optimization.json → i3-performance-optimization.json} +4 -4
- package/evals/cases/{planning-and-task-breakdown.json → i3-planning-and-task-breakdown.json} +4 -4
- package/evals/cases/{security-and-hardening.json → i3-security-and-hardening.json} +4 -4
- package/evals/cases/{shipping-and-launch.json → i3-shipping-and-launch.json} +4 -4
- package/evals/cases/{source-driven-development.json → i3-source-driven-development.json} +4 -4
- package/evals/cases/{spec-driven-development.json → i3-spec-driven-development.json} +5 -5
- package/evals/cases/{test-driven-development.json → i3-test-driven-development.json} +5 -5
- package/evals/cases/{using-agent-skills.json → i3-using-agent-skills.json} +4 -4
- package/evals/fixtures/{git-workflow-and-versioning → i3-git-workflow-and-versioning}/.eval/working-tree.patch +3 -3
- package/evals/plugin/code-review-fires/graders/skill-fired.md +1 -1
- package/evals/plugin/code-review-stays-quiet/graders/not-fired.md +1 -1
- package/evals/plugin/code-review-stays-quiet/graders/tdd-fired.md +1 -1
- package/evals/plugin/code-review-stays-quiet/prompt.md +2 -2
- package/evals/plugin/code-review-stays-quiet-on-commit-message/graders/not-fired.md +1 -1
- package/evals/plugin/code-review-stays-quiet-on-commit-message/prompt.md +2 -2
- package/hooks/SDD-CACHE.md +3 -3
- package/hooks/SIMPLIFY-IGNORE.md +2 -2
- package/hooks/session-start-test.sh +1 -1
- package/hooks/session-start.sh +3 -3
- package/package.json +1 -1
- package/plugin.json +1 -1
- package/rebrand/INSTALLATION-SPEC.md +2 -1
- package/rebrand/MAINTENANCE.md +3 -2
- package/rebrand/NOTICE.md +2 -1
- package/rebrand/PREFIX-SPEC.md +16 -0
- package/rebrand/UNIFICATION-SPEC.md +2 -2
- package/rebrand/VALIDATION.md +2 -2
- package/rebrand/VERSIONING.md +5 -3
- package/rebrand/apply.cjs +33 -10
- package/rebrand/brand.json +1 -1
- package/rebrand/catalog.cjs +16 -2
- package/rebrand/fork-patches.json +15 -0
- package/rebrand/identifiers.cjs +41 -0
- package/rebrand/overlay/CHANGELOG.md +17 -0
- package/rebrand/overlay/bin/i3-composer-agent.cjs +2 -2
- package/rebrand/overlay/bin/install.cjs +20 -4
- package/rebrand/overlay/scripts/validate-brand.cjs +3 -3
- package/rebrand/overlay/tests/installer.test.cjs +60 -12
- package/rebrand/templates/README.md +11 -5
- package/rebrand/templates/codebuddy-setup.md +16 -15
- package/rebrand/templates/codex-setup.md +6 -6
- package/rebrand/tests/pipeline.test.cjs +71 -3
- package/references/accessibility-checklist.md +1 -1
- package/references/definition-of-done.md +7 -7
- package/references/observability-checklist.md +3 -3
- package/references/orchestration-patterns.md +17 -17
- package/references/performance-checklist.md +2 -2
- package/references/security-checklist.md +1 -1
- package/references/testing-patterns.md +1 -1
- package/scripts/floor-guard-reference-test.js +2 -2
- package/scripts/lib/skill-lint.js +2 -0
- package/scripts/run-evals-test.js +2 -2
- package/scripts/validate-artifact-paths-test.js +3 -3
- package/scripts/validate-artifact-paths.js +4 -2
- package/scripts/validate-brand.cjs +3 -3
- package/scripts/validate-commands.js +1 -0
- package/scripts/validate-reference-links-test.js +11 -11
- package/scripts/validate-reference-links.js +1 -1
- package/skills/{api-and-interface-design → i3-api-and-interface-design}/SKILL.md +2 -2
- package/skills/{browser-testing-with-devtools → i3-browser-testing-with-devtools}/SKILL.md +1 -1
- package/skills/{ci-cd-and-automation → i3-ci-cd-and-automation}/SKILL.md +2 -2
- package/skills/{code-review-and-quality → i3-code-review-and-quality}/SKILL.md +5 -5
- package/skills/{code-simplification → i3-code-simplification}/SKILL.md +1 -1
- package/skills/{constraint-driven-development → i3-constraint-driven-development}/SKILL.md +15 -15
- package/skills/{context-engineering → i3-context-engineering}/SKILL.md +1 -1
- package/skills/{debugging-and-error-recovery → i3-debugging-and-error-recovery}/SKILL.md +2 -2
- package/skills/{deprecation-and-migration → i3-deprecation-and-migration}/SKILL.md +2 -2
- package/skills/{documentation-and-adrs → i3-documentation-and-adrs}/SKILL.md +1 -1
- package/skills/{doubt-driven-development → i3-doubt-driven-development}/SKILL.md +8 -8
- package/skills/{frontend-ui-engineering → i3-frontend-ui-engineering}/SKILL.md +1 -1
- package/skills/{git-workflow-and-versioning → i3-git-workflow-and-versioning}/SKILL.md +4 -4
- package/skills/{idea-refine → i3-idea-refine}/SKILL.md +2 -2
- package/skills/{idea-refine → i3-idea-refine}/scripts/idea-refine.sh +1 -1
- package/skills/{incremental-implementation → i3-incremental-implementation}/SKILL.md +3 -3
- package/skills/{interview-me → i3-interview-me}/SKILL.md +12 -12
- package/skills/{observability-and-instrumentation → i3-observability-and-instrumentation}/SKILL.md +5 -5
- package/skills/{performance-optimization → i3-performance-optimization}/SKILL.md +1 -1
- package/skills/{performance-optimization → i3-performance-optimization}/references/optimization-patterns.md +1 -1
- package/skills/{planning-and-task-breakdown → i3-planning-and-task-breakdown}/SKILL.md +2 -2
- package/skills/{security-and-hardening → i3-security-and-hardening}/SKILL.md +3 -3
- package/skills/{security-and-hardening → i3-security-and-hardening}/references/hardening-patterns.md +1 -1
- package/skills/{shipping-and-launch → i3-shipping-and-launch}/SKILL.md +2 -2
- package/skills/{source-driven-development → i3-source-driven-development}/SKILL.md +2 -2
- package/skills/{spec-driven-development → i3-spec-driven-development}/SKILL.md +7 -7
- package/skills/{test-driven-development → i3-test-driven-development}/SKILL.md +2 -2
- package/skills/{using-agent-skills → i3-using-agent-skills}/SKILL.md +67 -67
- package/tests/installer.test.cjs +60 -12
- /package/evals/fixtures/{api-and-interface-design → i3-api-and-interface-design}/service-brief.md +0 -0
- /package/evals/fixtures/{browser-testing-with-devtools → i3-browser-testing-with-devtools}/README.md +0 -0
- /package/evals/fixtures/{browser-testing-with-devtools → i3-browser-testing-with-devtools}/index.html +0 -0
- /package/evals/fixtures/{browser-testing-with-devtools → i3-browser-testing-with-devtools}/server.js +0 -0
- /package/evals/fixtures/{ci-cd-and-automation → i3-ci-cd-and-automation}/package.json +0 -0
- /package/evals/fixtures/{ci-cd-and-automation → i3-ci-cd-and-automation}/src/slug.js +0 -0
- /package/evals/fixtures/{ci-cd-and-automation → i3-ci-cd-and-automation}/test/slug.test.js +0 -0
- /package/evals/fixtures/{code-review-and-quality → i3-code-review-and-quality}/user-search.diff +0 -0
- /package/evals/fixtures/{code-simplification → i3-code-simplification}/config-parser.js +0 -0
- /package/evals/fixtures/{code-simplification → i3-code-simplification}/config-parser.test.js +0 -0
- /package/evals/fixtures/{context-engineering → i3-context-engineering}/context-audit.md +0 -0
- /package/evals/fixtures/{debugging-and-error-recovery → i3-debugging-and-error-recovery}/pagination.js +0 -0
- /package/evals/fixtures/{debugging-and-error-recovery → i3-debugging-and-error-recovery}/pagination.test.js +0 -0
- /package/evals/fixtures/{debugging-and-error-recovery → i3-debugging-and-error-recovery}/time-pressure.md +0 -0
- /package/evals/fixtures/{deprecation-and-migration → i3-deprecation-and-migration}/api-inventory.md +0 -0
- /package/evals/fixtures/{documentation-and-adrs → i3-documentation-and-adrs}/decision-context.md +0 -0
- /package/evals/fixtures/{doubt-driven-development → i3-doubt-driven-development}/migration-plan.md +0 -0
- /package/evals/fixtures/{frontend-ui-engineering → i3-frontend-ui-engineering}/Button.tsx +0 -0
- /package/evals/fixtures/{frontend-ui-engineering → i3-frontend-ui-engineering}/design-system.md +0 -0
- /package/evals/fixtures/{git-workflow-and-versioning → i3-git-workflow-and-versioning}/app.js +0 -0
- /package/evals/fixtures/{git-workflow-and-versioning → i3-git-workflow-and-versioning}/app.test.js +0 -0
- /package/evals/fixtures/{incremental-implementation → i3-incremental-implementation}/reports.js +0 -0
- /package/evals/fixtures/{incremental-implementation → i3-incremental-implementation}/reports.test.js +0 -0
- /package/evals/fixtures/{incremental-implementation → i3-incremental-implementation}/tasks/plan.md +0 -0
- /package/evals/fixtures/{observability-and-instrumentation → i3-observability-and-instrumentation}/operations.md +0 -0
- /package/evals/fixtures/{observability-and-instrumentation → i3-observability-and-instrumentation}/payment-retry.js +0 -0
- /package/evals/fixtures/{performance-optimization → i3-performance-optimization}/benchmark.js +0 -0
- /package/evals/fixtures/{performance-optimization → i3-performance-optimization}/products.js +0 -0
- /package/evals/fixtures/{planning-and-task-breakdown → i3-planning-and-task-breakdown}/notifications-spec.md +0 -0
- /package/evals/fixtures/{security-and-hardening → i3-security-and-hardening}/webhook.js +0 -0
- /package/evals/fixtures/{security-and-hardening → i3-security-and-hardening}/webhook.test.js +0 -0
- /package/evals/fixtures/{shipping-and-launch → i3-shipping-and-launch}/authority-pressure.md +0 -0
- /package/evals/fixtures/{shipping-and-launch → i3-shipping-and-launch}/launch-status.md +0 -0
- /package/evals/fixtures/{source-driven-development → i3-source-driven-development}/framework-task.md +0 -0
- /package/evals/fixtures/{spec-driven-development → i3-spec-driven-development}/billing-brief.md +0 -0
- /package/evals/fixtures/{test-driven-development → i3-test-driven-development}/BUG.md +0 -0
- /package/evals/fixtures/{test-driven-development → i3-test-driven-development}/README.md +0 -0
- /package/evals/fixtures/{test-driven-development → i3-test-driven-development}/package.json +0 -0
- /package/evals/fixtures/{test-driven-development → i3-test-driven-development}/src/split.js +0 -0
- /package/evals/fixtures/{test-driven-development → i3-test-driven-development}/test/split.test.js +0 -0
- /package/evals/fixtures/{using-agent-skills → i3-using-agent-skills}/incident.md +0 -0
- /package/skills/{constraint-driven-development → i3-constraint-driven-development}/references/floor-guard.md +0 -0
- /package/skills/{idea-refine → i3-idea-refine}/examples.md +0 -0
- /package/skills/{idea-refine → i3-idea-refine}/frameworks.md +0 -0
- /package/skills/{idea-refine → i3-idea-refine}/refinement-criteria.md +0 -0
|
@@ -47,7 +47,7 @@ test('passes when a skill reaches the shared checklist two levels up', () => {
|
|
|
47
47
|
writeFile(root, 'references/definition-of-done.md', '# Definition of Done\n');
|
|
48
48
|
writeFile(
|
|
49
49
|
root,
|
|
50
|
-
'skills/using-agent-skills/SKILL.md',
|
|
50
|
+
'skills/i3-using-agent-skills/SKILL.md',
|
|
51
51
|
'See `../../references/definition-of-done.md`.\n'
|
|
52
52
|
);
|
|
53
53
|
|
|
@@ -64,7 +64,7 @@ test('fails when a skill links the shared checklist as if it were colocated', ()
|
|
|
64
64
|
writeFile(root, 'references/definition-of-done.md', '# Definition of Done\n');
|
|
65
65
|
writeFile(
|
|
66
66
|
root,
|
|
67
|
-
'skills/using-agent-skills/SKILL.md',
|
|
67
|
+
'skills/i3-using-agent-skills/SKILL.md',
|
|
68
68
|
'See `references/definition-of-done.md`.\n'
|
|
69
69
|
);
|
|
70
70
|
|
|
@@ -74,7 +74,7 @@ test('fails when a skill links the shared checklist as if it were colocated', ()
|
|
|
74
74
|
assert.match(result.stdout, /1 skills checked — 1 error\(s\) — FAILED/);
|
|
75
75
|
assert.match(
|
|
76
76
|
result.stdout,
|
|
77
|
-
/L1: references\/definition-of-done\.md — resolves to skills\/using-agent-skills\/references\/definition-of-done\.md/
|
|
77
|
+
/L1: references\/definition-of-done\.md — resolves to skills\/i3-using-agent-skills\/references\/definition-of-done\.md/
|
|
78
78
|
);
|
|
79
79
|
assert.match(result.stdout, /use `\.\.\/\.\.\/references\/<file>\.md`/);
|
|
80
80
|
});
|
|
@@ -82,7 +82,7 @@ test('fails when a skill links the shared checklist as if it were colocated', ()
|
|
|
82
82
|
test('checks markdown link syntax, not just backtick mentions', () => {
|
|
83
83
|
const root = makeSandbox();
|
|
84
84
|
writeFile(root, 'references/definition-of-done.md', '# Definition of Done\n');
|
|
85
|
-
writeFile(root, 'skills/using-agent-skills/SKILL.md', 'See [DoD](references/definition-of-done.md).\n');
|
|
85
|
+
writeFile(root, 'skills/i3-using-agent-skills/SKILL.md', 'See [DoD](references/definition-of-done.md).\n');
|
|
86
86
|
|
|
87
87
|
const result = run(root);
|
|
88
88
|
|
|
@@ -193,7 +193,7 @@ test('counts errors from SKILL.md and its reference files together', () => {
|
|
|
193
193
|
test('fails when a link points at a checklist that no longer exists', () => {
|
|
194
194
|
const root = makeSandbox();
|
|
195
195
|
writeFile(root, 'references/definition-of-done.md', '# Definition of Done\n');
|
|
196
|
-
writeFile(root, 'skills/shipping-and-launch/SKILL.md', 'See `../../references/renamed.md`.\n');
|
|
196
|
+
writeFile(root, 'skills/i3-shipping-and-launch/SKILL.md', 'See `../../references/renamed.md`.\n');
|
|
197
197
|
|
|
198
198
|
const result = run(root);
|
|
199
199
|
|
|
@@ -209,11 +209,11 @@ test('ignores paths that are not references/ links', () => {
|
|
|
209
209
|
writeFile(root, 'references/definition-of-done.md', '# Definition of Done\n');
|
|
210
210
|
writeFile(
|
|
211
211
|
root,
|
|
212
|
-
'skills/planning-and-task-breakdown/SKILL.md',
|
|
212
|
+
'skills/i3-planning-and-task-breakdown/SKILL.md',
|
|
213
213
|
[
|
|
214
214
|
'Save the task list to `tasks/todo.md` and the plan to `tasks/plan.md`.',
|
|
215
215
|
'Record findings in `PERF.md` or `docs/ideas/[idea-name].md`.',
|
|
216
|
-
'Related: `skills/incremental-implementation/SKILL.md`.',
|
|
216
|
+
'Related: `skills/i3-incremental-implementation/SKILL.md`.',
|
|
217
217
|
'See `../../references/definition-of-done.md`.',
|
|
218
218
|
'',
|
|
219
219
|
].join('\n')
|
|
@@ -231,7 +231,7 @@ test('reports every unresolvable link, not just the first per skill', () => {
|
|
|
231
231
|
writeFile(root, 'references/performance-checklist.md', '# Performance\n');
|
|
232
232
|
writeFile(
|
|
233
233
|
root,
|
|
234
|
-
'skills/code-review-and-quality/SKILL.md',
|
|
234
|
+
'skills/i3-code-review-and-quality/SKILL.md',
|
|
235
235
|
['See `references/security-checklist.md`.', 'And `references/performance-checklist.md`.', ''].join('\n')
|
|
236
236
|
);
|
|
237
237
|
|
|
@@ -246,7 +246,7 @@ test('a link inside a fenced block is an example, not a link to resolve', () =>
|
|
|
246
246
|
writeFile(root, 'references/definition-of-done.md', '# DoD\n');
|
|
247
247
|
writeFile(
|
|
248
248
|
root,
|
|
249
|
-
'skills/using-agent-skills/SKILL.md',
|
|
249
|
+
'skills/i3-using-agent-skills/SKILL.md',
|
|
250
250
|
[
|
|
251
251
|
'Shared checklists live two levels up:',
|
|
252
252
|
'',
|
|
@@ -271,7 +271,7 @@ test('fence exemption follows CommonMark rather than a bare ``` match', () => {
|
|
|
271
271
|
const root = makeSandbox();
|
|
272
272
|
writeFile(
|
|
273
273
|
root,
|
|
274
|
-
'skills/using-agent-skills/SKILL.md',
|
|
274
|
+
'skills/i3-using-agent-skills/SKILL.md',
|
|
275
275
|
[
|
|
276
276
|
'~~~markdown',
|
|
277
277
|
'[a](references/missing-a.md)',
|
|
@@ -296,7 +296,7 @@ test('a real broken link outside any fence is still reported', () => {
|
|
|
296
296
|
const root = makeSandbox();
|
|
297
297
|
writeFile(
|
|
298
298
|
root,
|
|
299
|
-
'skills/using-agent-skills/SKILL.md',
|
|
299
|
+
'skills/i3-using-agent-skills/SKILL.md',
|
|
300
300
|
[
|
|
301
301
|
'```markdown',
|
|
302
302
|
'[shown as an example](references/example-only.md)',
|
|
@@ -9,7 +9,7 @@
|
|
|
9
9
|
* the skill's own directory, which is two levels below the root. All 18 links
|
|
10
10
|
* across 11 skills resolved to files that do not exist, in the repo and in
|
|
11
11
|
* every plugin-install layout (~/.claude/plugins/cache/..., ~/.codex/...).
|
|
12
|
-
* Agents that followed the guidance — for example using-agent-skills pointing
|
|
12
|
+
* Agents that followed the guidance — for example i3-using-agent-skills pointing
|
|
13
13
|
* at the Definition of Done — hit a file-not-found and stalled.
|
|
14
14
|
*
|
|
15
15
|
* Nothing else in CI catches this: validate-artifact-paths.js is scoped to
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
---
|
|
2
|
-
name: api-and-interface-design
|
|
2
|
+
name: i3-api-and-interface-design
|
|
3
3
|
description: Guides stable API and interface design. Use when designing APIs, module boundaries, or any public interface. Use when creating REST or GraphQL endpoints, defining type contracts between modules, or establishing boundaries between frontend and backend.
|
|
4
4
|
---
|
|
5
5
|
|
|
@@ -27,7 +27,7 @@ This means: every public behavior — including undocumented quirks, error messa
|
|
|
27
27
|
|
|
28
28
|
- **Be intentional about what you expose.** Every observable behavior is a potential commitment.
|
|
29
29
|
- **Don't leak implementation details.** If users can observe it, they will depend on it.
|
|
30
|
-
- **Plan for deprecation at design time.** See `deprecation-and-migration` for how to safely remove things users depend on.
|
|
30
|
+
- **Plan for deprecation at design time.** See `i3-deprecation-and-migration` for how to safely remove things users depend on.
|
|
31
31
|
- **Tests are not enough.** Even with perfect contract tests, Hyrum's Law means "safe" changes can break real users who depend on undocumented behavior.
|
|
32
32
|
|
|
33
33
|
### The One-Version Rule
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
---
|
|
2
|
-
name: browser-testing-with-devtools
|
|
2
|
+
name: i3-browser-testing-with-devtools
|
|
3
3
|
description: Tests in real browsers via Chrome DevTools MCP. Use when building or debugging anything that runs in a browser. Use when you need to inspect the DOM, capture console errors, analyze network requests, profile performance, or verify visual output with real runtime data. Requires the chrome-devtools MCP server to be configured.
|
|
4
4
|
---
|
|
5
5
|
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
---
|
|
2
|
-
name: ci-cd-and-automation
|
|
2
|
+
name: i3-ci-cd-and-automation
|
|
3
3
|
description: Automates CI/CD pipeline setup. Use when setting up or modifying build and deployment pipelines. Use when you need to automate quality gates, configure test runners in CI, or establish deployment strategies.
|
|
4
4
|
---
|
|
5
5
|
|
|
@@ -186,7 +186,7 @@ Agent fixes → pushes → CI runs again
|
|
|
186
186
|
```
|
|
187
187
|
Lint failure → Agent runs `npm run lint --fix` and commits
|
|
188
188
|
Type error → Agent reads the error location and fixes the type
|
|
189
|
-
Test failure → Agent follows debugging-and-error-recovery skill
|
|
189
|
+
Test failure → Agent follows i3-debugging-and-error-recovery skill
|
|
190
190
|
Build error → Agent checks config and dependencies
|
|
191
191
|
```
|
|
192
192
|
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
---
|
|
2
|
-
name: code-review-and-quality
|
|
2
|
+
name: i3-code-review-and-quality
|
|
3
3
|
description: Conducts multi-axis code review. Use before merging any change. Use when reviewing code written by yourself, another agent, or a human. Use when you need to assess code quality across multiple dimensions before it enters the main branch. Use when asked to review a diff or a pull request, even when the diff is pasted inline.
|
|
4
4
|
---
|
|
5
5
|
|
|
@@ -63,7 +63,7 @@ Does the change fit the system's design?
|
|
|
63
63
|
|
|
64
64
|
### 4. Security
|
|
65
65
|
|
|
66
|
-
For detailed security guidance, see `security-and-hardening`. Does the change introduce vulnerabilities?
|
|
66
|
+
For detailed security guidance, see `i3-security-and-hardening`. Does the change introduce vulnerabilities?
|
|
67
67
|
|
|
68
68
|
- Is user input validated and sanitized?
|
|
69
69
|
- Are secrets kept out of code, logs, and version control?
|
|
@@ -76,7 +76,7 @@ For detailed security guidance, see `security-and-hardening`. Does the change in
|
|
|
76
76
|
|
|
77
77
|
### 5. Performance
|
|
78
78
|
|
|
79
|
-
For detailed profiling and optimization, see `performance-optimization`. Does the change introduce performance problems?
|
|
79
|
+
For detailed profiling and optimization, see `i3-performance-optimization`. Does the change introduce performance problems?
|
|
80
80
|
|
|
81
81
|
- Any N+1 query patterns?
|
|
82
82
|
- Any unbounded loops or unconstrained data fetching?
|
|
@@ -161,7 +161,7 @@ Tests reveal intent and coverage:
|
|
|
161
161
|
- Would the tests catch a regression if the code changed?
|
|
162
162
|
```
|
|
163
163
|
|
|
164
|
-
Answer the last question by experiment, not by reading. Invert one condition the change adds (drop a negation, swap `&&` for `||`), run the suite, then restore the file from a copy. A mutation that stays green is a finding: name the test case that is missing. For a project-wide mutation score, see `constraint-driven-development`.
|
|
164
|
+
Answer the last question by experiment, not by reading. Invert one condition the change adds (drop a negation, swap `&&` for `||`), run the suite, then restore the file from a copy. A mutation that stays green is a finding: name the test case that is missing. For a project-wide mutation score, see `i3-constraint-driven-development`.
|
|
165
165
|
|
|
166
166
|
### Step 3: Review the Implementation
|
|
167
167
|
|
|
@@ -299,7 +299,7 @@ Part of code review is dependency review:
|
|
|
299
299
|
4. **Mind the transitive graph.** Most installed packages are ones nobody chose directly. Review the lockfile diff, not just `package.json`; a single direct bump can pull in dozens of indirect changes.
|
|
300
300
|
5. **Keep the lockfile honest.** Commit it, review its diff, and never hand-edit it. The lockfile is the thing that actually pins what ships.
|
|
301
301
|
|
|
302
|
-
For triaging `npm audit` findings and supply-chain risk (typosquatting, compromised maintainers), follow the `security-and-hardening` skill — this section covers the upgrade *workflow*, that one covers the security verdict.
|
|
302
|
+
For triaging `npm audit` findings and supply-chain risk (typosquatting, compromised maintainers), follow the `i3-security-and-hardening` skill — this section covers the upgrade *workflow*, that one covers the security verdict.
|
|
303
303
|
|
|
304
304
|
## The Review Checklist
|
|
305
305
|
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
---
|
|
2
|
-
name: code-simplification
|
|
2
|
+
name: i3-code-simplification
|
|
3
3
|
description: Simplifies code for clarity. Use when refactoring code for clarity without changing behavior. Use when code works but is harder to read, maintain, or extend than it should be. Use when reviewing code that has accumulated unnecessary complexity.
|
|
4
4
|
---
|
|
5
5
|
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
---
|
|
2
|
-
name: constraint-driven-development
|
|
2
|
+
name: i3-constraint-driven-development
|
|
3
3
|
description: Establishes a project's quality bar as a written contract and stops agents quietly lowering it. Interviews the user on which dimensions matter, supplies sane default thresholds when they have no number in mind, records everything in CONSTRAINTS.md, and watches the diff for a weakened bar — new @ts-ignore or eslint-disable suppressions, skipped or deleted tests, assertions stripped out, unimplemented stubs, thresholds edited down. Use when no quality bar is written down, when the user says "set up constraints" or "define our standards", when the user wants dimensions they care about — accessibility, web performance, coverage — set up as enforced constraints, when an agent keeps silencing checks or skipping tests to get to green, when you need a coverage or performance threshold and don't know what number to pick, or when an agent writes more code than anyone will read.
|
|
4
4
|
---
|
|
5
5
|
|
|
@@ -7,7 +7,7 @@ description: Establishes a project's quality bar as a written contract and stops
|
|
|
7
7
|
|
|
8
8
|
## Overview
|
|
9
9
|
|
|
10
|
-
Other skills in this pack describe what good looks like. `code-review-and-quality` gives you five axes. `test-driven-development` gives you a cycle. `security-and-hardening` gives you a threat list. All of that lives in prose the agent reads and may or may not follow, and none of it survives the end of the session.
|
|
10
|
+
Other skills in this pack describe what good looks like. `i3-code-review-and-quality` gives you five axes. `i3-test-driven-development` gives you a cycle. `i3-security-and-hardening` gives you a threat list. All of that lives in prose the agent reads and may or may not follow, and none of it survives the end of the session.
|
|
11
11
|
|
|
12
12
|
This skill produces something different: a written record of **this project's** bar, with numbers, that outlives the conversation and can be checked mechanically.
|
|
13
13
|
|
|
@@ -24,13 +24,13 @@ Apply this skill when:
|
|
|
24
24
|
- An agent is producing volume nobody is reading line by line
|
|
25
25
|
- CI has checks but nobody can say which ones block a merge and which ones are decoration
|
|
26
26
|
- Coverage, performance, or accessibility numbers get argued about per-PR instead of decided once
|
|
27
|
-
- You're about to run `/build auto` or any autonomous loop, and the only thing standing between it and main is a test suite the agent also wrote
|
|
27
|
+
- You're about to run `/i3-build auto` or any autonomous loop, and the only thing standing between it and main is a test suite the agent also wrote
|
|
28
28
|
|
|
29
29
|
**When NOT to use:**
|
|
30
30
|
|
|
31
31
|
- The project already has a `CONSTRAINTS.md` and the user isn't changing it — read it and follow it instead
|
|
32
32
|
- One-off scripts, spikes, throwaway prototypes
|
|
33
|
-
- The user wants a code review right now (`code-review-and-quality`) or a CI pipeline built (`ci-cd-and-automation`)
|
|
33
|
+
- The user wants a code review right now (`i3-code-review-and-quality`) or a CI pipeline built (`i3-ci-cd-and-automation`)
|
|
34
34
|
- Pre-product-market-fit code with a two-week expected lifetime — the floor below is still worth it, the rest isn't
|
|
35
35
|
|
|
36
36
|
## Loading Constraints
|
|
@@ -56,7 +56,7 @@ Report what you found in two lines, then ask only what's left.
|
|
|
56
56
|
|
|
57
57
|
### Step 2: Four questions, each with a default
|
|
58
58
|
|
|
59
|
-
Follow the one-question-at-a-time discipline from `interview-me`, with one change: every question here has a default, so "I don't know" is a complete answer that still produces a working config.
|
|
59
|
+
Follow the one-question-at-a-time discipline from `i3-interview-me`, with one change: every question here has a default, so "I don't know" is a complete answer that still produces a working config.
|
|
60
60
|
|
|
61
61
|
```
|
|
62
62
|
Q1: Beyond the floor, which of these do you want enforced?
|
|
@@ -189,10 +189,10 @@ The single biggest mistake is running everything everywhere. A check that stalls
|
|
|
189
189
|
|
|
190
190
|
| Phase | Command | What runs | Budget |
|
|
191
191
|
|-------|---------|-----------|--------|
|
|
192
|
-
| BUILD | `/build` | Types, lint, secrets, the floor | under 5s, changed file only |
|
|
193
|
-
| VERIFY | `/test` | Related tests, coverage on changed lines | under 90s |
|
|
194
|
-
| REVIEW | `/review` | Everything, plus the guards below | minutes |
|
|
195
|
-
| SHIP | `/ship` | Direction checks, no regressions | CI |
|
|
192
|
+
| BUILD | `/i3-build` | Types, lint, secrets, the floor | under 5s, changed file only |
|
|
193
|
+
| VERIFY | `/i3-test` | Related tests, coverage on changed lines | under 90s |
|
|
194
|
+
| REVIEW | `/i3-review` | Everything, plus the guards below | minutes |
|
|
195
|
+
| SHIP | `/i3-ship` | Direction checks, no regressions | CI |
|
|
196
196
|
|
|
197
197
|
Two rules that keep this tolerable:
|
|
198
198
|
|
|
@@ -303,9 +303,9 @@ The skill was applied correctly when:
|
|
|
303
303
|
|
|
304
304
|
## See Also
|
|
305
305
|
|
|
306
|
-
- `interview-me` — the one-question-at-a-time discipline this skill's intake borrows
|
|
307
|
-
- `code-review-and-quality` — how to review; this skill decides what the review enforces
|
|
308
|
-
- `ci-cd-and-automation` — building the pipeline these constraints run in
|
|
309
|
-
- `test-driven-development` — the suite that coverage and mutation constraints measure
|
|
310
|
-
- `security-and-hardening` — what the security dimension should contain
|
|
311
|
-
- `performance-optimization` — where the performance numbers come from
|
|
306
|
+
- `i3-interview-me` — the one-question-at-a-time discipline this skill's intake borrows
|
|
307
|
+
- `i3-code-review-and-quality` — how to review; this skill decides what the review enforces
|
|
308
|
+
- `i3-ci-cd-and-automation` — building the pipeline these constraints run in
|
|
309
|
+
- `i3-test-driven-development` — the suite that coverage and mutation constraints measure
|
|
310
|
+
- `i3-security-and-hardening` — what the security dimension should contain
|
|
311
|
+
- `i3-performance-optimization` — where the performance numbers come from
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
---
|
|
2
|
-
name: context-engineering
|
|
2
|
+
name: i3-context-engineering
|
|
3
3
|
description: Optimizes agent context setup. Use when starting a new session, when agent output quality degrades, when switching between tasks, or when you need to configure rules files and context for a project.
|
|
4
4
|
---
|
|
5
5
|
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
---
|
|
2
|
-
name: debugging-and-error-recovery
|
|
2
|
+
name: i3-debugging-and-error-recovery
|
|
3
3
|
description: Guides systematic root-cause debugging. Use when tests fail, builds break, something that worked yesterday broke, behavior doesn't match expectations, or you encounter any unexpected error. Use when you need to figure out what broke and why — a systematic approach to finding and fixing the root cause rather than guessing.
|
|
4
4
|
---
|
|
5
5
|
|
|
@@ -72,7 +72,7 @@ Cannot reproduce on demand:
|
|
|
72
72
|
└── Document the conditions observed and revisit when it recurs
|
|
73
73
|
```
|
|
74
74
|
|
|
75
|
-
For test failures (npm shown — substitute the repository's own test command, per the test-driven-development skill's Discover the Stack First section):
|
|
75
|
+
For test failures (npm shown — substitute the repository's own test command, per the i3-test-driven-development skill's Discover the Stack First section):
|
|
76
76
|
```bash
|
|
77
77
|
# Run the specific failing test
|
|
78
78
|
npm test -- --grep "test name"
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
---
|
|
2
|
-
name: deprecation-and-migration
|
|
2
|
+
name: i3-deprecation-and-migration
|
|
3
3
|
description: Manages deprecation and migration. Use when removing old systems, APIs, or features. Use when migrating users from one implementation to another. Use when migrating a database schema in production, such as renaming or dropping a column without downtime (expand/contract). Use when deciding whether to maintain or sunset existing code.
|
|
4
4
|
---
|
|
5
5
|
|
|
@@ -180,7 +180,7 @@ the old one the app a later, separate deploy
|
|
|
180
180
|
4. **Switch reads.** Point the app at `full_name`, keep writing both. Deploy and bake.
|
|
181
181
|
5. **Contract.** Stop writing `name`, then — in a *separate, later* deploy — drop the column.
|
|
182
182
|
|
|
183
|
-
Each step is independently deployable and reversible: if step 4 misbehaves, roll the code back and `full_name` is still being populated. Treat each phase as a thin vertical slice — see the `incremental-implementation` skill.
|
|
183
|
+
Each step is independently deployable and reversible: if step 4 misbehaves, roll the code back and `full_name` is still being populated. Treat each phase as a thin vertical slice — see the `i3-incremental-implementation` skill.
|
|
184
184
|
|
|
185
185
|
**Rules:**
|
|
186
186
|
- **Additive first, destructive last and alone.** Adds (new nullable column, new table, new index) are safe in any deploy; drops and renames get their own deploy *after* no code references the old shape.
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
---
|
|
2
|
-
name: documentation-and-adrs
|
|
2
|
+
name: i3-documentation-and-adrs
|
|
3
3
|
description: Records decisions and documentation. Use when you need to document an architecture decision (ADR) or the reasoning behind a design choice, when changing public APIs, shipping features, or when you need to record context that future engineers and agents will need to understand the codebase.
|
|
4
4
|
---
|
|
5
5
|
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
---
|
|
2
|
-
name: doubt-driven-development
|
|
2
|
+
name: i3-doubt-driven-development
|
|
3
3
|
description: Subjects every non-trivial decision to a fresh-context adversarial review before it stands. Use when you want every assumption cross-examined before proceeding, when stress-testing a plan for hidden failure modes, when correctness matters more than speed, when working in unfamiliar code, when stakes are high (production auth, security-sensitive logic, a high-stakes migration, irreversible operations), or any time a confident output would be cheaper to verify now than to debug later.
|
|
4
4
|
---
|
|
5
5
|
|
|
@@ -9,7 +9,7 @@ description: Subjects every non-trivial decision to a fresh-context adversarial
|
|
|
9
9
|
|
|
10
10
|
A confident answer is not a correct one. Long sessions accumulate context that quietly turns assumptions into "facts" without anyone noticing. Doubt-driven development is the discipline of materializing a fresh-context reviewer — biased to **disprove**, not approve — before any non-trivial output stands.
|
|
11
11
|
|
|
12
|
-
This is not `/review`. `/review` is a verdict on a finished artifact. This is an in-flight posture: non-trivial decisions get cross-examined while course-correction is still cheap.
|
|
12
|
+
This is not `/i3-review`. `/i3-review` is a verdict on a finished artifact. This is an in-flight posture: non-trivial decisions get cross-examined while course-correction is still cheap.
|
|
13
13
|
|
|
14
14
|
## When to Use
|
|
15
15
|
|
|
@@ -197,7 +197,7 @@ If 3 cycles is "obviously insufficient" because the artifact is large: the artif
|
|
|
197
197
|
| "I'm confident, skip the doubt step" | Confidence correlates poorly with correctness on novel problems. Moments of certainty are exactly when blind spots hide. |
|
|
198
198
|
| "Spawning a reviewer is expensive" | Debugging a wrong commit in production is more expensive. The check is bounded; the bug isn't. |
|
|
199
199
|
| "The reviewer will just nitpick" | Only if unscoped. Constrain the prompt to "issues that would make this fail under the contract." |
|
|
200
|
-
| "I'll do doubt at the end with `/review`" | `/review` is a final gate. Doubt-driven catches wrong directions early when course-correction is cheap. By PR time it's too late. |
|
|
200
|
+
| "I'll do doubt at the end with `/i3-review`" | `/i3-review` is a final gate. Doubt-driven catches wrong directions early when course-correction is cheap. By PR time it's too late. |
|
|
201
201
|
| "If I doubt every step I'll never ship" | The skill applies to non-trivial decisions, not every keystroke. Re-read "When NOT to Use." |
|
|
202
202
|
| "Two opinions are always better than one" | Not when the second has less context and produces noise. Reconcile, don't defer. |
|
|
203
203
|
| "The reviewer disagreed so I was wrong" | The reviewer lacks your context — disagreement is information, not verdict. Re-read the artifact, classify, then decide. |
|
|
@@ -213,7 +213,7 @@ If 3 cycles is "obviously insufficient" because the artifact is large: the artif
|
|
|
213
213
|
- Skipping doubt under time pressure on a high-stakes decision
|
|
214
214
|
- Re-spawning fresh-context on an unchanged artifact (you'll get the same findings; you're stalling)
|
|
215
215
|
- **Doubt theater (checkable signal)**: across 2 or more cycles where the reviewer surfaced substantive findings, zero findings were classified as actionable. You are validating, not doubting. Stop and escalate.
|
|
216
|
-
- Doubting only after committing — that's `/review`, not doubt-driven development
|
|
216
|
+
- Doubting only after committing — that's `/i3-review`, not doubt-driven development
|
|
217
217
|
- Hardcoding an external CLI invocation without confirming with the user that the tool exists, is configured, and accepts that exact syntax
|
|
218
218
|
- **Silently skipping cross-model in an interactive doubt cycle.** Even when not recommending it, the offer must be visible. Skipping is fine; silent skipping is not.
|
|
219
219
|
- Falling back silently when an external CLI errors or is missing — surface the failure and let the user redirect
|
|
@@ -222,10 +222,10 @@ If 3 cycles is "obviously insufficient" because the artifact is large: the artif
|
|
|
222
222
|
|
|
223
223
|
## Interaction with Other Skills
|
|
224
224
|
|
|
225
|
-
- **`code-review-and-quality` / `/review`**: complementary. `/review` is post-hoc PR verdict; doubt-driven is in-flight per-decision. Use both.
|
|
226
|
-
- **`source-driven-development`**: SDD verifies *facts about frameworks* against official docs. Doubt-driven verifies *your reasoning about the artifact*. SDD checks the API exists; doubt-driven checks you used it correctly under the contract.
|
|
227
|
-
- **`test-driven-development`**: TDD's RED step is doubt made concrete — a failing test is a disproof attempt. When TDD applies, that failing test *is* the doubt step for behavioral claims.
|
|
228
|
-
- **`debugging-and-error-recovery`**: when the reviewer surfaces a real failure mode, drop into the debugging skill to localize and fix.
|
|
225
|
+
- **`i3-code-review-and-quality` / `/i3-review`**: complementary. `/i3-review` is post-hoc PR verdict; doubt-driven is in-flight per-decision. Use both.
|
|
226
|
+
- **`i3-source-driven-development`**: SDD verifies *facts about frameworks* against official docs. Doubt-driven verifies *your reasoning about the artifact*. SDD checks the API exists; doubt-driven checks you used it correctly under the contract.
|
|
227
|
+
- **`i3-test-driven-development`**: TDD's RED step is doubt made concrete — a failing test is a disproof attempt. When TDD applies, that failing test *is* the doubt step for behavioral claims.
|
|
228
|
+
- **`i3-debugging-and-error-recovery`**: when the reviewer surfaces a real failure mode, drop into the debugging skill to localize and fix.
|
|
229
229
|
- **Repo orchestration rules** (`../../references/orchestration-patterns.md`): this skill orchestrates from the main session. A persona calling another persona is anti-pattern B — see Loading Constraints above.
|
|
230
230
|
|
|
231
231
|
## Verification
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
---
|
|
2
|
-
name: frontend-ui-engineering
|
|
2
|
+
name: i3-frontend-ui-engineering
|
|
3
3
|
description: Builds production-quality, accessible, responsive user-facing UIs. Use when building or modifying interfaces and pages, creating components, implementing layouts, meeting WCAG accessibility requirements, managing state, or when the output needs to look and feel production-quality rather than AI-generated.
|
|
4
4
|
---
|
|
5
5
|
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
---
|
|
2
|
-
name: git-workflow-and-versioning
|
|
2
|
+
name: i3-git-workflow-and-versioning
|
|
3
3
|
description: Structures git workflow practices. Use when making any code change. Use when committing, branching, resolving conflicts, splitting uncommitted work in a messy working tree into clean atomic commits, opening or reviewing a pull request (PR), pushing to a remote, or when you need to organize work across multiple parallel streams. Use when cutting a release, choosing a semantic version bump, tagging, or writing a changelog.
|
|
4
4
|
---
|
|
5
5
|
|
|
@@ -110,7 +110,7 @@ git commit -m "refactor validation and add phone number field"
|
|
|
110
110
|
|
|
111
111
|
### 5. Size Your Changes
|
|
112
112
|
|
|
113
|
-
Target ~100 lines per commit/PR. Changes over ~1000 lines should be split. See the splitting strategies in `code-review-and-quality` for how to break down large changes.
|
|
113
|
+
Target ~100 lines per commit/PR. Changes over ~1000 lines should be split. See the splitting strategies in `i3-code-review-and-quality` for how to break down large changes.
|
|
114
114
|
|
|
115
115
|
```
|
|
116
116
|
~100 lines → Easy to review, easy to revert
|
|
@@ -281,7 +281,7 @@ For anything with consumers, version `MAJOR.MINOR.PATCH` and let the number carr
|
|
|
281
281
|
PATCH bug fix, backward-compatible — safe to upgrade
|
|
282
282
|
```
|
|
283
283
|
|
|
284
|
-
The number is a promise, so make the code match it. A "patch" that changes behavior consumers relied on is a major change wearing a disguise (Hyrum's Law — see the `api-and-interface-design` skill). When unsure whether a change is breaking, assume it is; a surprise major is far cheaper than a broken consumer.
|
|
284
|
+
The number is a promise, so make the code match it. A "patch" that changes behavior consumers relied on is a major change wearing a disguise (Hyrum's Law — see the `i3-api-and-interface-design` skill). When unsure whether a change is breaking, assume it is; a surprise major is far cheaper than a broken consumer.
|
|
285
285
|
|
|
286
286
|
### Tag the release, and let the tag be the source of truth
|
|
287
287
|
|
|
@@ -308,7 +308,7 @@ A changelog is not `git log`. It's the curated, consumer-facing answer to "what
|
|
|
308
308
|
- `GET /v1/tasks/all` — use the paginated `GET /v1/tasks` (removal in 2.0)
|
|
309
309
|
```
|
|
310
310
|
|
|
311
|
-
Write the entry in the same change that makes the change, while the impact is fresh — not reconstructed from commit archaeology at release time. Breaking changes get a migration note and a deprecation window (follow the `deprecation-and-migration` skill); shipping the actual release is the `shipping-and-launch` skill's job — this section is the versioning contract that feeds it.
|
|
311
|
+
Write the entry in the same change that makes the change, while the impact is fresh — not reconstructed from commit archaeology at release time. Breaking changes get a migration note and a deprecation window (follow the `i3-deprecation-and-migration` skill); shipping the actual release is the `i3-shipping-and-launch` skill's job — this section is the versioning contract that feeds it.
|
|
312
312
|
|
|
313
313
|
## Common Rationalizations
|
|
314
314
|
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
---
|
|
2
|
-
name: idea-refine
|
|
2
|
+
name: i3-idea-refine
|
|
3
3
|
description: Refines raw ideas into sharp, actionable concepts through structured divergent and convergent thinking. Use when an idea is still vague, when you need to stress-test assumptions before committing to a plan, or when you want to expand options before converging on one. Triggers on "ideate", "refine this idea", or "stress-test my plan".
|
|
4
4
|
---
|
|
5
5
|
|
|
@@ -19,7 +19,7 @@ This skill is primarily an interactive dialogue. Invoke it with an idea, and the
|
|
|
19
19
|
|
|
20
20
|
```bash
|
|
21
21
|
# Optional: Initialize the ideas directory
|
|
22
|
-
bash skills/idea-refine/scripts/idea-refine.sh
|
|
22
|
+
bash skills/i3-idea-refine/scripts/idea-refine.sh
|
|
23
23
|
```
|
|
24
24
|
|
|
25
25
|
**Trigger Phrases:**
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
---
|
|
2
|
-
name: incremental-implementation
|
|
2
|
+
name: i3-incremental-implementation
|
|
3
3
|
description: Delivers changes incrementally in thin, verifiable slices. Use when implementing any feature or change that touches more than one file, or when picking up the next task from a plan. Use when rolling a change out behind a feature flag, when you're about to write a large amount of code at once, or when a task feels too big to land in one step.
|
|
4
4
|
---
|
|
5
5
|
|
|
@@ -38,7 +38,7 @@ For each slice:
|
|
|
38
38
|
1. **Implement** the smallest complete piece of functionality
|
|
39
39
|
2. **Test** — run the test suite (or write a test if none exists)
|
|
40
40
|
3. **Verify** — confirm the slice works as expected (tests pass, build succeeds, manual check)
|
|
41
|
-
4. **Commit** -- save your progress with a descriptive message (see `git-workflow-and-versioning` for atomic commit guidance)
|
|
41
|
+
4. **Commit** -- save your progress with a descriptive message (see `i3-git-workflow-and-versioning` for atomic commit guidance)
|
|
42
42
|
5. **Move to the next slice** — carry forward, don't restart
|
|
43
43
|
|
|
44
44
|
## Slicing Strategies
|
|
@@ -198,7 +198,7 @@ Be explicit about what's in scope and what's NOT in scope for each increment.
|
|
|
198
198
|
|
|
199
199
|
## Increment Checklist
|
|
200
200
|
|
|
201
|
-
After each increment, verify with the repository's own commands (see the test-driven-development skill's Discover the Stack First section):
|
|
201
|
+
After each increment, verify with the repository's own commands (see the i3-test-driven-development skill's Discover the Stack First section):
|
|
202
202
|
|
|
203
203
|
- [ ] The change does one thing and does it completely
|
|
204
204
|
- [ ] All existing tests still pass (the repository's test command: `npm test`, `./gradlew test`, `pytest`, ...)
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
---
|
|
2
|
-
name: interview-me
|
|
2
|
+
name: i3-interview-me
|
|
3
3
|
description: Extracts what the user actually wants instead of what they think they should want. Achieves this through one-question-at-a-time interview until ~95% confidence about the underlying intent. Use when an ask is underspecified ("build me X" without "for whom" or "why now"), when the user explicitly invokes ("interview me", "grill me", "are we sure?", "stress-test my thinking"), or when you catch yourself silently filling in ambiguous requirements before any plan, spec, or code exists.
|
|
4
4
|
---
|
|
5
5
|
|
|
@@ -11,7 +11,7 @@ What people ask for and what they actually want are different things. They ask f
|
|
|
11
11
|
|
|
12
12
|
The cheapest moment to find this gap is before any plan, spec, or code exists. Once you've started building, switching costs are real, and the user will rationalize the wrong thing into a "good enough" thing. The misfit gets locked in.
|
|
13
13
|
|
|
14
|
-
This skill closes the gap before it costs anything. The other Define-phase skills assume you already know roughly what you want: `idea-refine` generates variations from an idea, `spec-driven-development` writes the requirements down, `doubt-driven-development` stress-tests a plan after you've drafted one. Interview-me is the part before all of those, where you ask one question at a time, with your best guess attached, until you can predict what the user is going to say before they say it.
|
|
14
|
+
This skill closes the gap before it costs anything. The other Define-phase skills assume you already know roughly what you want: `i3-idea-refine` generates variations from an idea, `i3-spec-driven-development` writes the requirements down, `i3-doubt-driven-development` stress-tests a plan after you've drafted one. Interview-me is the part before all of those, where you ask one question at a time, with your best guess attached, until you can predict what the user is going to say before they say it.
|
|
15
15
|
|
|
16
16
|
## When to Use
|
|
17
17
|
|
|
@@ -126,7 +126,7 @@ If they correct you, fold the correction in and restate. Loop until you get an e
|
|
|
126
126
|
When the user confirms the statement of intent with an explicit "yes":
|
|
127
127
|
|
|
128
128
|
1. **Deliver the confirmed Statement of Intent.**
|
|
129
|
-
2. **Offer downstream paths** (offer to save it to `docs/intent/[topic].md`, draft a spec with `spec-driven-development`, or move to task planning after the spec).
|
|
129
|
+
2. **Offer downstream paths** (offer to save it to `docs/intent/[topic].md`, draft a spec with `i3-spec-driven-development`, or move to task planning after the spec).
|
|
130
130
|
3. **STOP YOUR TURN IMMEDIATELY.** Do NOT invoke tools or start downstream work in this turn. Hand control back to the user to choose the next step.
|
|
131
131
|
|
|
132
132
|
### The 95% Confidence Stop
|
|
@@ -149,7 +149,7 @@ If the user wants the intent to persist (a multi-session project, a handoff to a
|
|
|
149
149
|
|
|
150
150
|
A short before-and-after.
|
|
151
151
|
|
|
152
|
-
**Without `interview-me`:**
|
|
152
|
+
**Without `i3-interview-me`:**
|
|
153
153
|
|
|
154
154
|
```
|
|
155
155
|
User: build me a dashboard for our metrics
|
|
@@ -158,7 +158,7 @@ Agent: <starts proposing chart libraries and layouts>
|
|
|
158
158
|
|
|
159
159
|
The agent has assumed: who it's for, what metrics, what "for our team" means, what success looks like. None of these are stated. Every assumption is a place the user can later say "that's not what I meant."
|
|
160
160
|
|
|
161
|
-
**With `interview-me`:**
|
|
161
|
+
**With `i3-interview-me`:**
|
|
162
162
|
|
|
163
163
|
```
|
|
164
164
|
User: build me a dashboard for our metrics
|
|
@@ -187,11 +187,11 @@ Two questions in, the agent has discovered the actual ask isn't "a dashboard." I
|
|
|
187
187
|
|
|
188
188
|
## Interaction with Other Skills
|
|
189
189
|
|
|
190
|
-
- **`idea-refine`**: downstream. If the confirmed intent is "I want X but I don't know how to scope it," hand off to `idea-refine` to generate variations against the now-explicit intent.
|
|
191
|
-
- **`spec-driven-development`**: downstream. If the confirmed intent is concrete ("I want X for Y users with Z success criteria"), hand off to `spec-driven-development` to write it down.
|
|
192
|
-
- **`planning-and-task-breakdown`**: two hops downstream of this skill (after the spec).
|
|
193
|
-
- **`doubt-driven-development`**: opposite end of the timeline. Interview-me is pre-decision intent extraction; doubt-driven is post-decision artifact review. Both catch divergence, but at different moments.
|
|
194
|
-
- **`source-driven-development`**: orthogonal. Interview-me clarifies what the user wants; SDD verifies framework facts. They don't compete.
|
|
190
|
+
- **`i3-idea-refine`**: downstream. If the confirmed intent is "I want X but I don't know how to scope it," hand off to `i3-idea-refine` to generate variations against the now-explicit intent.
|
|
191
|
+
- **`i3-spec-driven-development`**: downstream. If the confirmed intent is concrete ("I want X for Y users with Z success criteria"), hand off to `i3-spec-driven-development` to write it down.
|
|
192
|
+
- **`i3-planning-and-task-breakdown`**: two hops downstream of this skill (after the spec).
|
|
193
|
+
- **`i3-doubt-driven-development`**: opposite end of the timeline. Interview-me is pre-decision intent extraction; doubt-driven is post-decision artifact review. Both catch divergence, but at different moments.
|
|
194
|
+
- **`i3-source-driven-development`**: orthogonal. Interview-me clarifies what the user wants; SDD verifies framework facts. They don't compete.
|
|
195
195
|
|
|
196
196
|
## Common Rationalizations
|
|
197
197
|
|
|
@@ -222,7 +222,7 @@ Two questions in, the agent has discovered the actual ask isn't "a dashboard." I
|
|
|
222
222
|
|
|
223
223
|
## Verification
|
|
224
224
|
|
|
225
|
-
After applying interview-me:
|
|
225
|
+
After applying i3-interview-me:
|
|
226
226
|
|
|
227
227
|
- [ ] An explicit hypothesis with a confidence number was stated in the first turn
|
|
228
228
|
- [ ] Every confidence number below ~70% was accompanied by a one-line reason (what's still unresolved or missing)
|
|
@@ -232,4 +232,4 @@ After applying interview-me:
|
|
|
232
232
|
- [ ] The user confirmed the restate with an explicit yes (not "whatever you think," not "sounds good," not silence)
|
|
233
233
|
- [ ] At the stop point, the agent could predict reactions to the next three questions it would ask
|
|
234
234
|
- [ ] Upon receiving explicit confirmation, stopped the turn immediately without invoking tools or starting downstream work
|
|
235
|
-
- [ ] Any handoff to a downstream skill (`idea-refine`, `spec-driven-development`) was framed in terms of the confirmed intent, not the original underspecified ask
|
|
235
|
+
- [ ] Any handoff to a downstream skill (`i3-idea-refine`, `i3-spec-driven-development`) was framed in terms of the confirmed intent, not the original underspecified ask
|
package/skills/{observability-and-instrumentation → i3-observability-and-instrumentation}/SKILL.md
RENAMED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
---
|
|
2
|
-
name: observability-and-instrumentation
|
|
2
|
+
name: i3-observability-and-instrumentation
|
|
3
3
|
description: Instruments code so production behavior is visible and diagnosable. Use when adding logging, metrics, tracing, or alerting. Use when shipping any feature that runs in production and you need evidence it works. Use when production issues are reported but you can't tell what happened from the available data.
|
|
4
4
|
---
|
|
5
5
|
|
|
@@ -18,9 +18,9 @@ Code you can't observe is code you can't operate. Observability is the ability t
|
|
|
18
18
|
- Reviewing a PR that adds I/O, retries, queues, or cross-service calls
|
|
19
19
|
|
|
20
20
|
**NOT for:**
|
|
21
|
-
- Diagnosing a failure happening right now — use the `debugging-and-error-recovery` skill (observability is what makes that skill fast next time)
|
|
22
|
-
- Profiling and optimizing measured slowness — use the `performance-optimization` skill
|
|
23
|
-
- Launch-day monitoring checklists and rollback triggers — see the `shipping-and-launch` skill; this skill covers the instrumentation that feeds them
|
|
21
|
+
- Diagnosing a failure happening right now — use the `i3-debugging-and-error-recovery` skill (observability is what makes that skill fast next time)
|
|
22
|
+
- Profiling and optimizing measured slowness — use the `i3-performance-optimization` skill
|
|
23
|
+
- Launch-day monitoring checklists and rollback triggers — see the `i3-shipping-and-launch` skill; this skill covers the instrumentation that feeds them
|
|
24
24
|
|
|
25
25
|
## Process
|
|
26
26
|
|
|
@@ -103,7 +103,7 @@ export const runLog = (entryPoint: 'scheduler' | 'replay_endpoint' | 'cli', runI
|
|
|
103
103
|
|
|
104
104
|
Both fields have to cross the same boundaries as the correlation ID — queue metadata, HTTP headers — or a worker re-derives the entry point and guesses. A field that merely correlates with an entry point is a hint, not an attribution: anything that can invoke the job can reproduce it.
|
|
105
105
|
|
|
106
|
-
**Never log secrets, tokens, passwords, or full PII.** This is a hard rule from the `security-and-hardening` skill — telemetry pipelines are a classic data-leak path. Allowlist fields; don't log whole request bodies.
|
|
106
|
+
**Never log secrets, tokens, passwords, or full PII.** This is a hard rule from the `i3-security-and-hardening` skill — telemetry pipelines are a classic data-leak path. Allowlist fields; don't log whole request bodies.
|
|
107
107
|
|
|
108
108
|
### 4. Metrics
|
|
109
109
|
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
---
|
|
2
|
-
name: performance-optimization
|
|
2
|
+
name: i3-performance-optimization
|
|
3
3
|
description: Optimizes application performance across frontend, backend, queries, and databases. Use when performance requirements exist, when you suspect performance regressions, when Core Web Vitals or load times need improvement, when N+1 query patterns need fixing, or when profiling reveals bottlenecks.
|
|
4
4
|
---
|
|
5
5
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# Optimization Patterns
|
|
2
2
|
|
|
3
|
-
Worked fixes for the anti-patterns named in Step 3 of the `performance-optimization` skill. The skill states the rule and the signature to look for; this file shows one concrete implementation. Open the section you need after Step 2 has identified the bottleneck — it is not meant to be read top to bottom.
|
|
3
|
+
Worked fixes for the anti-patterns named in Step 3 of the `i3-performance-optimization` skill. The skill states the rule and the signature to look for; this file shows one concrete implementation. Open the section you need after Step 2 has identified the bottleneck — it is not meant to be read top to bottom.
|
|
4
4
|
|
|
5
5
|
Checklists, measurement commands, TTFB diagnosis, and caching read/write strategies live in `../../../references/performance-checklist.md`.
|
|
6
6
|
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
---
|
|
2
|
-
name: planning-and-task-breakdown
|
|
2
|
+
name: i3-planning-and-task-breakdown
|
|
3
3
|
description: Breaks work into ordered tasks. Use when you have a spec or clear requirements and need to break work into implementable tasks. Use when a task feels too large to start, when you need to estimate scope, or when parallel work is possible.
|
|
4
4
|
---
|
|
5
5
|
|
|
@@ -158,7 +158,7 @@ The same rule applies to an external task list target: never bulk-close or delet
|
|
|
158
158
|
|
|
159
159
|
The task list target is where tasks and checkpoints are recorded. It is defined once, here; every other reference in this skill defers to it.
|
|
160
160
|
|
|
161
|
-
- **Default: a checklist-style markdown file at `tasks/todo.md`.** This is the convention the `/build` command and other downstream tooling expect. Use it unless the project says otherwise.
|
|
161
|
+
- **Default: a checklist-style markdown file at `tasks/todo.md`.** This is the convention the `/i3-build` command and other downstream tooling expect. Use it unless the project says otherwise.
|
|
162
162
|
- **External tracker:** if the project's agent rules (`CLAUDE.md`, `AGENTS.md`, etc.) or the user designate an issue tracker (e.g. GitHub Issues, Jira, Linear, `bd`/beads), create one tracker item per task instead of writing `tasks/todo.md`. Map the Step 4 structure onto the tracker's fields: acceptance criteria and verification steps in the item body, dependencies via the tracker's linking mechanism (`bd dep add`, "blocked by", etc.). Record Step 5 checkpoints as tracker items too, or as a checklist in the plan document if the tracker has no natural equivalent.
|
|
163
163
|
|
|
164
164
|
When using an external tracker, note it in `tasks/plan.md` (e.g. "Tasks tracked in Linear project FOO") so downstream steps and future sessions know where to look, and keep the plan document's Task List section as an ordered index of tracker item IDs or links rather than a duplicate checklist.
|