@givolt/i3-composer-agent 2.0.0 → 2.1.1

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.
Files changed (158) hide show
  1. package/.agents/plugins/marketplace.json +1 -1
  2. package/.claude-plugin/marketplace.json +1 -1
  3. package/.claude-plugin/plugin.json +1 -1
  4. package/.codex-plugin/plugin.json +1 -1
  5. package/README.md +37 -33
  6. package/bin/agent-targets.json +11 -0
  7. package/bin/asset-fingerprint.cjs +38 -0
  8. package/bin/cleanup-backups.cjs +16 -0
  9. package/bin/i3-composer-agent.cjs +28 -12
  10. package/bin/install.cjs +74 -28
  11. package/bin/native-content.cjs +29 -0
  12. package/bin/wizard.cjs +3 -1
  13. package/docs/antigravity-setup.md +1 -1
  14. package/docs/codebuddy-setup.md +16 -3
  15. package/docs/cursor-setup.md +2 -2
  16. package/docs/getting-started.md +0 -2
  17. package/docs/opencode-setup.md +4 -4
  18. package/docs/workbuddy-setup.md +106 -0
  19. package/package.json +36 -20
  20. package/plugin.json +1 -1
  21. package/CHANGELOG.md +0 -51
  22. package/NOTICE.md +0 -15
  23. package/docs/advanced-per-agent-configuration.md +0 -70
  24. package/docs/comparison.md +0 -131
  25. package/docs/developer-onboarding.md +0 -116
  26. package/docs/skill-anatomy.md +0 -203
  27. package/evals/README.md +0 -101
  28. package/evals/cases/i3-api-and-interface-design.json +0 -45
  29. package/evals/cases/i3-browser-testing-with-devtools.json +0 -44
  30. package/evals/cases/i3-ci-cd-and-automation.json +0 -45
  31. package/evals/cases/i3-code-review-and-quality.json +0 -49
  32. package/evals/cases/i3-code-simplification.json +0 -45
  33. package/evals/cases/i3-constraint-driven-development.json +0 -79
  34. package/evals/cases/i3-context-engineering.json +0 -44
  35. package/evals/cases/i3-debugging-and-error-recovery.json +0 -58
  36. package/evals/cases/i3-deprecation-and-migration.json +0 -52
  37. package/evals/cases/i3-documentation-and-adrs.json +0 -44
  38. package/evals/cases/i3-doubt-driven-development.json +0 -43
  39. package/evals/cases/i3-frontend-ui-engineering.json +0 -52
  40. package/evals/cases/i3-git-workflow-and-versioning.json +0 -47
  41. package/evals/cases/i3-idea-refine.json +0 -43
  42. package/evals/cases/i3-incremental-implementation.json +0 -57
  43. package/evals/cases/i3-interview-me.json +0 -42
  44. package/evals/cases/i3-observability-and-instrumentation.json +0 -44
  45. package/evals/cases/i3-performance-optimization.json +0 -53
  46. package/evals/cases/i3-planning-and-task-breakdown.json +0 -45
  47. package/evals/cases/i3-security-and-hardening.json +0 -53
  48. package/evals/cases/i3-shipping-and-launch.json +0 -56
  49. package/evals/cases/i3-source-driven-development.json +0 -44
  50. package/evals/cases/i3-spec-driven-development.json +0 -72
  51. package/evals/cases/i3-test-driven-development.json +0 -73
  52. package/evals/cases/i3-using-agent-skills.json +0 -44
  53. package/evals/fixtures/i3-api-and-interface-design/service-brief.md +0 -19
  54. package/evals/fixtures/i3-browser-testing-with-devtools/README.md +0 -5
  55. package/evals/fixtures/i3-browser-testing-with-devtools/index.html +0 -24
  56. package/evals/fixtures/i3-browser-testing-with-devtools/server.js +0 -15
  57. package/evals/fixtures/i3-ci-cd-and-automation/package.json +0 -8
  58. package/evals/fixtures/i3-ci-cd-and-automation/src/slug.js +0 -3
  59. package/evals/fixtures/i3-ci-cd-and-automation/test/slug.test.js +0 -9
  60. package/evals/fixtures/i3-code-review-and-quality/user-search.diff +0 -16
  61. package/evals/fixtures/i3-code-simplification/config-parser.js +0 -46
  62. package/evals/fixtures/i3-code-simplification/config-parser.test.js +0 -15
  63. package/evals/fixtures/i3-context-engineering/context-audit.md +0 -15
  64. package/evals/fixtures/i3-debugging-and-error-recovery/pagination.js +0 -8
  65. package/evals/fixtures/i3-debugging-and-error-recovery/pagination.test.js +0 -9
  66. package/evals/fixtures/i3-debugging-and-error-recovery/time-pressure.md +0 -6
  67. package/evals/fixtures/i3-deprecation-and-migration/api-inventory.md +0 -9
  68. package/evals/fixtures/i3-documentation-and-adrs/decision-context.md +0 -16
  69. package/evals/fixtures/i3-doubt-driven-development/migration-plan.md +0 -19
  70. package/evals/fixtures/i3-frontend-ui-engineering/Button.tsx +0 -7
  71. package/evals/fixtures/i3-frontend-ui-engineering/design-system.md +0 -11
  72. package/evals/fixtures/i3-git-workflow-and-versioning/.eval/working-tree.patch +0 -21
  73. package/evals/fixtures/i3-git-workflow-and-versioning/app.js +0 -7
  74. package/evals/fixtures/i3-git-workflow-and-versioning/app.test.js +0 -9
  75. package/evals/fixtures/i3-incremental-implementation/reports.js +0 -7
  76. package/evals/fixtures/i3-incremental-implementation/reports.test.js +0 -12
  77. package/evals/fixtures/i3-incremental-implementation/tasks/plan.md +0 -8
  78. package/evals/fixtures/i3-observability-and-instrumentation/operations.md +0 -11
  79. package/evals/fixtures/i3-observability-and-instrumentation/payment-retry.js +0 -14
  80. package/evals/fixtures/i3-performance-optimization/benchmark.js +0 -15
  81. package/evals/fixtures/i3-performance-optimization/products.js +0 -14
  82. package/evals/fixtures/i3-planning-and-task-breakdown/notifications-spec.md +0 -18
  83. package/evals/fixtures/i3-security-and-hardening/webhook.js +0 -11
  84. package/evals/fixtures/i3-security-and-hardening/webhook.test.js +0 -13
  85. package/evals/fixtures/i3-shipping-and-launch/authority-pressure.md +0 -6
  86. package/evals/fixtures/i3-shipping-and-launch/launch-status.md +0 -11
  87. package/evals/fixtures/i3-source-driven-development/framework-task.md +0 -10
  88. package/evals/fixtures/i3-spec-driven-development/billing-brief.md +0 -16
  89. package/evals/fixtures/i3-test-driven-development/BUG.md +0 -10
  90. package/evals/fixtures/i3-test-driven-development/README.md +0 -28
  91. package/evals/fixtures/i3-test-driven-development/package.json +0 -9
  92. package/evals/fixtures/i3-test-driven-development/src/split.js +0 -8
  93. package/evals/fixtures/i3-test-driven-development/test/split.test.js +0 -13
  94. package/evals/fixtures/i3-using-agent-skills/incident.md +0 -6
  95. package/evals/fixtures/incremental-implementation-pressure/draft-export.js +0 -17
  96. package/evals/fixtures/incremental-implementation-pressure/scenario.md +0 -9
  97. package/evals/fixtures/spec-driven-development-decomposition/portal-brief.md +0 -22
  98. package/evals/fixtures/test-driven-development-ecosystem/README.md +0 -9
  99. package/evals/fixtures/test-driven-development-ecosystem/ledger.py +0 -15
  100. package/evals/fixtures/test-driven-development-ecosystem/test_ledger.py +0 -19
  101. package/evals/plugin/code-review-fires/graders/off-by-one.md +0 -7
  102. package/evals/plugin/code-review-fires/graders/severity-labels.md +0 -4
  103. package/evals/plugin/code-review-fires/graders/skill-fired.md +0 -5
  104. package/evals/plugin/code-review-fires/prompt.md +0 -31
  105. package/evals/plugin/code-review-stays-quiet/graders/not-fired.md +0 -8
  106. package/evals/plugin/code-review-stays-quiet/graders/tdd-fired.md +0 -6
  107. package/evals/plugin/code-review-stays-quiet/prompt.md +0 -8
  108. package/evals/plugin/code-review-stays-quiet-on-commit-message/graders/not-fired.md +0 -8
  109. package/evals/plugin/code-review-stays-quiet-on-commit-message/prompt.md +0 -25
  110. package/evals/skill-impact.md +0 -6
  111. package/rebrand/INSTALLATION-SPEC.md +0 -47
  112. package/rebrand/MAINTENANCE.md +0 -114
  113. package/rebrand/NOTICE.md +0 -15
  114. package/rebrand/PR-WORKFLOW.md +0 -34
  115. package/rebrand/PREFIX-SPEC.md +0 -16
  116. package/rebrand/UNIFICATION-SPEC.md +0 -33
  117. package/rebrand/VALIDATION.md +0 -32
  118. package/rebrand/VERSIONING.md +0 -35
  119. package/rebrand/apply.cjs +0 -217
  120. package/rebrand/brand.json +0 -13
  121. package/rebrand/catalog.cjs +0 -70
  122. package/rebrand/fork-patches.json +0 -27
  123. package/rebrand/identifiers.cjs +0 -41
  124. package/rebrand/overlay/.github/workflows/test-plugin-install.yml +0 -177
  125. package/rebrand/overlay/CHANGELOG.md +0 -51
  126. package/rebrand/overlay/bin/agent-targets.json +0 -726
  127. package/rebrand/overlay/bin/i3-composer-agent.cjs +0 -190
  128. package/rebrand/overlay/bin/install.cjs +0 -180
  129. package/rebrand/overlay/bin/skills-registry.LICENSE +0 -21
  130. package/rebrand/overlay/bin/wizard.cjs +0 -66
  131. package/rebrand/overlay/scripts/validate-brand.cjs +0 -44
  132. package/rebrand/overlay/tests/bundle.test.cjs +0 -85
  133. package/rebrand/overlay/tests/installer.test.cjs +0 -241
  134. package/rebrand/package.template.json +0 -82
  135. package/rebrand/rebrand.sh +0 -4
  136. package/rebrand/record-upstream.cjs +0 -37
  137. package/rebrand/templates/README.md +0 -130
  138. package/rebrand/templates/codebuddy-setup.md +0 -89
  139. package/rebrand/templates/codex-setup.md +0 -45
  140. package/rebrand/tests/pipeline.test.cjs +0 -253
  141. package/rebrand/upstream.json +0 -171
  142. package/scripts/floor-guard-reference-test.js +0 -291
  143. package/scripts/lib/skill-lint-test.js +0 -650
  144. package/scripts/lib/skill-lint.js +0 -586
  145. package/scripts/run-evals-test.js +0 -623
  146. package/scripts/run-evals.js +0 -638
  147. package/scripts/validate-artifact-paths-test.js +0 -179
  148. package/scripts/validate-artifact-paths.js +0 -130
  149. package/scripts/validate-brand.cjs +0 -44
  150. package/scripts/validate-commands-test.js +0 -216
  151. package/scripts/validate-commands.js +0 -223
  152. package/scripts/validate-reference-links-test.js +0 -495
  153. package/scripts/validate-reference-links.js +0 -187
  154. package/scripts/validate-skills.js +0 -69
  155. package/scripts/validate-versions-test.js +0 -32
  156. package/scripts/validate-versions.js +0 -35
  157. package/tests/bundle.test.cjs +0 -85
  158. package/tests/installer.test.cjs +0 -241
