kyro-ai 3.2.2 → 3.3.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/.claude-plugin/plugin.json +4 -2
- package/README.md +14 -1
- package/WORKFLOW.yaml +1 -1
- package/agents/orchestrator.md +3 -3
- package/commands/status.md +2 -2
- package/dist/cli/app.d.ts.map +1 -1
- package/dist/cli/app.js +9 -0
- package/dist/cli/app.js.map +1 -1
- package/dist/cli/artifacts/json.d.ts +8 -0
- package/dist/cli/artifacts/json.d.ts.map +1 -0
- package/dist/cli/artifacts/json.js +18 -0
- package/dist/cli/artifacts/json.js.map +1 -0
- package/dist/cli/artifacts/paths.d.ts +9 -0
- package/dist/cli/artifacts/paths.d.ts.map +1 -0
- package/dist/cli/artifacts/paths.js +36 -0
- package/dist/cli/artifacts/paths.js.map +1 -0
- package/dist/cli/artifacts/schema.d.ts +102 -0
- package/dist/cli/artifacts/schema.d.ts.map +1 -0
- package/dist/cli/artifacts/schema.js +157 -0
- package/dist/cli/artifacts/schema.js.map +1 -0
- package/dist/cli/commands/artifact-doctor.d.ts +8 -0
- package/dist/cli/commands/artifact-doctor.d.ts.map +1 -0
- package/dist/cli/commands/artifact-doctor.js +246 -0
- package/dist/cli/commands/artifact-doctor.js.map +1 -0
- package/dist/cli/commands/doctor.d.ts +1 -1
- package/dist/cli/commands/doctor.d.ts.map +1 -1
- package/dist/cli/commands/doctor.js +5 -2
- package/dist/cli/commands/doctor.js.map +1 -1
- package/dist/cli/commands/repair.d.ts +4 -0
- package/dist/cli/commands/repair.d.ts.map +1 -0
- package/dist/cli/commands/repair.js +271 -0
- package/dist/cli/commands/repair.js.map +1 -0
- package/dist/cli/commands/scope.d.ts +2 -0
- package/dist/cli/commands/scope.d.ts.map +1 -0
- package/dist/cli/commands/scope.js +113 -0
- package/dist/cli/commands/scope.js.map +1 -0
- package/dist/cli/commands/token-audit.d.ts.map +1 -1
- package/dist/cli/commands/token-audit.js +124 -2
- package/dist/cli/commands/token-audit.js.map +1 -1
- package/dist/cli/commands/tui.js +3 -3
- package/dist/cli/commands/tui.js.map +1 -1
- package/dist/cli/help.d.ts.map +1 -1
- package/dist/cli/help.js +35 -2
- package/dist/cli/help.js.map +1 -1
- package/dist/cli/options.d.ts.map +1 -1
- package/dist/cli/options.js +17 -0
- package/dist/cli/options.js.map +1 -1
- package/dist/cli/types.d.ts +2 -0
- package/dist/cli/types.d.ts.map +1 -1
- package/docs/cli.md +35 -2
- package/fixtures/artifact-integrity/active-sprint-missing/.agents/kyro/kyro.json +11 -0
- package/fixtures/artifact-integrity/active-sprint-missing/.agents/kyro/scopes/demo/DEBT.summary.json +12 -0
- package/fixtures/artifact-integrity/active-sprint-missing/.agents/kyro/scopes/demo/RE-ENTRY-PROMPTS.md +1 -0
- package/fixtures/artifact-integrity/active-sprint-missing/.agents/kyro/scopes/demo/ROADMAP.md +4 -0
- package/fixtures/artifact-integrity/active-sprint-missing/.agents/kyro/scopes/demo/ROADMAP.summary.json +15 -0
- package/fixtures/artifact-integrity/active-sprint-missing/.agents/kyro/scopes/demo/index.json +15 -0
- package/fixtures/artifact-integrity/active-sprint-missing/.agents/kyro/scopes/demo/phases/SPRINT-001-demo.md +8 -0
- package/fixtures/artifact-integrity/active-sprint-missing/.agents/kyro/scopes/demo/phases/SPRINT-001-demo.summary.json +16 -0
- package/fixtures/artifact-integrity/active-sprint-missing/.agents/kyro/scopes/demo/state.json +11 -0
- package/fixtures/artifact-integrity/invalid-state/.agents/kyro/kyro.json +11 -0
- package/fixtures/artifact-integrity/invalid-state/.agents/kyro/scopes/demo/DEBT.summary.json +12 -0
- package/fixtures/artifact-integrity/invalid-state/.agents/kyro/scopes/demo/RE-ENTRY-PROMPTS.md +1 -0
- package/fixtures/artifact-integrity/invalid-state/.agents/kyro/scopes/demo/ROADMAP.md +4 -0
- package/fixtures/artifact-integrity/invalid-state/.agents/kyro/scopes/demo/ROADMAP.summary.json +15 -0
- package/fixtures/artifact-integrity/invalid-state/.agents/kyro/scopes/demo/index.json +15 -0
- package/fixtures/artifact-integrity/invalid-state/.agents/kyro/scopes/demo/phases/SPRINT-001-demo.md +8 -0
- package/fixtures/artifact-integrity/invalid-state/.agents/kyro/scopes/demo/phases/SPRINT-001-demo.summary.json +16 -0
- package/fixtures/artifact-integrity/invalid-state/.agents/kyro/scopes/demo/state.json +10 -0
- package/fixtures/artifact-integrity/missing-summary/.agents/kyro/kyro.json +11 -0
- package/fixtures/artifact-integrity/missing-summary/.agents/kyro/scopes/demo/RE-ENTRY-PROMPTS.md +1 -0
- package/fixtures/artifact-integrity/missing-summary/.agents/kyro/scopes/demo/ROADMAP.md +4 -0
- package/fixtures/artifact-integrity/missing-summary/.agents/kyro/scopes/demo/index.json +15 -0
- package/fixtures/artifact-integrity/missing-summary/.agents/kyro/scopes/demo/phases/SPRINT-001-demo.md +8 -0
- package/fixtures/artifact-integrity/missing-summary/.agents/kyro/scopes/demo/state.json +11 -0
- package/fixtures/artifact-integrity/stale-summary/.agents/kyro/kyro.json +11 -0
- package/fixtures/artifact-integrity/stale-summary/.agents/kyro/scopes/demo/DEBT.summary.json +12 -0
- package/fixtures/artifact-integrity/stale-summary/.agents/kyro/scopes/demo/RE-ENTRY-PROMPTS.md +1 -0
- package/fixtures/artifact-integrity/stale-summary/.agents/kyro/scopes/demo/ROADMAP.md +4 -0
- package/fixtures/artifact-integrity/stale-summary/.agents/kyro/scopes/demo/ROADMAP.summary.json +15 -0
- package/fixtures/artifact-integrity/stale-summary/.agents/kyro/scopes/demo/index.json +15 -0
- package/fixtures/artifact-integrity/stale-summary/.agents/kyro/scopes/demo/phases/SPRINT-001-demo.md +8 -0
- package/fixtures/artifact-integrity/stale-summary/.agents/kyro/scopes/demo/phases/SPRINT-001-demo.summary.json +16 -0
- package/fixtures/artifact-integrity/stale-summary/.agents/kyro/scopes/demo/state.json +11 -0
- package/fixtures/artifact-integrity/valid/.agents/kyro/kyro.json +11 -0
- package/fixtures/artifact-integrity/valid/.agents/kyro/scopes/demo/DEBT.summary.json +12 -0
- package/fixtures/artifact-integrity/valid/.agents/kyro/scopes/demo/RE-ENTRY-PROMPTS.md +1 -0
- package/fixtures/artifact-integrity/valid/.agents/kyro/scopes/demo/ROADMAP.md +4 -0
- package/fixtures/artifact-integrity/valid/.agents/kyro/scopes/demo/ROADMAP.summary.json +15 -0
- package/fixtures/artifact-integrity/valid/.agents/kyro/scopes/demo/index.json +15 -0
- package/fixtures/artifact-integrity/valid/.agents/kyro/scopes/demo/phases/SPRINT-001-demo.md +8 -0
- package/fixtures/artifact-integrity/valid/.agents/kyro/scopes/demo/phases/SPRINT-001-demo.summary.json +16 -0
- package/fixtures/artifact-integrity/valid/.agents/kyro/scopes/demo/state.json +11 -0
- package/package.json +6 -2
- package/scripts/check-artifact-fixtures.mjs +56 -0
- package/skills/sprint-forge/SKILL.md +2 -2
- package/skills/sprint-forge/assets/README.md +15 -4
- package/skills/sprint-forge/assets/fixtures/subcommands-and-reports.sizingDecision.json +17 -0
- package/skills/sprint-forge/assets/helpers/analysis/audit.md +18 -0
- package/skills/sprint-forge/assets/helpers/analysis/bugfix.md +19 -0
- package/skills/sprint-forge/assets/helpers/analysis/feature.md +28 -0
- package/skills/sprint-forge/assets/helpers/analysis/new-project.md +18 -0
- package/skills/sprint-forge/assets/helpers/analysis/refactor.md +18 -0
- package/skills/sprint-forge/assets/helpers/analysis/tech-debt.md +18 -0
- package/skills/sprint-forge/assets/modes/INIT.md +33 -64
- package/skills/sprint-forge/assets/templates/PROJECT-README.md +16 -60
- package/skills/sprint-forge/assets/templates/REENTRY-PROMPTS.md +18 -87
- package/skills/sprint-forge/assets/templates/ROADMAP.md +16 -65
- package/skills/sprint-forge/assets/templates/ROADMAP.summary.json +9 -0
- package/skills/sprint-forge/assets/templates/index.json +9 -0
- package/skills/sprint-forge/assets/helpers/analysis-guide.md +0 -207
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
{
|
|
2
|
+
"schemaVersion": 1,
|
|
3
|
+
"scope": "demo",
|
|
4
|
+
"roadmapSummary": "Demo roadmap",
|
|
5
|
+
"activeSprintSummary": ".agents/kyro/scopes/demo/phases/SPRINT-001-demo.summary.json",
|
|
6
|
+
"openDebtCount": 1,
|
|
7
|
+
"nextTask": "T1.2",
|
|
8
|
+
"relevantArtifactPaths": {
|
|
9
|
+
"roadmap": ".agents/kyro/scopes/demo/ROADMAP.md",
|
|
10
|
+
"roadmapSummary": ".agents/kyro/scopes/demo/ROADMAP.summary.json",
|
|
11
|
+
"sprints": ".agents/kyro/scopes/demo/phases",
|
|
12
|
+
"reentry": ".agents/kyro/scopes/demo/RE-ENTRY-PROMPTS.md"
|
|
13
|
+
},
|
|
14
|
+
"lastUpdated": "2026-06-14T00:00:00.000Z"
|
|
15
|
+
}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
{
|
|
2
|
+
"schemaVersion": 1,
|
|
3
|
+
"scope": "demo",
|
|
4
|
+
"sprint": "SPRINT-001-demo",
|
|
5
|
+
"status": "active",
|
|
6
|
+
"completedTasks": 1,
|
|
7
|
+
"blockedTasks": 0,
|
|
8
|
+
"carryOverTasks": 0,
|
|
9
|
+
"nextRecommendedAction": "execute_task",
|
|
10
|
+
"nextTask": "T1.2",
|
|
11
|
+
"openDecisions": [],
|
|
12
|
+
"filesTouched": [],
|
|
13
|
+
"debtDeltas": [],
|
|
14
|
+
"sourceMarkdown": ".agents/kyro/scopes/demo/phases/SPRINT-001-demo.md",
|
|
15
|
+
"lastUpdated": "2026-06-14T00:00:00.000Z"
|
|
16
|
+
}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
{
|
|
2
|
+
"schemaVersion": 1,
|
|
3
|
+
"scope": "demo",
|
|
4
|
+
"status": "active",
|
|
5
|
+
"activeSprint": "SPRINT-999-missing",
|
|
6
|
+
"currentPhase": "sprint",
|
|
7
|
+
"nextAction": "execute_task",
|
|
8
|
+
"roadmapPath": ".agents/kyro/scopes/demo/ROADMAP.md",
|
|
9
|
+
"sprintsPath": ".agents/kyro/scopes/demo/phases",
|
|
10
|
+
"lastUpdated": "2026-06-14T00:00:00.000Z"
|
|
11
|
+
}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
{
|
|
2
|
+
"schemaVersion": 1,
|
|
3
|
+
"scope": "demo",
|
|
4
|
+
"open": 1,
|
|
5
|
+
"inProgress": 0,
|
|
6
|
+
"resolved": 0,
|
|
7
|
+
"deferred": 0,
|
|
8
|
+
"critical": 1,
|
|
9
|
+
"oldestOpenItem": "| D1 | Demo debt | open | critical |",
|
|
10
|
+
"sourceMarkdown": ".agents/kyro/scopes/demo/phases/SPRINT-001-demo.md",
|
|
11
|
+
"lastUpdated": "2026-06-14T00:00:00.000Z"
|
|
12
|
+
}
|
package/fixtures/artifact-integrity/invalid-state/.agents/kyro/scopes/demo/RE-ENTRY-PROMPTS.md
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
# Re-entry
|
package/fixtures/artifact-integrity/invalid-state/.agents/kyro/scopes/demo/ROADMAP.summary.json
ADDED
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
{
|
|
2
|
+
"schemaVersion": 1,
|
|
3
|
+
"scope": "demo",
|
|
4
|
+
"status": "planned",
|
|
5
|
+
"summary": "Demo roadmap",
|
|
6
|
+
"plannedSprintCount": 1,
|
|
7
|
+
"completedSprintCount": 0,
|
|
8
|
+
"adaptationCount": 0,
|
|
9
|
+
"nextRecommendedAction": "execute_task",
|
|
10
|
+
"openDecisions": [],
|
|
11
|
+
"relevantArtifactPaths": [
|
|
12
|
+
".agents/kyro/scopes/demo/ROADMAP.md"
|
|
13
|
+
],
|
|
14
|
+
"lastUpdated": "2026-06-14T00:00:00.000Z"
|
|
15
|
+
}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
{
|
|
2
|
+
"schemaVersion": 1,
|
|
3
|
+
"scope": "demo",
|
|
4
|
+
"roadmapSummary": "Demo roadmap",
|
|
5
|
+
"activeSprintSummary": ".agents/kyro/scopes/demo/phases/SPRINT-001-demo.summary.json",
|
|
6
|
+
"openDebtCount": 1,
|
|
7
|
+
"nextTask": "T1.2",
|
|
8
|
+
"relevantArtifactPaths": {
|
|
9
|
+
"roadmap": ".agents/kyro/scopes/demo/ROADMAP.md",
|
|
10
|
+
"roadmapSummary": ".agents/kyro/scopes/demo/ROADMAP.summary.json",
|
|
11
|
+
"sprints": ".agents/kyro/scopes/demo/phases",
|
|
12
|
+
"reentry": ".agents/kyro/scopes/demo/RE-ENTRY-PROMPTS.md"
|
|
13
|
+
},
|
|
14
|
+
"lastUpdated": "2026-06-14T00:00:00.000Z"
|
|
15
|
+
}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
{
|
|
2
|
+
"schemaVersion": 1,
|
|
3
|
+
"scope": "demo",
|
|
4
|
+
"sprint": "SPRINT-001-demo",
|
|
5
|
+
"status": "active",
|
|
6
|
+
"completedTasks": 1,
|
|
7
|
+
"blockedTasks": 0,
|
|
8
|
+
"carryOverTasks": 0,
|
|
9
|
+
"nextRecommendedAction": "execute_task",
|
|
10
|
+
"nextTask": "T1.2",
|
|
11
|
+
"openDecisions": [],
|
|
12
|
+
"filesTouched": [],
|
|
13
|
+
"debtDeltas": [],
|
|
14
|
+
"sourceMarkdown": ".agents/kyro/scopes/demo/phases/SPRINT-001-demo.md",
|
|
15
|
+
"lastUpdated": "2026-06-14T00:00:00.000Z"
|
|
16
|
+
}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
{
|
|
2
|
+
"schemaVersion": 1,
|
|
3
|
+
"scope": "demo",
|
|
4
|
+
"status": "active",
|
|
5
|
+
"currentPhase": "sprint",
|
|
6
|
+
"nextAction": "execute_task",
|
|
7
|
+
"roadmapPath": ".agents/kyro/scopes/demo/ROADMAP.md",
|
|
8
|
+
"sprintsPath": ".agents/kyro/scopes/demo/phases",
|
|
9
|
+
"lastUpdated": "2026-06-14T00:00:00.000Z"
|
|
10
|
+
}
|
package/fixtures/artifact-integrity/missing-summary/.agents/kyro/scopes/demo/RE-ENTRY-PROMPTS.md
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
# Re-entry
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
{
|
|
2
|
+
"schemaVersion": 1,
|
|
3
|
+
"scope": "demo",
|
|
4
|
+
"roadmapSummary": "Demo roadmap",
|
|
5
|
+
"activeSprintSummary": ".agents/kyro/scopes/demo/phases/SPRINT-001-demo.summary.json",
|
|
6
|
+
"openDebtCount": 1,
|
|
7
|
+
"nextTask": "T1.2",
|
|
8
|
+
"relevantArtifactPaths": {
|
|
9
|
+
"roadmap": ".agents/kyro/scopes/demo/ROADMAP.md",
|
|
10
|
+
"roadmapSummary": ".agents/kyro/scopes/demo/ROADMAP.summary.json",
|
|
11
|
+
"sprints": ".agents/kyro/scopes/demo/phases",
|
|
12
|
+
"reentry": ".agents/kyro/scopes/demo/RE-ENTRY-PROMPTS.md"
|
|
13
|
+
},
|
|
14
|
+
"lastUpdated": "2026-06-14T00:00:00.000Z"
|
|
15
|
+
}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
{
|
|
2
|
+
"schemaVersion": 1,
|
|
3
|
+
"scope": "demo",
|
|
4
|
+
"status": "active",
|
|
5
|
+
"activeSprint": "SPRINT-001-demo",
|
|
6
|
+
"currentPhase": "sprint",
|
|
7
|
+
"nextAction": "execute_task",
|
|
8
|
+
"roadmapPath": ".agents/kyro/scopes/demo/ROADMAP.md",
|
|
9
|
+
"sprintsPath": ".agents/kyro/scopes/demo/phases",
|
|
10
|
+
"lastUpdated": "2026-06-14T00:00:00.000Z"
|
|
11
|
+
}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
{
|
|
2
|
+
"schemaVersion": 1,
|
|
3
|
+
"scope": "demo",
|
|
4
|
+
"open": 1,
|
|
5
|
+
"inProgress": 0,
|
|
6
|
+
"resolved": 0,
|
|
7
|
+
"deferred": 0,
|
|
8
|
+
"critical": 1,
|
|
9
|
+
"oldestOpenItem": "| D1 | Demo debt | open | critical |",
|
|
10
|
+
"sourceMarkdown": ".agents/kyro/scopes/demo/phases/SPRINT-001-demo.md",
|
|
11
|
+
"lastUpdated": "2026-06-14T00:00:00.000Z"
|
|
12
|
+
}
|
package/fixtures/artifact-integrity/stale-summary/.agents/kyro/scopes/demo/RE-ENTRY-PROMPTS.md
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
# Re-entry
|
package/fixtures/artifact-integrity/stale-summary/.agents/kyro/scopes/demo/ROADMAP.summary.json
ADDED
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
{
|
|
2
|
+
"schemaVersion": 1,
|
|
3
|
+
"scope": "demo",
|
|
4
|
+
"status": "planned",
|
|
5
|
+
"summary": "Demo roadmap",
|
|
6
|
+
"plannedSprintCount": 1,
|
|
7
|
+
"completedSprintCount": 0,
|
|
8
|
+
"adaptationCount": 0,
|
|
9
|
+
"nextRecommendedAction": "execute_task",
|
|
10
|
+
"openDecisions": [],
|
|
11
|
+
"relevantArtifactPaths": [
|
|
12
|
+
".agents/kyro/scopes/demo/ROADMAP.md"
|
|
13
|
+
],
|
|
14
|
+
"lastUpdated": "2026-06-14T00:00:00.000Z"
|
|
15
|
+
}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
{
|
|
2
|
+
"schemaVersion": 1,
|
|
3
|
+
"scope": "demo",
|
|
4
|
+
"roadmapSummary": "Demo roadmap",
|
|
5
|
+
"activeSprintSummary": ".agents/kyro/scopes/demo/phases/SPRINT-001-demo.summary.json",
|
|
6
|
+
"openDebtCount": 1,
|
|
7
|
+
"nextTask": "T1.2",
|
|
8
|
+
"relevantArtifactPaths": {
|
|
9
|
+
"roadmap": ".agents/kyro/scopes/demo/ROADMAP.md",
|
|
10
|
+
"roadmapSummary": ".agents/kyro/scopes/demo/ROADMAP.summary.json",
|
|
11
|
+
"sprints": ".agents/kyro/scopes/demo/phases",
|
|
12
|
+
"reentry": ".agents/kyro/scopes/demo/RE-ENTRY-PROMPTS.md"
|
|
13
|
+
},
|
|
14
|
+
"lastUpdated": "2026-06-14T00:00:00.000Z"
|
|
15
|
+
}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
{
|
|
2
|
+
"schemaVersion": 1,
|
|
3
|
+
"scope": "demo",
|
|
4
|
+
"sprint": "SPRINT-001-demo",
|
|
5
|
+
"status": "active",
|
|
6
|
+
"completedTasks": 1,
|
|
7
|
+
"blockedTasks": 0,
|
|
8
|
+
"carryOverTasks": 0,
|
|
9
|
+
"nextRecommendedAction": "execute_task",
|
|
10
|
+
"nextTask": "T1.2",
|
|
11
|
+
"openDecisions": [],
|
|
12
|
+
"filesTouched": [],
|
|
13
|
+
"debtDeltas": [],
|
|
14
|
+
"sourceMarkdown": ".agents/kyro/scopes/demo/phases/SPRINT-001-demo.md",
|
|
15
|
+
"lastUpdated": "2026-06-14T00:00:00.000Z"
|
|
16
|
+
}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
{
|
|
2
|
+
"schemaVersion": 1,
|
|
3
|
+
"scope": "demo",
|
|
4
|
+
"status": "active",
|
|
5
|
+
"activeSprint": "SPRINT-001-demo",
|
|
6
|
+
"currentPhase": "sprint",
|
|
7
|
+
"nextAction": "execute_task",
|
|
8
|
+
"roadmapPath": ".agents/kyro/scopes/demo/ROADMAP.md",
|
|
9
|
+
"sprintsPath": ".agents/kyro/scopes/demo/phases",
|
|
10
|
+
"lastUpdated": "2026-06-14T00:00:00.000Z"
|
|
11
|
+
}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
{
|
|
2
|
+
"schemaVersion": 1,
|
|
3
|
+
"scope": "demo",
|
|
4
|
+
"open": 1,
|
|
5
|
+
"inProgress": 0,
|
|
6
|
+
"resolved": 0,
|
|
7
|
+
"deferred": 0,
|
|
8
|
+
"critical": 1,
|
|
9
|
+
"oldestOpenItem": "| D1 | Demo debt | open | critical |",
|
|
10
|
+
"sourceMarkdown": ".agents/kyro/scopes/demo/phases/SPRINT-001-demo.md",
|
|
11
|
+
"lastUpdated": "2026-06-14T00:00:00.000Z"
|
|
12
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
# Re-entry
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
{
|
|
2
|
+
"schemaVersion": 1,
|
|
3
|
+
"scope": "demo",
|
|
4
|
+
"status": "planned",
|
|
5
|
+
"summary": "Demo roadmap",
|
|
6
|
+
"plannedSprintCount": 1,
|
|
7
|
+
"completedSprintCount": 0,
|
|
8
|
+
"adaptationCount": 0,
|
|
9
|
+
"nextRecommendedAction": "execute_task",
|
|
10
|
+
"openDecisions": [],
|
|
11
|
+
"relevantArtifactPaths": [
|
|
12
|
+
".agents/kyro/scopes/demo/ROADMAP.md"
|
|
13
|
+
],
|
|
14
|
+
"lastUpdated": "2026-06-14T00:00:00.000Z"
|
|
15
|
+
}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
{
|
|
2
|
+
"schemaVersion": 1,
|
|
3
|
+
"scope": "demo",
|
|
4
|
+
"roadmapSummary": "Demo roadmap",
|
|
5
|
+
"activeSprintSummary": ".agents/kyro/scopes/demo/phases/SPRINT-001-demo.summary.json",
|
|
6
|
+
"openDebtCount": 1,
|
|
7
|
+
"nextTask": "T1.2",
|
|
8
|
+
"relevantArtifactPaths": {
|
|
9
|
+
"roadmap": ".agents/kyro/scopes/demo/ROADMAP.md",
|
|
10
|
+
"roadmapSummary": ".agents/kyro/scopes/demo/ROADMAP.summary.json",
|
|
11
|
+
"sprints": ".agents/kyro/scopes/demo/phases",
|
|
12
|
+
"reentry": ".agents/kyro/scopes/demo/RE-ENTRY-PROMPTS.md"
|
|
13
|
+
},
|
|
14
|
+
"lastUpdated": "2026-06-14T00:00:00.000Z"
|
|
15
|
+
}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
{
|
|
2
|
+
"schemaVersion": 1,
|
|
3
|
+
"scope": "demo",
|
|
4
|
+
"sprint": "SPRINT-001-demo",
|
|
5
|
+
"status": "active",
|
|
6
|
+
"completedTasks": 1,
|
|
7
|
+
"blockedTasks": 0,
|
|
8
|
+
"carryOverTasks": 0,
|
|
9
|
+
"nextRecommendedAction": "execute_task",
|
|
10
|
+
"nextTask": "T1.2",
|
|
11
|
+
"openDecisions": [],
|
|
12
|
+
"filesTouched": [],
|
|
13
|
+
"debtDeltas": [],
|
|
14
|
+
"sourceMarkdown": ".agents/kyro/scopes/demo/phases/SPRINT-001-demo.md",
|
|
15
|
+
"lastUpdated": "2026-06-14T00:00:00.000Z"
|
|
16
|
+
}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
{
|
|
2
|
+
"schemaVersion": 1,
|
|
3
|
+
"scope": "demo",
|
|
4
|
+
"status": "active",
|
|
5
|
+
"activeSprint": "SPRINT-001-demo",
|
|
6
|
+
"currentPhase": "sprint",
|
|
7
|
+
"nextAction": "execute_task",
|
|
8
|
+
"roadmapPath": ".agents/kyro/scopes/demo/ROADMAP.md",
|
|
9
|
+
"sprintsPath": ".agents/kyro/scopes/demo/phases",
|
|
10
|
+
"lastUpdated": "2026-06-14T00:00:00.000Z"
|
|
11
|
+
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "kyro-ai",
|
|
3
|
-
"version": "3.
|
|
3
|
+
"version": "3.3.0",
|
|
4
4
|
"description": "Portable sprint workflow kit for AI coding agents, with markdown artifacts, adapter guides, and formal debt tracking",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"types": "dist/index.d.ts",
|
|
@@ -12,7 +12,10 @@
|
|
|
12
12
|
"check:versions": "node scripts/check-versions.mjs",
|
|
13
13
|
"check": "npm run typecheck && npm run check:versions && npm run check:links",
|
|
14
14
|
"prepublishOnly": "npm run build",
|
|
15
|
-
"build:chmod": "node scripts/make-cli-executable.mjs"
|
|
15
|
+
"build:chmod": "node scripts/make-cli-executable.mjs",
|
|
16
|
+
"check:tokens": "node dist/cli.js doctor --tokens",
|
|
17
|
+
"check:artifacts": "node dist/cli.js doctor --artifacts",
|
|
18
|
+
"check:artifact-fixtures": "node scripts/check-artifact-fixtures.mjs"
|
|
16
19
|
},
|
|
17
20
|
"keywords": [
|
|
18
21
|
"ai-agents",
|
|
@@ -61,6 +64,7 @@
|
|
|
61
64
|
"agents",
|
|
62
65
|
"skills",
|
|
63
66
|
"scripts",
|
|
67
|
+
"fixtures",
|
|
64
68
|
"docs",
|
|
65
69
|
"rules",
|
|
66
70
|
"contexts",
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
import { cpSync, mkdtempSync, rmSync, utimesSync } from 'node:fs';
|
|
2
|
+
import { tmpdir } from 'node:os';
|
|
3
|
+
import { join, resolve } from 'node:path';
|
|
4
|
+
import { spawnSync } from 'node:child_process';
|
|
5
|
+
|
|
6
|
+
const repo = resolve(new URL('..', import.meta.url).pathname);
|
|
7
|
+
const cli = join(repo, 'dist/cli.js');
|
|
8
|
+
const fixtures = join(repo, 'fixtures/artifact-integrity');
|
|
9
|
+
|
|
10
|
+
function run(cwd, args) {
|
|
11
|
+
return spawnSync(process.execPath, [cli, ...args], {
|
|
12
|
+
cwd,
|
|
13
|
+
env: { ...process.env, HOME: join(cwd, '.home') },
|
|
14
|
+
encoding: 'utf-8',
|
|
15
|
+
});
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
function assert(condition, message) {
|
|
19
|
+
if (!condition) throw new Error(message);
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
function assertDoctor(name, expectedStatus, expectedText) {
|
|
23
|
+
const result = run(join(fixtures, name), ['doctor', '--artifacts', '--kyro-scope', 'demo']);
|
|
24
|
+
const output = `${result.stdout}\n${result.stderr}`;
|
|
25
|
+
assert(result.status === expectedStatus, `${name}: expected exit ${expectedStatus}, got ${result.status}\n${output}`);
|
|
26
|
+
assert(output.includes(expectedText), `${name}: expected output to include ${expectedText}\n${output}`);
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
assertDoctor('valid', 0, '[PASS] artifact state.json');
|
|
30
|
+
assertDoctor('missing-summary', 0, '[WARN] artifact ROADMAP.summary.json');
|
|
31
|
+
assertDoctor('invalid-state', 1, '[FAIL] artifact state.json');
|
|
32
|
+
assertDoctor('active-sprint-missing', 1, 'activeSprint not found');
|
|
33
|
+
|
|
34
|
+
const staleDir = mkdtempSync(join(tmpdir(), 'kyro-stale-'));
|
|
35
|
+
cpSync(join(fixtures, 'stale-summary'), staleDir, { recursive: true });
|
|
36
|
+
const roadmap = join(staleDir, '.agents/kyro/scopes/demo/ROADMAP.md');
|
|
37
|
+
const future = new Date(Date.now() + 5000);
|
|
38
|
+
utimesSync(roadmap, future, future);
|
|
39
|
+
const stale = run(staleDir, ['doctor', '--artifacts', '--kyro-scope', 'demo']);
|
|
40
|
+
const staleOutput = `${stale.stdout}\n${stale.stderr}`;
|
|
41
|
+
assert(stale.status === 0, `stale-summary: expected exit 0\n${staleOutput}`);
|
|
42
|
+
assert(staleOutput.includes('older than ROADMAP.md'), `stale-summary: expected stale warning\n${staleOutput}`);
|
|
43
|
+
rmSync(staleDir, { recursive: true, force: true });
|
|
44
|
+
|
|
45
|
+
const repairDir = mkdtempSync(join(tmpdir(), 'kyro-repair-'));
|
|
46
|
+
cpSync(join(fixtures, 'missing-summary'), repairDir, { recursive: true });
|
|
47
|
+
const repair = run(repairDir, ['repair', '--kyro-scope', 'demo', '--yes']);
|
|
48
|
+
const repairOutput = `${repair.stdout}\n${repair.stderr}`;
|
|
49
|
+
assert(repair.status === 0, `repair: expected exit 0\n${repairOutput}`);
|
|
50
|
+
const repaired = run(repairDir, ['doctor', '--artifacts', '--kyro-scope', 'demo']);
|
|
51
|
+
const repairedOutput = `${repaired.stdout}\n${repaired.stderr}`;
|
|
52
|
+
assert(repaired.status === 0, `repaired doctor: expected exit 0\n${repairedOutput}`);
|
|
53
|
+
assert(!repairedOutput.includes('missing'), `repaired doctor: expected missing warnings to be gone\n${repairedOutput}`);
|
|
54
|
+
rmSync(repairDir, { recursive: true, force: true });
|
|
55
|
+
|
|
56
|
+
console.log('Artifact integrity fixtures passed');
|
|
@@ -149,9 +149,9 @@ After detecting the mode, read ONLY the assets listed for that mode. Do NOT read
|
|
|
149
149
|
|
|
150
150
|
| Mode | Read These Assets | Do NOT Read |
|
|
151
151
|
|------|-------------------|-------------|
|
|
152
|
-
| **INIT** | `INIT.md`, `analysis
|
|
152
|
+
| **INIT** | `INIT.md`, then one routed `helpers/analysis/{workType}.md` helper | SPRINT.md, STATUS.md, sprint-generator.md, debt-tracker.md, unrelated analysis helpers |
|
|
153
153
|
| **SPRINT** | `SPRINT.md`, then exactly one routed mode: `plan-sprint.md`, `execute-task.md`, `review-task.md`, `close-sprint.md`, or `recover.md` | INIT.md, STATUS.md, unrelated modes/helpers/templates |
|
|
154
|
-
| **STATUS** | `STATUS.md`, `debt-tracker.md` | INIT.md, SPRINT.md, analysis
|
|
154
|
+
| **STATUS** | `STATUS.md`, `debt-tracker.md` | INIT.md, SPRINT.md, analysis helpers, sprint-generator.md, reentry-generator.md, all templates |
|
|
155
155
|
|
|
156
156
|
**On-demand assets**: Templates are loaded as each workflow step references them, not upfront.
|
|
157
157
|
|
|
@@ -6,7 +6,7 @@ Kyro assets are designed for progressive disclosure: load the router first, then
|
|
|
6
6
|
|
|
7
7
|
| File | Description |
|
|
8
8
|
|------|-------------|
|
|
9
|
-
| [INIT.md](modes/INIT.md) |
|
|
9
|
+
| [INIT.md](modes/INIT.md) | Lean analysis, justified sprint sizing, roadmap, scoped state, and summaries |
|
|
10
10
|
| [SPRINT.md](modes/SPRINT.md) | Lightweight sprint router |
|
|
11
11
|
| [plan-sprint.md](modes/plan-sprint.md) | Generate the next sprint |
|
|
12
12
|
| [execute-task.md](modes/execute-task.md) | Execute active sprint tasks |
|
|
@@ -19,7 +19,12 @@ Kyro assets are designed for progressive disclosure: load the router first, then
|
|
|
19
19
|
|
|
20
20
|
| File | Description |
|
|
21
21
|
|------|-------------|
|
|
22
|
-
| [analysis
|
|
22
|
+
| [analysis/feature.md](helpers/analysis/feature.md) | Feature analysis and sizing signals |
|
|
23
|
+
| [analysis/bugfix.md](helpers/analysis/bugfix.md) | Bugfix analysis and sizing signals |
|
|
24
|
+
| [analysis/audit.md](helpers/analysis/audit.md) | Audit analysis and sizing signals |
|
|
25
|
+
| [analysis/refactor.md](helpers/analysis/refactor.md) | Refactor analysis and sizing signals |
|
|
26
|
+
| [analysis/new-project.md](helpers/analysis/new-project.md) | New project analysis and sizing signals |
|
|
27
|
+
| [analysis/tech-debt.md](helpers/analysis/tech-debt.md) | Tech debt analysis and sizing signals |
|
|
23
28
|
| [sprint-generator.md](helpers/sprint-generator.md) | Sprint generation algorithm |
|
|
24
29
|
| [debt-tracker.md](helpers/debt-tracker.md) | Accumulated debt rules |
|
|
25
30
|
| [reentry-generator.md](helpers/reentry-generator.md) | Re-entry prompt updates |
|
|
@@ -30,12 +35,18 @@ Kyro assets are designed for progressive disclosure: load the router first, then
|
|
|
30
35
|
|
|
31
36
|
| File | Description |
|
|
32
37
|
|------|-------------|
|
|
33
|
-
| [ROADMAP.md](templates/ROADMAP.md) | Human roadmap evidence |
|
|
38
|
+
| [ROADMAP.md](templates/ROADMAP.md) | Human roadmap evidence with sizingDecision |
|
|
34
39
|
| [SPRINT.md](templates/SPRINT.md) | Human sprint evidence |
|
|
35
40
|
| [PROJECT-README.md](templates/PROJECT-README.md) | Scope README |
|
|
36
|
-
| [REENTRY-PROMPTS.md](templates/REENTRY-PROMPTS.md) |
|
|
41
|
+
| [REENTRY-PROMPTS.md](templates/REENTRY-PROMPTS.md) | Summary-first recovery prompts |
|
|
37
42
|
| [state.json](templates/state.json) | Scoped routing state |
|
|
38
43
|
| [index.json](templates/index.json) | Fast agent routing index |
|
|
39
44
|
| [ROADMAP.summary.json](templates/ROADMAP.summary.json) | Roadmap summary cache |
|
|
40
45
|
| [SPRINT.summary.json](templates/SPRINT.summary.json) | Sprint summary cache |
|
|
41
46
|
| [DEBT.summary.json](templates/DEBT.summary.json) | Debt summary cache |
|
|
47
|
+
|
|
48
|
+
## fixtures/
|
|
49
|
+
|
|
50
|
+
| File | Description |
|
|
51
|
+
|------|-------------|
|
|
52
|
+
| [subcommands-and-reports.sizingDecision.json](fixtures/subcommands-and-reports.sizingDecision.json) | Regression fixture proving 3 justified sprints can be valid |
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
{
|
|
2
|
+
"recommendedSprintCount": 3,
|
|
3
|
+
"riskLevel": "medium",
|
|
4
|
+
"rationale": "The work has a dependency chain: CLI subcommands first, metadata reading second, removal reporting third.",
|
|
5
|
+
"splitTriggers": [
|
|
6
|
+
"public CLI behavior change",
|
|
7
|
+
"shared metadata reader dependency",
|
|
8
|
+
"cleanup reporting depends on metadata reading"
|
|
9
|
+
],
|
|
10
|
+
"whyNotFewer": "Combining all changes would mix CLI refactor, metadata parsing, formatting, and reporting behavior in one review unit.",
|
|
11
|
+
"whyNotMore": "No additional subsystem boundaries or migrations were found.",
|
|
12
|
+
"sprintProofs": [
|
|
13
|
+
"Sprint 1 proves CLI subcommand architecture without changing metadata behavior.",
|
|
14
|
+
"Sprint 2 proves metadata reading and formatting independently.",
|
|
15
|
+
"Sprint 3 proves cleanup reporting built on metadata reading."
|
|
16
|
+
]
|
|
17
|
+
}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
# Audit Analysis
|
|
2
|
+
|
|
3
|
+
Use for broad quality, architecture, security, performance, or maintainability reviews.
|
|
4
|
+
|
|
5
|
+
## Inspect
|
|
6
|
+
|
|
7
|
+
1. Map entry points, package metadata, tests, and docs.
|
|
8
|
+
2. Sample each major subsystem enough to identify real patterns.
|
|
9
|
+
3. Let findings emerge from evidence; do not force a fixed checklist.
|
|
10
|
+
4. Group findings by independent remediation area.
|
|
11
|
+
|
|
12
|
+
## Findings
|
|
13
|
+
|
|
14
|
+
Each finding needs severity, evidence, affected files, impact, and recommended remediation.
|
|
15
|
+
|
|
16
|
+
## Sizing signals
|
|
17
|
+
|
|
18
|
+
Audits commonly produce multiple sprints when findings affect independent subsystems or risk classes. Avoid over-splitting cosmetic issues that can be resolved together.
|