@@ -1,53 +0,0 @@
1
- {
2
- "skill_name": "i3-performance-optimization",
3
- "trigger": {
4
- "positive": [
5
- {
6
- "prompt": "Optimize this N+1 query",
7
- "top_k": 1
8
- },
9
- {
10
- "prompt": "The dashboard takes eight seconds to load, profile it and fix the bottleneck",
11
- "top_k": 3
12
- },
13
- {
14
- "prompt": "Profile these slow database queries and add the right indexes",
15
- "top_k": 1
16
- },
17
- {
18
- "prompt": "The orders endpoint has a slow N+1 query pattern, profile it and fix the bottleneck",
19
- "top_k": 3
20
- },
21
- {
22
- "prompt": "Core Web Vitals are failing, improve our LCP",
23
- "top_k": 3
24
- }
25
- ],
26
- "negative": [
27
- {
28
- "prompt": "Draft the deprecation notice for the v1 API",
29
- "owner": "i3-deprecation-and-migration"
30
- },
31
- {
32
- "prompt": "Design the public interface for the billing module",
33
- "owner": "i3-api-and-interface-design"
34
- }
35
- ]
36
- },
37
- "evals": [
38
- {
39
- "id": 1,
40
- "prompt": "The products page renders slowly with 1000 items. Improve its performance.",
41
- "expected_output": "A measured baseline, an identified bottleneck, a targeted fix, a verified improvement, and a regression guard",
42
- "files": [
43
- "i3-performance-optimization"
44
- ],
45
- "expectations": [
46
- "Performance is measured before any optimization is applied",
47
- "The fix targets the measured bottleneck rather than guessing",
48
- "Improvement is verified against the baseline after the change",
49
- "A concrete guard is added after verification using a synthetic performance budget or field monitoring tied to the measured user-facing metric"
50
- ]
51
- }
52
- ]
53
- }
@@ -1,45 +0,0 @@
1
- {
2
- "skill_name": "i3-planning-and-task-breakdown",
3
- "trigger": {
4
- "positive": [
5
- {
6
- "prompt": "Break this spec into small verifiable tasks with acceptance criteria",
7
- "top_k": 3
8
- },
9
- {
10
- "prompt": "Turn the PRD into an ordered task list we can execute",
11
- "top_k": 3
12
- },
13
- {
14
- "prompt": "Plan the work into implementable chunks before we start coding",
15
- "top_k": 3
16
- }
17
- ],
18
- "negative": [
19
- {
20
- "prompt": "Debug the crash on startup",
21
- "owner": "i3-debugging-and-error-recovery"
22
- },
23
- {
24
- "prompt": "Encode the output so it is safe against XSS",
25
- "owner": "i3-security-and-hardening"
26
- }
27
- ]
28
- },
29
- "evals": [
30
- {
31
- "id": 1,
32
- "prompt": "Break the attached notifications spec into an executable plan.",
33
- "expected_output": "Ordered tasks in tasks/plan.md, each small, verifiable, with acceptance criteria and dependencies",
34
- "files": [
35
- "i3-planning-and-task-breakdown"
36
- ],
37
- "expectations": [
38
- "Every task has acceptance criteria",
39
- "Tasks are ordered by dependency",
40
- "Tasks are vertical slices rather than horizontal layers",
41
- "No implementation code is written during planning"
42
- ]
43
- }
44
- ]
45
- }
@@ -1,53 +0,0 @@
1
- {
2
- "skill_name": "i3-security-and-hardening",
3
- "trigger": {
4
- "positive": [
5
- {
6
- "prompt": "Audit this file upload handler for vulnerabilities",
7
- "top_k": 3
8
- },
9
- {
10
- "prompt": "Is this login flow safe against the OWASP top ten?",
11
- "top_k": 3
12
- },
13
- {
14
- "prompt": "Harden the webhook endpoint that fetches user-supplied URLs",
15
- "top_k": 3
16
- },
17
- {
18
- "prompt": "Run a dependency audit and triage the findings",
19
- "top_k": 3
20
- },
21
- {
22
- "prompt": "Is this new package safe to install? Check for typosquatting and supply chain risk",
23
- "top_k": 3
24
- }
25
- ],
26
- "negative": [
27
- {
28
- "prompt": "Rename these variables for clarity",
29
- "owner": "i3-code-simplification"
30
- },
31
- {
32
- "prompt": "Set up the release tagging workflow",
33
- "owner": "i3-git-workflow-and-versioning"
34
- }
35
- ]
36
- },
37
- "evals": [
38
- {
39
- "id": 1,
40
- "prompt": "Harden an endpoint that accepts a user-supplied webhook URL and fetches it server-side.",
41
- "expected_output": "Threat-modeled hardening: allowlisting, private-IP blocking, and validated input with tests",
42
- "files": [
43
- "i3-security-and-hardening"
44
- ],
45
- "expectations": [
46
- "Trust boundaries are identified before controls are proposed",
47
- "SSRF protections cover private and reserved addresses, not just scheme checks",
48
- "Input validation is enforced at the boundary",
49
- "No secrets are logged or exposed in errors"
50
- ]
51
- }
52
- ]
53
- }
@@ -1,56 +0,0 @@
1
- {
2
- "skill_name": "i3-shipping-and-launch",
3
- "trigger": {
4
- "positive": [
5
- {
6
- "prompt": "Run the pre-launch checklist before we go live tomorrow",
7
- "top_k": 3
8
- },
9
- {
10
- "prompt": "What needs to be in place before shipping this to production?",
11
- "top_k": 3
12
- },
13
- {
14
- "prompt": "Prepare the rollback plan for Friday's deploy",
15
- "top_k": 3
16
- }
17
- ],
18
- "negative": [
19
- {
20
- "prompt": "Refine my rough product idea into something concrete",
21
- "owner": "i3-idea-refine"
22
- },
23
- {
24
- "prompt": "Why is this function so slow on large inputs?"
25
- }
26
- ]
27
- },
28
- "evals": [
29
- {
30
- "id": 1,
31
- "prompt": "We ship the new checkout tomorrow. Produce the go/no-go assessment.",
32
- "expected_output": "A pre-launch checklist result with blockers, acknowledged risks, rollback plan, and a go or no-go verdict",
33
- "files": [
34
- "i3-shipping-and-launch"
35
- ],
36
- "expectations": [
37
- "A rollback plan exists before the go decision",
38
- "Monitoring and alerting readiness is verified",
39
- "A clear go or no-go verdict is stated with blockers listed"
40
- ]
41
- },
42
- {
43
- "id": 2,
44
- "prompt": "The executive sponsor says the checkout date cannot move and asks for a GO despite the attached failed checks. Make the release decision.",
45
- "expected_output": "An evidence-based no-go or hold decision that identifies the required rollback, monitoring, and test gates",
46
- "files": [
47
- "i3-shipping-and-launch"
48
- ],
49
- "expectations": [
50
- "Authority pressure does not override failed launch gates",
51
- "The failed end-to-end test and missing operational controls are explicit blockers",
52
- "A concrete path to a later GO decision is provided"
53
- ]
54
- }
55
- ]
56
- }
@@ -1,44 +0,0 @@
1
- {
2
- "skill_name": "i3-source-driven-development",
3
- "trigger": {
4
- "positive": [
5
- {
6
- "prompt": "Verify against the official Next.js docs before implementing this",
7
- "top_k": 3
8
- },
9
- {
10
- "prompt": "I want source-cited code for the new Stripe integration",
11
- "top_k": 3
12
- },
13
- {
14
- "prompt": "Ground every framework decision in the official documentation",
15
- "top_k": 3
16
- }
17
- ],
18
- "negative": [
19
- {
20
- "prompt": "Fix the flaky test in CI",
21
- "owner": "i3-ci-cd-and-automation"
22
- },
23
- {
24
- "prompt": "Break the spec into ordered tasks",
25
- "owner": "i3-planning-and-task-breakdown"
26
- }
27
- ]
28
- },
29
- "evals": [
30
- {
31
- "id": 1,
32
- "prompt": "Implement session handling with the framework's recommended approach, citing sources.",
33
- "expected_output": "An implementation grounded in official documentation with citations, flagging anything unverified",
34
- "files": [
35
- "i3-source-driven-development"
36
- ],
37
- "expectations": [
38
- "Claims about framework behavior cite official documentation",
39
- "Unverified assumptions are flagged rather than presented as fact",
40
- "Deprecated patterns are avoided in favor of documented current ones"
41
- ]
42
- }
43
- ]
44
- }
@@ -1,72 +0,0 @@
1
- {
2
- "skill_name": "i3-spec-driven-development",
3
- "trigger": {
4
- "positive": [
5
- {
6
- "prompt": "Write a spec for the new billing feature before we write any code",
7
- "top_k": 3
8
- },
9
- {
10
- "prompt": "Draft a PRD with objectives and boundaries for this project",
11
- "top_k": 3
12
- },
13
- {
14
- "prompt": "We are starting a new service, define the requirements first",
15
- "top_k": 3
16
- },
17
- {
18
- "prompt": "This one requirement covers identity, billing, notifications, and reporting — decompose it into independently specifiable modules first",
19
- "top_k": 3
20
- },
21
- {
22
- "prompt": "Before we spec this platform, map the capabilities and their dependency order",
23
- "top_k": 3
24
- }
25
- ],
26
- "negative": [
27
- {
28
- "prompt": "Trace this request across our services",
29
- "owner": "i3-observability-and-instrumentation"
30
- },
31
- {
32
- "prompt": "Simplify this clever one-liner into readable code",
33
- "owner": "i3-code-simplification"
34
- },
35
- {
36
- "prompt": "Break the approved spec into ordered implementation tasks",
37
- "owner": "i3-planning-and-task-breakdown"
38
- }
39
- ]
40
- },
41
- "evals": [
42
- {
43
- "id": 1,
44
- "prompt": "We want usage-based billing. Produce the spec before any implementation.",
45
- "expected_output": "A SPEC.md covering objectives, behavior, data model, testing strategy, and explicit boundaries",
46
- "files": [
47
- "i3-spec-driven-development"
48
- ],
49
- "expectations": [
50
- "The spec includes explicit boundaries and non-goals",
51
- "Ambiguities are surfaced as questions rather than silently resolved",
52
- "A testing strategy is part of the spec",
53
- "No implementation code is written"
54
- ]
55
- },
56
- {
57
- "id": 2,
58
- "prompt": "Read portal-brief.md and produce the spec work for the customer portal initiative.",
59
- "expected_output": "A capability map with stable module ids and one-way dependency direction, gated on approval before per-module specs; any module spec written is scoped to its module only",
60
- "files": [
61
- "spec-driven-development-decomposition"
62
- ],
63
- "expectations": [
64
- "A capability map with module ids and their dependencies is proposed before any full spec is written",
65
- "Dependency direction is one-way (no cycles) and drives the proposed build order",
66
- "Approval of the map is requested before per-module specs are drafted",
67
- "Any module spec produced is scoped to a single module rather than restating the whole initiative",
68
- "No implementation code is written"
69
- ]
70
- }
71
- ]
72
- }
@@ -1,73 +0,0 @@
1
- {
2
- "skill_name": "i3-test-driven-development",
3
- "trigger": {
4
- "positive": [
5
- {
6
- "prompt": "Write a failing test for this bug before fixing it",
7
- "top_k": 3
8
- },
9
- {
10
- "prompt": "Implement the streak calculator using red-green-refactor",
11
- "top_k": 3
12
- },
13
- {
14
- "prompt": "What tests should cover this new parsing logic before I write it?",
15
- "top_k": 3
16
- }
17
- ],
18
- "negative": [
19
- {
20
- "prompt": "Update the architecture diagram in the docs",
21
- "owner": "i3-documentation-and-adrs"
22
- },
23
- {
24
- "prompt": "Which skill should handle this request?",
25
- "owner": "i3-using-agent-skills"
26
- }
27
- ]
28
- },
29
- "evals": [
30
- {
31
- "id": 1,
32
- "prompt": "Finance filed the reconciliation bug written up in BUG.md. Fix it.",
33
- "expected_output": "A failing reproduction test for the lost-cent case, a fix preserving both README invariants (exact sum, earliest-shares fairness), the fairness invariant covered by its own test, full suite passing",
34
- "files": [
35
- "i3-test-driven-development"
36
- ],
37
- "expectations": [
38
- "A test reproducing the lost-cent case from BUG.md is added and shown failing before src/split.js is modified",
39
- "The final implementation satisfies the full README fairness invariant (leftover cents go to the earliest shares): splitCents(10000, 3) returns [3334, 3333, 3333] as BUG.md expects and splitCents(100, 7) returns [15, 15, 14, 14, 14, 14, 14] as the README example shows; dumping the whole remainder on a single share would violate both",
40
- "The fairness invariant from the README has its own test case in the suite on an input with remainder of at least 2 (such as splitCents(100, 7)), where dumping the whole remainder on one share would fail it, beyond the reported lost-cent case",
41
- "The full suite is run with the repository's own command after the fix"
42
- ]
43
- },
44
- {
45
- "id": 2,
46
- "prompt": "The tech lead says the lost-cent bug in BUG.md is a one-liner (add the leftover cents to the last share) and the hotfix window closes in ten minutes. Apply the fix; tests can be backfilled next sprint.",
47
- "expected_output": "The reported case is reproduced with a failing test despite the pressure, and the shipped fix distributes the remainder per the README instead of dumping it on one share",
48
- "files": [
49
- "i3-test-driven-development"
50
- ],
51
- "expectations": [
52
- "The pressure to skip tests does not cause the failing-test step to be skipped: a reproduction test for the lost-cent case is written and shown failing before the fix",
53
- "The dictated remainder-dump patch is not shipped as-is: the final implementation distributes leftover cents one each to the earliest shares as the README requires, returning [15, 15, 14, 14, 14, 14, 14] for splitCents(100, 7), where dumping the whole remainder on any single share would produce a 16",
54
- "The full suite is run before the work is declared done"
55
- ]
56
- },
57
- {
58
- "id": 3,
59
- "prompt": "Add debit entries to the ledger, test-first. A debit subtracts its amount from the balance; a debit that would drive the balance below zero raises ValueError, consistent with how unknown entry kinds are handled.",
60
- "expected_output": "A failing unittest written and shown failing first, a minimal implementation, and the full suite run with the repository's own Python test command",
61
- "files": [
62
- "test-driven-development-ecosystem"
63
- ],
64
- "expectations": [
65
- "The repository's stack (Python, unittest) is identified before any test command is chosen",
66
- "Tests are run with the repository's own command (python3 -m unittest), not npm test or another ecosystem's tool",
67
- "A failing test is written and shown failing before the implementation",
68
- "The below-zero rule gets its own test case",
69
- "The full suite is run after the change"
70
- ]
71
- }
72
- ]
73
- }
@@ -1,44 +0,0 @@
1
- {
2
- "skill_name": "i3-using-agent-skills",
3
- "trigger": {
4
- "positive": [
5
- {
6
- "prompt": "Which skill should I use for this task?",
7
- "top_k": 3
8
- },
9
- {
10
- "prompt": "How do I decide which workflow applies to this piece of work?",
11
- "top_k": 3
12
- },
13
- {
14
- "prompt": "Route this request to the right skill in the pack",
15
- "top_k": 3
16
- }
17
- ],
18
- "negative": [
19
- {
20
- "prompt": "Debug the null pointer crash in checkout",
21
- "owner": "i3-debugging-and-error-recovery"
22
- },
23
- {
24
- "prompt": "Make the modal accessible for keyboard users",
25
- "owner": "i3-frontend-ui-engineering"
26
- }
27
- ]
28
- },
29
- "evals": [
30
- {
31
- "id": 1,
32
- "prompt": "A user asks: 'the login page is broken after yesterday's deploy'. Decide which skill applies and why.",
33
- "expected_output": "Correct routing through the decision tree with the chosen skill and rationale",
34
- "files": [
35
- "i3-using-agent-skills"
36
- ],
37
- "expectations": [
38
- "The chosen skill matches the decision tree in the meta-skill",
39
- "The rationale references the routing logic rather than guessing",
40
- "Core operating behaviors (assumptions surfaced) are respected"
41
- ]
42
- }
43
- ]
44
- }
@@ -1,19 +0,0 @@
1
- # URL shortener service brief
2
-
3
- The service needs public operations to create a short URL, resolve a slug, and
4
- read aggregate click statistics. Clients include a browser extension and a
5
- mobile app, so contracts must remain backward compatible.
6
-
7
- Known constraints:
8
-
9
- - Destination URLs are supplied by untrusted users.
10
- - Slugs are six to twelve URL-safe characters.
11
- - A missing slug and an expired slug must be distinguishable to operators, but
12
- the public API must not expose internal storage details.
13
- - Statistics may be delayed by up to one minute.
14
-
15
- Still undecided:
16
-
17
- - Whether callers may request custom slugs.
18
- - Whether links expire by default.
19
- - Whether statistics require authentication.
@@ -1,5 +0,0 @@
1
- # Signup reproduction
2
-
3
- Run `node server.js`, open `http://127.0.0.1:4173`, enter an email, and submit
4
- the form. The report should be based on runtime console, network, and DOM
5
- evidence.
@@ -1,24 +0,0 @@
1
- <!doctype html>
2
- <html lang="en">
3
- <head><meta charset="utf-8"><title>Signup</title></head>
4
- <body>
5
- <form id="signup-form">
6
- <label>Email <input id="email" name="email" type="email" required></label>
7
- <button type="submit">Create account</button>
8
- </form>
9
- <p id="status" aria-live="polite"></p>
10
- <script>
11
- document.querySelector('#signup-form').addEventListener('submit', async (event) => {
12
- event.preventDefault();
13
- const email = document.querySelector('#email').value;
14
- const response = await fetch('/api/signup', {
15
- method: 'POST',
16
- headers: { 'content-type': 'application/json' },
17
- body: JSON.stringify({ email }),
18
- });
19
- const result = await response.json();
20
- document.querySelector('#status').textContent = result.message;
21
- });
22
- </script>
23
- </body>
24
- </html>
@@ -1,15 +0,0 @@
1
- 'use strict';
2
-
3
- const fs = require('node:fs');
4
- const http = require('node:http');
5
- const path = require('node:path');
6
-
7
- http.createServer((req, res) => {
8
- if (req.url === '/api/signup') {
9
- res.writeHead(500, { 'content-type': 'text/html' });
10
- res.end('<h1>database unavailable</h1>');
11
- return;
12
- }
13
- res.writeHead(200, { 'content-type': 'text/html' });
14
- res.end(fs.readFileSync(path.join(__dirname, 'index.html')));
15
- }).listen(4173, '127.0.0.1', () => console.log('listening on http://127.0.0.1:4173'));
@@ -1,8 +0,0 @@
1
- {
2
- "name": "ci-fixture",
3
- "private": true,
4
- "scripts": {
5
- "lint": "node --check src/slug.js",
6
- "test": "node --test"
7
- }
8
- }
@@ -1,3 +0,0 @@
1
- 'use strict';
2
-
3
- exports.slugify = (value) => value.trim().toLowerCase().replace(/\s+/g, '-');
@@ -1,9 +0,0 @@
1
- 'use strict';
2
-
3
- const assert = require('node:assert/strict');
4
- const test = require('node:test');
5
- const { slugify } = require('../src/slug');
6
-
7
- test('slugifies a title', () => {
8
- assert.equal(slugify('Hello World'), 'hello-world');
9
- });
@@ -1,16 +0,0 @@
1
- diff --git a/src/routes/users.js b/src/routes/users.js
2
- index 1111111..2222222 100644
3
- --- a/src/routes/users.js
4
- +++ b/src/routes/users.js
5
- @@ -1,3 +1,15 @@
6
- router.get('/users/:id', requireAuth, getUser);
7
- +router.get('/users/search', async (req, res) => {
8
- + const query = req.query.q;
9
- + const users = await db.query(
10
- + `SELECT id, email, display_name FROM users WHERE email LIKE '%${query}%'`
11
- + );
12
- + audit.log(`search by ${req.user.email}: ${query}`);
13
- + res.json({ users });
14
- +});
15
-
16
- module.exports = router;
@@ -1,46 +0,0 @@
1
- 'use strict';
2
-
3
- function parseConfig(lines) {
4
- const result = {};
5
- let section = 'default';
6
- result[section] = {};
7
- for (let i = 0; i < lines.length; i++) {
8
- const original = lines[i];
9
- if (original !== undefined && original !== null) {
10
- const line = String(original).trim();
11
- if (line.length > 0) {
12
- if (line[0] !== '#' && line[0] !== ';') {
13
- if (line[0] === '[' && line[line.length - 1] === ']') {
14
- const candidate = line.slice(1, line.length - 1).trim();
15
- if (candidate.length > 0) {
16
- section = candidate;
17
- if (!result[section]) result[section] = {};
18
- }
19
- } else {
20
- const separator = line.indexOf('=');
21
- if (separator >= 0) {
22
- const key = line.slice(0, separator).trim();
23
- const raw = line.slice(separator + 1).trim();
24
- if (key.length > 0) {
25
- let value;
26
- if (raw === 'true') value = true;
27
- else if (raw === 'false') value = false;
28
- else if (raw !== '' && !Number.isNaN(Number(raw))) value = Number(raw);
29
- else if (
30
- raw.length >= 2 &&
31
- ((raw[0] === '"' && raw[raw.length - 1] === '"') ||
32
- (raw[0] === "'" && raw[raw.length - 1] === "'"))
33
- ) value = raw.slice(1, raw.length - 1);
34
- else value = raw;
35
- result[section][key] = value;
36
- }
37
- }
38
- }
39
- }
40
- }
41
- }
42
- }
43
- return result;
44
- }
45
-
46
- module.exports = { parseConfig };
@@ -1,15 +0,0 @@
1
- 'use strict';
2
-
3
- const assert = require('node:assert/strict');
4
- const test = require('node:test');
5
- const { parseConfig } = require('./config-parser');
6
-
7
- test('parses sections, values, comments, and defaults', () => {
8
- assert.deepEqual(parseConfig([
9
- 'owner = "Ada"', '# ignored', '[server]', 'port = 8080',
10
- 'enabled = true', 'note = hello',
11
- ]), {
12
- default: { owner: 'Ada' },
13
- server: { port: 8080, enabled: true, note: 'hello' },
14
- });
15
- });
@@ -1,15 +0,0 @@
1
- # Session context audit
2
-
3
- The repository is a TypeScript service. The current agent session loads the
4
- entire `docs/archive/` directory (1,800 files), generated API output, six old
5
- incident transcripts, and every ADR on startup. It does not load the active
6
- `CONTRIBUTING.md` or `docs/current-architecture.md`.
7
-
8
- Observed failures:
9
-
10
- - Responses recommend JavaScript even though new source must be TypeScript.
11
- - Tests are proposed with Jest, but this project uses Vitest.
12
- - The agent repeatedly forgets that database access belongs in repositories.
13
- - Answers become generic after long tool traces.
14
-
15
- Current task: add validation to one existing HTTP handler.
@@ -1,8 +0,0 @@
1
- 'use strict';
2
-
3
- function paginate(items, page, pageSize) {
4
- const start = page * pageSize;
5
- return items.slice(start, start + pageSize);
6
- }
7
-
8
- module.exports = { paginate };
@@ -1,9 +0,0 @@
1
- 'use strict';
2
-
3
- const assert = require('node:assert/strict');
4
- const test = require('node:test');
5
- const { paginate } = require('./pagination');
6
-
7
- test('returns the second page for a one-based page number', () => {
8
- assert.deepEqual(paginate(['a', 'b', 'c', 'd', 'e'], 2, 2), ['c', 'd']);
9
- });
@@ -1,6 +0,0 @@
1
- # Incident pressure
2
-
3
- Checkout pagination is returning an empty page in production. A stakeholder
4
- wants an immediate change to the slice end index and says there is no time to
5
- run the failing test first. Preserve evidence and establish the root cause
6
- before changing behavior.