kyro-ai 3.2.1 → 3.2.2

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 (55) hide show
  1. package/.claude-plugin/plugin.json +1 -1
  2. package/README.md +8 -11
  3. package/WORKFLOW.yaml +1 -1
  4. package/commands/forge.md +22 -44
  5. package/commands/status.md +21 -79
  6. package/commands/wrap-up.md +18 -74
  7. package/dist/cli/adapters/codex.js +1 -1
  8. package/dist/cli/adapters/codex.js.map +1 -1
  9. package/dist/cli/adapters/command-skills.js +1 -1
  10. package/dist/cli/adapters/command-skills.js.map +1 -1
  11. package/dist/cli/app.js +1 -1
  12. package/dist/cli/app.js.map +1 -1
  13. package/dist/cli/commands/doctor.d.ts +2 -1
  14. package/dist/cli/commands/doctor.d.ts.map +1 -1
  15. package/dist/cli/commands/doctor.js +8 -4
  16. package/dist/cli/commands/doctor.js.map +1 -1
  17. package/dist/cli/commands/token-audit.d.ts +3 -0
  18. package/dist/cli/commands/token-audit.d.ts.map +1 -0
  19. package/dist/cli/commands/token-audit.js +141 -0
  20. package/dist/cli/commands/token-audit.js.map +1 -0
  21. package/dist/cli/commands/tui.js +3 -3
  22. package/dist/cli/commands/tui.js.map +1 -1
  23. package/dist/cli/help.d.ts.map +1 -1
  24. package/dist/cli/help.js +3 -0
  25. package/dist/cli/help.js.map +1 -1
  26. package/dist/cli/options.d.ts.map +1 -1
  27. package/dist/cli/options.js +5 -0
  28. package/dist/cli/options.js.map +1 -1
  29. package/dist/cli/types.d.ts +1 -0
  30. package/dist/cli/types.d.ts.map +1 -1
  31. package/docs/HOW-TO-USE-CODEX.md +28 -60
  32. package/docs/HOW-TO-USE-OPENCODE.md +26 -72
  33. package/docs/agent-adapters.md +40 -118
  34. package/docs/architecture.md +7 -2
  35. package/docs/cli.md +20 -2
  36. package/docs/commands-reference.md +22 -32
  37. package/docs/getting-started.md +65 -115
  38. package/package.json +1 -1
  39. package/skills/sprint-forge/SKILL.md +9 -8
  40. package/skills/sprint-forge/assets/README.md +27 -17
  41. package/skills/sprint-forge/assets/helpers/metrics.md +4 -4
  42. package/skills/sprint-forge/assets/helpers/reentry-generator.md +4 -4
  43. package/skills/sprint-forge/assets/modes/INIT.md +68 -169
  44. package/skills/sprint-forge/assets/modes/SPRINT.md +20 -246
  45. package/skills/sprint-forge/assets/modes/STATUS.md +46 -128
  46. package/skills/sprint-forge/assets/modes/close-sprint.md +29 -0
  47. package/skills/sprint-forge/assets/modes/execute-task.md +26 -0
  48. package/skills/sprint-forge/assets/modes/plan-sprint.md +29 -0
  49. package/skills/sprint-forge/assets/modes/recover.md +23 -0
  50. package/skills/sprint-forge/assets/modes/review-task.md +25 -0
  51. package/skills/sprint-forge/assets/templates/DEBT.summary.json +12 -0
  52. package/skills/sprint-forge/assets/templates/ROADMAP.summary.json +15 -0
  53. package/skills/sprint-forge/assets/templates/SPRINT.summary.json +16 -0
  54. package/skills/sprint-forge/assets/templates/index.json +15 -0
  55. package/skills/sprint-forge/assets/templates/state.json +11 -0
@@ -0,0 +1,141 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.runTokenAuditChecks = runTokenAuditChecks;
4
+ const node_fs_1 = require("node:fs");
5
+ const node_path_1 = require("node:path");
6
+ const constants_1 = require("../constants");
7
+ const fs_1 = require("../fs");
8
+ const TOKEN_BUDGET = {
9
+ agentsBlockWords: 150,
10
+ projectedSkillWords: 200,
11
+ commandRouterWords: 500,
12
+ modeFileWords: 900,
13
+ startupTokens: 1500,
14
+ statusBriefTokens: 2000,
15
+ };
16
+ function runTokenAuditChecks() {
17
+ const checks = [];
18
+ checks.push(...checkCommandRouters());
19
+ checks.push(...checkModeFiles());
20
+ checks.push(checkProjectedSkills());
21
+ checks.push(checkAgentsBlockBudget());
22
+ checks.push(checkStartupBudget());
23
+ checks.push(checkStatusBriefBudget());
24
+ checks.push(reportHeaviestFiles());
25
+ return checks;
26
+ }
27
+ function checkCommandRouters() {
28
+ return ['commands/forge.md', 'commands/status.md', 'commands/wrap-up.md'].map((file) => {
29
+ const weighted = weightPackageFile(file);
30
+ if (weighted.words > TOKEN_BUDGET.commandRouterWords) {
31
+ return warn('token budget: command router', `${file} has ${weighted.words} words`, 'Keep command files as routers; move details into mode/helper files.');
32
+ }
33
+ return pass('token budget: command router', `${file} ${weighted.words}/${TOKEN_BUDGET.commandRouterWords} words`);
34
+ });
35
+ }
36
+ function checkModeFiles() {
37
+ return listPackageFiles('skills/sprint-forge/assets/modes', '.md').map((file) => {
38
+ const weighted = weightPackageFile(file);
39
+ if (weighted.words > TOKEN_BUDGET.modeFileWords) {
40
+ return warn('token budget: mode file', `${file} has ${weighted.words} words`, 'Split this mode or move detail into a lazy-loaded helper.');
41
+ }
42
+ return pass('token budget: mode file', `${file} ${weighted.words}/${TOKEN_BUDGET.modeFileWords} words`);
43
+ });
44
+ }
45
+ function checkProjectedSkills() {
46
+ const skillFiles = ['kyro-forge/SKILL.md', 'kyro-status/SKILL.md', 'kyro-wrap-up/SKILL.md'].map((file) => `${constants_1.AGENT_SKILLS_ROOT}/${file}`);
47
+ const existing = skillFiles.filter((file) => (0, node_fs_1.existsSync)((0, fs_1.resolveManagedPath)(file)));
48
+ if (existing.length === 0) {
49
+ return warn('token budget: projected skills', 'global Kyro skills are not installed', 'Run kyro install, then kyro doctor --tokens again.');
50
+ }
51
+ const oversized = existing.map(weightManagedFile).filter((file) => file.words > TOKEN_BUDGET.projectedSkillWords);
52
+ if (oversized.length > 0) {
53
+ return warn('token budget: projected skills', formatWeightedList(oversized), 'Projected skills must stay as tiny stubs.');
54
+ }
55
+ return pass('token budget: projected skills', `${existing.length} skills within ${TOKEN_BUDGET.projectedSkillWords} words`);
56
+ }
57
+ function checkAgentsBlockBudget() {
58
+ const agentsPath = (0, fs_1.resolveManagedPath)('AGENTS.md');
59
+ if (!(0, node_fs_1.existsSync)(agentsPath)) {
60
+ return warn('token budget: AGENTS block', 'AGENTS.md not found in this workspace', 'Install the codex adapter if this workspace should expose AGENTS.md instructions.');
61
+ }
62
+ const text = (0, node_fs_1.readFileSync)(agentsPath, 'utf-8');
63
+ const match = text.match(/<!-- kyro-ai:agents-md:start -->([\s\S]*?)<!-- kyro-ai:agents-md:end -->/m);
64
+ if (!match) {
65
+ return warn('token budget: AGENTS block', 'Kyro managed block not found', 'Run kyro install --agent codex or kyro sync --agent codex.');
66
+ }
67
+ const words = countWords(match[1]);
68
+ if (words > TOKEN_BUDGET.agentsBlockWords) {
69
+ return warn('token budget: AGENTS block', `${words}/${TOKEN_BUDGET.agentsBlockWords} words`, 'Keep AGENTS.md as bootstrap only.');
70
+ }
71
+ return pass('token budget: AGENTS block', `${words}/${TOKEN_BUDGET.agentsBlockWords} words`);
72
+ }
73
+ function checkStartupBudget() {
74
+ const files = ['commands/forge.md', 'skills/sprint-forge/assets/modes/SPRINT.md'];
75
+ const total = files.map(weightPackageFile).reduce((sum, file) => sum + file.estimatedTokens, 0);
76
+ if (total > TOKEN_BUDGET.startupTokens) {
77
+ return warn('token budget: startup path', `${total}/${TOKEN_BUDGET.startupTokens} estimated tokens`, 'Reduce forge router or sprint router startup instructions.');
78
+ }
79
+ return pass('token budget: startup path', `${total}/${TOKEN_BUDGET.startupTokens} estimated tokens`);
80
+ }
81
+ function checkStatusBriefBudget() {
82
+ const files = ['commands/status.md'];
83
+ const total = files.map(weightPackageFile).reduce((sum, file) => sum + file.estimatedTokens, 0);
84
+ if (total > TOKEN_BUDGET.statusBriefTokens) {
85
+ return warn('token budget: status brief path', `${total}/${TOKEN_BUDGET.statusBriefTokens} estimated tokens`, 'Keep status brief summary-first.');
86
+ }
87
+ return pass('token budget: status brief path', `${total}/${TOKEN_BUDGET.statusBriefTokens} estimated tokens`);
88
+ }
89
+ function reportHeaviestFiles() {
90
+ const files = [
91
+ ...listPackageFiles('commands', '.md'),
92
+ ...listPackageFiles('agents', '.md'),
93
+ ...listPackageFiles('skills/sprint-forge', '.md'),
94
+ ].map(weightPackageFile).sort((a, b) => b.words - a.words).slice(0, 8);
95
+ return pass('token audit: heaviest files', formatWeightedList(files));
96
+ }
97
+ function listPackageFiles(directory, extension) {
98
+ const root = (0, node_path_1.resolve)(constants_1.PACKAGE_ROOT, directory);
99
+ if (!(0, node_fs_1.existsSync)(root))
100
+ return [];
101
+ const files = [];
102
+ walk(root, files, extension);
103
+ return files.map((file) => (0, node_path_1.relative)(constants_1.PACKAGE_ROOT, file)).sort();
104
+ }
105
+ function walk(current, files, extension) {
106
+ for (const entry of (0, node_fs_1.readdirSync)(current, { withFileTypes: true })) {
107
+ const full = (0, node_path_1.join)(current, entry.name);
108
+ if (entry.isDirectory())
109
+ walk(full, files, extension);
110
+ if (entry.isFile() && entry.name.endsWith(extension))
111
+ files.push(full);
112
+ }
113
+ }
114
+ function weightPackageFile(file) {
115
+ const text = (0, node_fs_1.readFileSync)((0, node_path_1.resolve)(constants_1.PACKAGE_ROOT, file), 'utf-8');
116
+ return buildWeightedFile(file, text);
117
+ }
118
+ function weightManagedFile(file) {
119
+ const text = (0, node_fs_1.readFileSync)((0, fs_1.resolveManagedPath)(file), 'utf-8');
120
+ return buildWeightedFile(file, text);
121
+ }
122
+ function buildWeightedFile(path, text) {
123
+ const words = countWords(text);
124
+ return { path, words, estimatedTokens: estimateTokens(words) };
125
+ }
126
+ function countWords(text) {
127
+ return text.trim().length === 0 ? 0 : text.trim().split(/\s+/).length;
128
+ }
129
+ function estimateTokens(words) {
130
+ return Math.ceil(words * 1.33);
131
+ }
132
+ function formatWeightedList(files) {
133
+ return files.map((file) => `${file.path}=${file.words}w/~${file.estimatedTokens}t`).join(', ');
134
+ }
135
+ function pass(name, detail) {
136
+ return { status: 'pass', name, detail };
137
+ }
138
+ function warn(name, detail, remedy) {
139
+ return { status: 'warn', name, detail, remedy };
140
+ }
141
+ //# sourceMappingURL=token-audit.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"token-audit.js","sourceRoot":"","sources":["../../../src/cli/commands/token-audit.ts"],"names":[],"mappings":"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"}
@@ -17,13 +17,13 @@ async function runTui() {
17
17
  console.log('5) Exit');
18
18
  const answer = await rl.question('Select an option: ');
19
19
  if (answer.trim() === '1') {
20
- (0, install_1.install)({ agents: [constants_1.AGENT.STANDARD], scope: constants_1.SCOPE.WORKSPACE, dryRun: false, yes: true, help: false });
20
+ (0, install_1.install)({ agents: [constants_1.AGENT.STANDARD], scope: constants_1.SCOPE.WORKSPACE, dryRun: false, yes: true, help: false, tokens: false });
21
21
  }
22
22
  else if (answer.trim() === '2') {
23
- (0, install_1.install)({ agents: [constants_1.AGENT.OPENCODE], scope: constants_1.SCOPE.WORKSPACE, dryRun: false, yes: true, help: false });
23
+ (0, install_1.install)({ agents: [constants_1.AGENT.OPENCODE], scope: constants_1.SCOPE.WORKSPACE, dryRun: false, yes: true, help: false, tokens: false });
24
24
  }
25
25
  else if (answer.trim() === '3') {
26
- (0, install_1.install)({ agents: [constants_1.AGENT.CODEX], scope: constants_1.SCOPE.WORKSPACE, dryRun: false, yes: true, help: false });
26
+ (0, install_1.install)({ agents: [constants_1.AGENT.CODEX], scope: constants_1.SCOPE.WORKSPACE, dryRun: false, yes: true, help: false, tokens: false });
27
27
  }
28
28
  else if (answer.trim() === '4') {
29
29
  (0, doctor_1.doctor)();
@@ -1 +1 @@
1
- {"version":3,"file":"tui.js","sourceRoot":"","sources":["../../../src/cli/commands/tui.ts"],"names":[],"mappings":";;AAMA,wBAwBC;AA9BD,qDAAyD;AACzD,+CAAgE;AAChE,4CAA4C;AAC5C,qCAAkC;AAClC,uCAAoC;AAE7B,KAAK,UAAU,MAAM;IAC1B,MAAM,EAAE,GAAG,IAAA,0BAAe,EAAC,EAAE,KAAK,EAAL,oBAAK,EAAE,MAAM,EAAN,qBAAM,EAAE,CAAC,CAAC;IAC9C,IAAI,CAAC;QACH,OAAO,CAAC,GAAG,CAAC,4BAA4B,CAAC,CAAC;QAC1C,OAAO,CAAC,GAAG,CAAC,uDAAuD,CAAC,CAAC;QACrE,OAAO,CAAC,GAAG,CAAC,+CAA+C,CAAC,CAAC;QAC7D,OAAO,CAAC,GAAG,CAAC,4CAA4C,CAAC,CAAC;QAC1D,OAAO,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC;QAC7B,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;QACvB,MAAM,MAAM,GAAG,MAAM,EAAE,CAAC,QAAQ,CAAC,oBAAoB,CAAC,CAAC;QACvD,IAAI,MAAM,CAAC,IAAI,EAAE,KAAK,GAAG,EAAE,CAAC;YAC1B,IAAA,iBAAO,EAAC,EAAE,MAAM,EAAE,CAAC,iBAAK,CAAC,QAAQ,CAAC,EAAE,KAAK,EAAE,iBAAK,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;QACvG,CAAC;aAAM,IAAI,MAAM,CAAC,IAAI,EAAE,KAAK,GAAG,EAAE,CAAC;YACjC,IAAA,iBAAO,EAAC,EAAE,MAAM,EAAE,CAAC,iBAAK,CAAC,QAAQ,CAAC,EAAE,KAAK,EAAE,iBAAK,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;QACvG,CAAC;aAAM,IAAI,MAAM,CAAC,IAAI,EAAE,KAAK,GAAG,EAAE,CAAC;YACjC,IAAA,iBAAO,EAAC,EAAE,MAAM,EAAE,CAAC,iBAAK,CAAC,KAAK,CAAC,EAAE,KAAK,EAAE,iBAAK,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;QACpG,CAAC;aAAM,IAAI,MAAM,CAAC,IAAI,EAAE,KAAK,GAAG,EAAE,CAAC;YACjC,IAAA,eAAM,GAAE,CAAC;QACX,CAAC;aAAM,CAAC;YACN,OAAO,CAAC,GAAG,CAAC,kBAAkB,CAAC,CAAC;QAClC,CAAC;IACH,CAAC;YAAS,CAAC;QACT,EAAE,CAAC,KAAK,EAAE,CAAC;IACb,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"tui.js","sourceRoot":"","sources":["../../../src/cli/commands/tui.ts"],"names":[],"mappings":";;AAMA,wBAwBC;AA9BD,qDAAyD;AACzD,+CAAgE;AAChE,4CAA4C;AAC5C,qCAAkC;AAClC,uCAAoC;AAE7B,KAAK,UAAU,MAAM;IAC1B,MAAM,EAAE,GAAG,IAAA,0BAAe,EAAC,EAAE,KAAK,EAAL,oBAAK,EAAE,MAAM,EAAN,qBAAM,EAAE,CAAC,CAAC;IAC9C,IAAI,CAAC;QACH,OAAO,CAAC,GAAG,CAAC,4BAA4B,CAAC,CAAC;QAC1C,OAAO,CAAC,GAAG,CAAC,uDAAuD,CAAC,CAAC;QACrE,OAAO,CAAC,GAAG,CAAC,+CAA+C,CAAC,CAAC;QAC7D,OAAO,CAAC,GAAG,CAAC,4CAA4C,CAAC,CAAC;QAC1D,OAAO,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC;QAC7B,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;QACvB,MAAM,MAAM,GAAG,MAAM,EAAE,CAAC,QAAQ,CAAC,oBAAoB,CAAC,CAAC;QACvD,IAAI,MAAM,CAAC,IAAI,EAAE,KAAK,GAAG,EAAE,CAAC;YAC1B,IAAA,iBAAO,EAAC,EAAE,MAAM,EAAE,CAAC,iBAAK,CAAC,QAAQ,CAAC,EAAE,KAAK,EAAE,iBAAK,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,CAAC;QACtH,CAAC;aAAM,IAAI,MAAM,CAAC,IAAI,EAAE,KAAK,GAAG,EAAE,CAAC;YACjC,IAAA,iBAAO,EAAC,EAAE,MAAM,EAAE,CAAC,iBAAK,CAAC,QAAQ,CAAC,EAAE,KAAK,EAAE,iBAAK,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,CAAC;QACtH,CAAC;aAAM,IAAI,MAAM,CAAC,IAAI,EAAE,KAAK,GAAG,EAAE,CAAC;YACjC,IAAA,iBAAO,EAAC,EAAE,MAAM,EAAE,CAAC,iBAAK,CAAC,KAAK,CAAC,EAAE,KAAK,EAAE,iBAAK,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,CAAC;QACnH,CAAC;aAAM,IAAI,MAAM,CAAC,IAAI,EAAE,KAAK,GAAG,EAAE,CAAC;YACjC,IAAA,eAAM,GAAE,CAAC;QACX,CAAC;aAAM,CAAC;YACN,OAAO,CAAC,GAAG,CAAC,kBAAkB,CAAC,CAAC;QAClC,CAAC;IACH,CAAC;YAAS,CAAC;QACT,EAAE,CAAC,KAAK,EAAE,CAAC;IACb,CAAC;AACH,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"help.d.ts","sourceRoot":"","sources":["../../src/cli/help.ts"],"names":[],"mappings":"AAEA,wBAAgB,kBAAkB,IAAI,MAAM,CAE3C;AAED,wBAAgB,SAAS,IAAI,IAAI,CAEhC;AAED,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAUtD"}
1
+ {"version":3,"file":"help.d.ts","sourceRoot":"","sources":["../../src/cli/help.ts"],"names":[],"mappings":"AAEA,wBAAgB,kBAAkB,IAAI,MAAM,CAE3C;AAED,wBAAgB,SAAS,IAAI,IAAI,CAEhC;AAED,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAYtD"}
package/dist/cli/help.js CHANGED
@@ -14,6 +14,9 @@ function printCommandHelp(command) {
14
14
  if (command === 'install') {
15
15
  console.log('Usage: kyro install [--agent standard|opencode|codex] --scope workspace [--dry-run] [--yes]');
16
16
  }
17
+ else if (command === 'doctor') {
18
+ console.log('Usage: kyro doctor [--tokens]');
19
+ }
17
20
  else if (command === 'sync') {
18
21
  console.log('Usage: kyro sync [--agent standard|opencode|codex] [--dry-run]');
19
22
  }
@@ -1 +1 @@
1
- {"version":3,"file":"help.js","sourceRoot":"","sources":["../../src/cli/help.ts"],"names":[],"mappings":";;AAEA,gDAEC;AAED,8BAEC;AAED,4CAUC;AApBD,6BAA2C;AAE3C,SAAgB,kBAAkB;IAChC,OAAO,IAAA,wBAAmB,EAAsB,cAAc,CAAC,CAAC,OAAO,CAAC;AAC1E,CAAC;AAED,SAAgB,SAAS;IACvB,OAAO,CAAC,GAAG,CAAC,40BAA40B,CAAC,CAAC;AAC51B,CAAC;AAED,SAAgB,gBAAgB,CAAC,OAAe;IAC9C,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;QAC1B,OAAO,CAAC,GAAG,CAAC,6FAA6F,CAAC,CAAC;IAC7G,CAAC;SAAM,IAAI,OAAO,KAAK,MAAM,EAAE,CAAC;QAC9B,OAAO,CAAC,GAAG,CAAC,gEAAgE,CAAC,CAAC;IAChF,CAAC;SAAM,IAAI,OAAO,KAAK,WAAW,EAAE,CAAC;QACnC,OAAO,CAAC,GAAG,CAAC,2CAA2C,CAAC,CAAC;IAC3D,CAAC;SAAM,CAAC;QACN,SAAS,EAAE,CAAC;IACd,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"help.js","sourceRoot":"","sources":["../../src/cli/help.ts"],"names":[],"mappings":";;AAEA,gDAEC;AAED,8BAEC;AAED,4CAYC;AAtBD,6BAA2C;AAE3C,SAAgB,kBAAkB;IAChC,OAAO,IAAA,wBAAmB,EAAsB,cAAc,CAAC,CAAC,OAAO,CAAC;AAC1E,CAAC;AAED,SAAgB,SAAS;IACvB,OAAO,CAAC,GAAG,CAAC,40BAA40B,CAAC,CAAC;AAC51B,CAAC;AAED,SAAgB,gBAAgB,CAAC,OAAe;IAC9C,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;QAC1B,OAAO,CAAC,GAAG,CAAC,6FAA6F,CAAC,CAAC;IAC7G,CAAC;SAAM,IAAI,OAAO,KAAK,QAAQ,EAAE,CAAC;QAChC,OAAO,CAAC,GAAG,CAAC,+BAA+B,CAAC,CAAC;IAC/C,CAAC;SAAM,IAAI,OAAO,KAAK,MAAM,EAAE,CAAC;QAC9B,OAAO,CAAC,GAAG,CAAC,gEAAgE,CAAC,CAAC;IAChF,CAAC;SAAM,IAAI,OAAO,KAAK,WAAW,EAAE,CAAC;QACnC,OAAO,CAAC,GAAG,CAAC,2CAA2C,CAAC,CAAC;IAC3D,CAAC;SAAM,CAAC;QACN,SAAS,EAAE,CAAC;IACd,CAAC;AACH,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"options.d.ts","sourceRoot":"","sources":["../../src/cli/options.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,KAAK,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAE/D,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,UAAU,CA2CvD;AAED,wBAAgB,UAAU,CAAC,KAAK,EAAE,MAAM,GAAG,KAAK,CAQ/C;AAED,wBAAgB,UAAU,CAAC,KAAK,EAAE,MAAM,GAAG,YAAY,CAItD;AAED,wBAAgB,YAAY,CAAC,MAAM,EAAE,KAAK,EAAE,GAAG,KAAK,EAAE,CAErD;AAED,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,YAAY,GAAG,IAAI,CAI9D;AAED,wBAAgB,uBAAuB,CAAC,MAAM,EAAE,KAAK,EAAE,GAAG,IAAI,CAK7D"}
1
+ {"version":3,"file":"options.d.ts","sourceRoot":"","sources":["../../src/cli/options.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,KAAK,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAE/D,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,UAAU,CA+CvD;AAED,wBAAgB,UAAU,CAAC,KAAK,EAAE,MAAM,GAAG,KAAK,CAQ/C;AAED,wBAAgB,UAAU,CAAC,KAAK,EAAE,MAAM,GAAG,YAAY,CAItD;AAED,wBAAgB,YAAY,CAAC,MAAM,EAAE,KAAK,EAAE,GAAG,KAAK,EAAE,CAErD;AAED,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,YAAY,GAAG,IAAI,CAI9D;AAED,wBAAgB,uBAAuB,CAAC,MAAM,EAAE,KAAK,EAAE,GAAG,IAAI,CAK7D"}
@@ -14,6 +14,7 @@ function parseOptions(args) {
14
14
  let dryRun = false;
15
15
  let yes = false;
16
16
  let help = false;
17
+ let tokens = false;
17
18
  for (let i = 0; i < args.length; i += 1) {
18
19
  const arg = args[i];
19
20
  if (arg === '--dry-run') {
@@ -25,6 +26,9 @@ function parseOptions(args) {
25
26
  else if (arg === '--help' || arg === '-h') {
26
27
  help = true;
27
28
  }
29
+ else if (arg === '--tokens') {
30
+ tokens = true;
31
+ }
28
32
  else if (arg === '--agent' || arg === '--agents') {
29
33
  const value = args[i + 1];
30
34
  if (!value)
@@ -58,6 +62,7 @@ function parseOptions(args) {
58
62
  dryRun,
59
63
  yes,
60
64
  help,
65
+ tokens,
61
66
  };
62
67
  }
63
68
  function parseAgent(value) {
@@ -1 +1 @@
1
- {"version":3,"file":"options.js","sourceRoot":"","sources":["../../src/cli/options.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"options.js","sourceRoot":"","sources":["../../src/cli/options.ts"],"names":[],"mappings":";;AAIA,oCA+CC;AAED,gCAQC;AAED,gCAIC;AAED,oCAEC;AAED,oDAIC;AAED,0DAKC;AApFD,2CAA2C;AAC3C,kDAAmF;AAGnF,SAAgB,YAAY,CAAC,IAAc;IACzC,MAAM,MAAM,GAAY,EAAE,CAAC;IAC3B,IAAI,KAAK,GAAiB,iBAAK,CAAC,SAAS,CAAC;IAC1C,IAAI,MAAM,GAAG,KAAK,CAAC;IACnB,IAAI,GAAG,GAAG,KAAK,CAAC;IAChB,IAAI,IAAI,GAAG,KAAK,CAAC;IACjB,IAAI,MAAM,GAAG,KAAK,CAAC;IAEnB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC;QACxC,MAAM,GAAG,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;QACpB,IAAI,GAAG,KAAK,WAAW,EAAE,CAAC;YACxB,MAAM,GAAG,IAAI,CAAC;QAChB,CAAC;aAAM,IAAI,GAAG,KAAK,OAAO,IAAI,GAAG,KAAK,IAAI,EAAE,CAAC;YAC3C,GAAG,GAAG,IAAI,CAAC;QACb,CAAC;aAAM,IAAI,GAAG,KAAK,QAAQ,IAAI,GAAG,KAAK,IAAI,EAAE,CAAC;YAC5C,IAAI,GAAG,IAAI,CAAC;QACd,CAAC;aAAM,IAAI,GAAG,KAAK,UAAU,EAAE,CAAC;YAC9B,MAAM,GAAG,IAAI,CAAC;QAChB,CAAC;aAAM,IAAI,GAAG,KAAK,SAAS,IAAI,GAAG,KAAK,UAAU,EAAE,CAAC;YACnD,MAAM,KAAK,GAAG,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;YAC1B,IAAI,CAAC,KAAK;gBAAE,MAAM,IAAI,KAAK,CAAC,GAAG,GAAG,mBAAmB,CAAC,CAAC;YACvD,MAAM,CAAC,IAAI,CAAC,GAAG,WAAW,CAAC,KAAK,CAAC,CAAC,CAAC;YACnC,CAAC,IAAI,CAAC,CAAC;QACT,CAAC;aAAM,IAAI,GAAG,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;YACtC,MAAM,CAAC,IAAI,CAAC,GAAG,WAAW,CAAC,GAAG,CAAC,KAAK,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;QAC5D,CAAC;aAAM,IAAI,GAAG,CAAC,UAAU,CAAC,WAAW,CAAC,EAAE,CAAC;YACvC,MAAM,CAAC,IAAI,CAAC,GAAG,WAAW,CAAC,GAAG,CAAC,KAAK,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;QAC7D,CAAC;aAAM,IAAI,GAAG,KAAK,SAAS,EAAE,CAAC;YAC7B,MAAM,KAAK,GAAG,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;YAC1B,IAAI,CAAC,KAAK;gBAAE,MAAM,IAAI,KAAK,CAAC,0BAA0B,CAAC,CAAC;YACxD,KAAK,GAAG,UAAU,CAAC,KAAK,CAAC,CAAC;YAC1B,CAAC,IAAI,CAAC,CAAC;QACT,CAAC;aAAM,IAAI,GAAG,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;YACtC,KAAK,GAAG,UAAU,CAAC,GAAG,CAAC,KAAK,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC;QACnD,CAAC;aAAM,CAAC;YACN,MAAM,IAAI,KAAK,CAAC,mBAAmB,GAAG,EAAE,CAAC,CAAC;QAC5C,CAAC;IACH,CAAC;IAED,OAAO;QACL,MAAM,EAAE,YAAY,CAAC,MAAM,CAAC;QAC5B,KAAK;QACL,MAAM;QACN,GAAG;QACH,IAAI;QACJ,MAAM;KACP,CAAC;AACJ,CAAC;AAED,SAAgB,UAAU,CAAC,KAAa;IACtC,MAAM,UAAU,GAAG,KAAK,CAAC,WAAW,EAAE,CAAC;IACvC,IAAI,UAAU,KAAK,UAAU,IAAI,UAAU,KAAK,QAAQ,IAAI,UAAU,KAAK,SAAS,IAAI,UAAU,KAAK,SAAS;QAAE,OAAO,iBAAK,CAAC,QAAQ,CAAC;IACxI,IAAI,UAAU,KAAK,UAAU;QAAE,OAAO,iBAAK,CAAC,QAAQ,CAAC;IACrD,IAAI,UAAU,KAAK,QAAQ,IAAI,UAAU,KAAK,aAAa;QAAE,OAAO,iBAAK,CAAC,MAAM,CAAC;IACjF,IAAI,UAAU,KAAK,OAAO;QAAE,OAAO,iBAAK,CAAC,KAAK,CAAC;IAC/C,IAAI,UAAU,KAAK,QAAQ;QAAE,OAAO,iBAAK,CAAC,MAAM,CAAC;IACjD,MAAM,IAAI,KAAK,CAAC,sBAAsB,KAAK,oBAAoB,IAAA,iCAAsB,GAAE,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,qFAAqF,CAAC,CAAC;AAC3N,CAAC;AAED,SAAgB,UAAU,CAAC,KAAa;IACtC,IAAI,KAAK,KAAK,iBAAK,CAAC,SAAS;QAAE,OAAO,iBAAK,CAAC,SAAS,CAAC;IACtD,IAAI,KAAK,KAAK,iBAAK,CAAC,MAAM;QAAE,OAAO,iBAAK,CAAC,MAAM,CAAC;IAChD,MAAM,IAAI,KAAK,CAAC,sBAAsB,KAAK,4BAA4B,CAAC,CAAC;AAC3E,CAAC;AAED,SAAgB,YAAY,CAAC,MAAe;IAC1C,OAAO,CAAC,GAAG,IAAI,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC;AAC9B,CAAC;AAED,SAAgB,oBAAoB,CAAC,KAAmB;IACtD,IAAI,KAAK,KAAK,iBAAK,CAAC,SAAS,EAAE,CAAC;QAC9B,MAAM,IAAI,KAAK,CAAC,yGAAyG,CAAC,CAAC;IAC7H,CAAC;AACH,CAAC;AAED,SAAgB,uBAAuB,CAAC,MAAe;IACrD,MAAM,WAAW,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,IAAA,+BAAoB,EAAC,KAAK,CAAC,CAAC,MAAM,KAAK,aAAa,CAAC,CAAC;IACnG,IAAI,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC3B,MAAM,IAAI,KAAK,CAAC,sCAAsC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,sBAAsB,IAAA,iCAAsB,GAAE,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,8DAA8D,CAAC,CAAC;IACvO,CAAC;AACH,CAAC;AAED,SAAS,WAAW,CAAC,KAAa;IAChC,OAAO,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;AACjF,CAAC"}
@@ -35,6 +35,7 @@ export interface CliOptions {
35
35
  dryRun: boolean;
36
36
  yes: boolean;
37
37
  help: boolean;
38
+ tokens: boolean;
38
39
  }
39
40
  export interface OperationPlan {
40
41
  action: 'write' | 'copy' | 'mkdir' | 'remove' | 'upsert-block' | 'remove-block' | 'symlink';
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/cli/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,aAAa,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AAE/D,MAAM,MAAM,KAAK,GAAG,CAAC,OAAO,KAAK,CAAC,CAAC,MAAM,OAAO,KAAK,CAAC,CAAC;AACvD,MAAM,MAAM,YAAY,GAAG,CAAC,OAAO,KAAK,CAAC,CAAC,MAAM,OAAO,KAAK,CAAC,CAAC;AAC9D,MAAM,MAAM,eAAe,GAAG,CAAC,OAAO,aAAa,CAAC,CAAC,MAAM,CAAC,CAAC;AAE7D,MAAM,WAAW,oBAAoB;IACnC,KAAK,EAAE,KAAK,CAAC;IACb,KAAK,EAAE,YAAY,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,MAAM,CAAC;IACjB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,gBAAgB;IAC/B,aAAa,EAAE,CAAC,CAAC;IACjB,YAAY,EAAE,MAAM,CAAC;IACrB,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,cAAc,EAAE,MAAM,CAAC;IACvB,WAAW,EAAE,MAAM,CAAC;IACpB,iBAAiB,EAAE,oBAAoB,EAAE,CAAC;CAC3C;AAED,MAAM,WAAW,YAAY;IAC3B,aAAa,EAAE,CAAC,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;IACpB,cAAc,EAAE,MAAM,CAAC;IACvB,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,YAAY,CAAC;IAC3B,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,aAAa,EAAE,MAAM,EAAE,CAAC;IACxB,QAAQ,EAAE,oBAAoB,EAAE,CAAC;CAClC;AAED,MAAM,WAAW,UAAU;IACzB,MAAM,EAAE,KAAK,EAAE,CAAC;IAChB,KAAK,EAAE,YAAY,CAAC;IACpB,MAAM,EAAE,OAAO,CAAC;IAChB,GAAG,EAAE,OAAO,CAAC;IACb,IAAI,EAAE,OAAO,CAAC;CACf;AAED,MAAM,WAAW,aAAa;IAC5B,MAAM,EAAE,OAAO,GAAG,MAAM,GAAG,OAAO,GAAG,QAAQ,GAAG,cAAc,GAAG,cAAc,GAAG,SAAS,CAAC;IAC5F,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,WAAW;IAC1B,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,CAAC;IACjC,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/cli/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,aAAa,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AAE/D,MAAM,MAAM,KAAK,GAAG,CAAC,OAAO,KAAK,CAAC,CAAC,MAAM,OAAO,KAAK,CAAC,CAAC;AACvD,MAAM,MAAM,YAAY,GAAG,CAAC,OAAO,KAAK,CAAC,CAAC,MAAM,OAAO,KAAK,CAAC,CAAC;AAC9D,MAAM,MAAM,eAAe,GAAG,CAAC,OAAO,aAAa,CAAC,CAAC,MAAM,CAAC,CAAC;AAE7D,MAAM,WAAW,oBAAoB;IACnC,KAAK,EAAE,KAAK,CAAC;IACb,KAAK,EAAE,YAAY,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,MAAM,CAAC;IACjB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,gBAAgB;IAC/B,aAAa,EAAE,CAAC,CAAC;IACjB,YAAY,EAAE,MAAM,CAAC;IACrB,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,cAAc,EAAE,MAAM,CAAC;IACvB,WAAW,EAAE,MAAM,CAAC;IACpB,iBAAiB,EAAE,oBAAoB,EAAE,CAAC;CAC3C;AAED,MAAM,WAAW,YAAY;IAC3B,aAAa,EAAE,CAAC,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;IACpB,cAAc,EAAE,MAAM,CAAC;IACvB,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,YAAY,CAAC;IAC3B,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,aAAa,EAAE,MAAM,EAAE,CAAC;IACxB,QAAQ,EAAE,oBAAoB,EAAE,CAAC;CAClC;AAED,MAAM,WAAW,UAAU;IACzB,MAAM,EAAE,KAAK,EAAE,CAAC;IAChB,KAAK,EAAE,YAAY,CAAC;IACpB,MAAM,EAAE,OAAO,CAAC;IAChB,GAAG,EAAE,OAAO,CAAC;IACb,IAAI,EAAE,OAAO,CAAC;IACd,MAAM,EAAE,OAAO,CAAC;CACjB;AAED,MAAM,WAAW,aAAa;IAC5B,MAAM,EAAE,OAAO,GAAG,MAAM,GAAG,OAAO,GAAG,QAAQ,GAAG,cAAc,GAAG,cAAc,GAAG,SAAS,CAAC;IAC5F,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,WAAW;IAC1B,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,CAAC;IACjC,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB"}
@@ -1,82 +1,50 @@
1
1
  # Codex Adapter Guide
2
2
 
3
- This guide describes manual Kyro usage with Codex-style agents. Native command or skill registration depends on the specific Codex environment; Kyro compatibility comes from referencing portable markdown files.
4
-
5
- ---
3
+ Codex should use the installed Kyro command skills and root `AGENTS.md` bootstrap. Do not load the whole runtime manually.
6
4
 
7
5
  ## Setup
8
6
 
9
7
  ```bash
10
- mkdir -p .skills .agents .agents/kyro/scopes
11
-
12
- cp -r kyro-ai/skills/sprint-forge .skills/
13
- cp -r kyro-ai/skills/qa-review .skills/
14
- cp kyro-ai/agents/orchestrator.md .agents/
8
+ npx kyro-ai install --agent codex --scope workspace --yes
15
9
  ```
16
10
 
17
- ---
11
+ This installs:
18
12
 
19
- ## Onboarding Prompt
13
+ - global runtime: `~/.agents/kyro/current/`
14
+ - global command skills: `~/.agents/skills/kyro-*`
15
+ - project state: `.agents/kyro/kyro.json`
16
+ - a small Kyro managed block in root `AGENTS.md`
20
17
 
21
- ```text
22
- Use Kyro for this project.
18
+ ## Usage
23
19
 
24
- Read:
25
- - .agents/orchestrator.md
26
- - .skills/sprint-forge/SKILL.md
27
- - .skills/qa-review/SKILL.md
20
+ Invoke the command-like skills:
28
21
 
29
- Persist workflow artifacts under .agents/kyro/scopes/{scope}/.
30
- If slash commands are unavailable, use these intents:
31
- - forge = analyze/plan/execute/review/close
32
- - status = read artifacts and report progress/debt
33
- - wrap-up = close the session and update re-entry prompts
34
- ```
22
+ - `kyro-forge` route analyze/plan/execute/review/close
23
+ - `kyro-status` summary-first progress and debt report
24
+ - `kyro-wrap-up` close session and refresh handoff context
35
25
 
36
- ---
26
+ The skills read command routers from `~/.agents/kyro/current/commands/` and then load only the routed mode/helper/template.
37
27
 
38
- ## Common Flows
28
+ ## Artifacts
39
29
 
40
- ### Review
30
+ Persist scope artifacts under:
41
31
 
42
32
  ```text
43
- @file .skills/qa-review/SKILL.md
44
-
45
- Review this change and return APPROVED, APPROVED WITH NOTES,
46
- CHANGES REQUIRED, or REJECTED.
47
-
48
- Context:
49
- - Scope: {scope}
50
- - Sprint artifacts: .agents/kyro/scopes/{scope}/
33
+ .agents/kyro/scopes/{scope}/
34
+ ├── state.json
35
+ ├── index.json
36
+ ├── ROADMAP.md
37
+ ├── ROADMAP.summary.json
38
+ └── phases/
39
+ ├── SPRINT-N-*.md
40
+ └── SPRINT-N-*.summary.json
51
41
  ```
52
42
 
53
- ### Forge
54
-
55
- ```text
56
- @file .agents/orchestrator.md
57
- @file .skills/sprint-forge/SKILL.md
58
- @file .skills/qa-review/SKILL.md
43
+ Markdown is human evidence. JSON files are the fast routing index.
59
44
 
60
- Run the forge intent for {scope}.
61
- Use .agents/kyro/scopes/{scope}/ for findings, roadmap, phases,
62
- handoffs, and re-entry prompts.
63
- ```
45
+ ## Verify
64
46
 
65
- ### Status
66
-
67
- ```text
68
- @file .skills/sprint-forge/SKILL.md
69
-
70
- Run the status intent for .agents/kyro/scopes/{scope}/.
71
- Report sprint progress, open debt, aged debt, blockers, and next action.
47
+ ```bash
48
+ kyro doctor
49
+ kyro doctor --tokens
72
50
  ```
73
-
74
- ---
75
-
76
- ## Limitations
77
-
78
- - Codex environments may not register Kyro slash commands automatically.
79
- - Artifact persistence depends on the agent writing files correctly.
80
- - Learned rules work through `.agents/kyro/scopes/rules.md`, not through a runtime service.
81
-
82
- For generic setup and Cursor/OpenCode notes, see [Agent Adapters](agent-adapters.md).
@@ -1,93 +1,47 @@
1
1
  # OpenCode Adapter Guide
2
2
 
3
- This guide describes manual Kyro usage with OpenCode-style agents. Native command or skill registration depends on the host environment; Kyro compatibility comes from referencing portable markdown files.
4
-
5
- ---
3
+ OpenCode should discover Kyro through global command skills. Do not copy Kyro core into each project.
6
4
 
7
5
  ## Setup
8
6
 
9
7
  ```bash
10
- mkdir -p .skills .agents .agents/kyro/scopes
11
-
12
- cp -r kyro-ai/skills/sprint-forge .skills/
13
- cp -r kyro-ai/skills/qa-review .skills/
14
- cp kyro-ai/agents/orchestrator.md .agents/
8
+ npx kyro-ai install --agent opencode --scope workspace --yes
15
9
  ```
16
10
 
17
- Recommended project structure:
11
+ This installs:
18
12
 
19
- ```text
20
- your-project/
21
- ├── .agents/
22
- │ ├── orchestrator.md
23
- │ └── core/
24
- │ └── {scope}/
25
- ├── .skills/
26
- │ ├── sprint-forge/
27
- │ └── qa-review/
28
- └── src/
29
- ```
13
+ - global runtime: `~/.agents/kyro/current/`
14
+ - global command skills: `~/.agents/skills/kyro-*`
15
+ - project state: `.agents/kyro/kyro.json`
30
16
 
31
- ---
17
+ ## Usage
32
18
 
33
- ## Onboarding Prompt
19
+ Use the installed command-like skills:
34
20
 
35
- ```text
36
- Use Kyro for this project.
21
+ - `kyro-forge` — route analyze/plan/execute/review/close
22
+ - `kyro-status` summary-first progress and debt report
23
+ - `kyro-wrap-up` — close session and refresh handoff context
37
24
 
38
- Read:
39
- @file .agents/orchestrator.md
40
- @file .skills/sprint-forge/SKILL.md
41
- @file .skills/qa-review/SKILL.md
25
+ Each skill is intentionally tiny. It loads the command router first, then only the mode/helper/template needed for the current step.
42
26
 
43
- Persist workflow artifacts under .agents/kyro/scopes/{scope}/.
44
- If slash commands are unavailable, use:
45
- - forge = analyze/plan/execute/review/close
46
- - status = read artifacts and report progress/debt
47
- - wrap-up = close session and update re-entry prompts
48
- ```
27
+ ## Artifacts
49
28
 
50
- ---
51
-
52
- ## Example Flows
53
-
54
- ### Sprint Planning
29
+ Save workflow artifacts under:
55
30
 
56
31
  ```text
57
- @file .agents/orchestrator.md
58
- @file .skills/sprint-forge/SKILL.md
59
-
60
- Run the forge intent for {scope}.
61
- Create or update ROADMAP.md, findings, and the next sprint under
62
- .agents/kyro/scopes/{scope}/.
32
+ .agents/kyro/scopes/{scope}/
33
+ ├── state.json
34
+ ├── index.json
35
+ ├── ROADMAP.md
36
+ ├── ROADMAP.summary.json
37
+ └── phases/
38
+ ├── SPRINT-N-*.md
39
+ └── SPRINT-N-*.summary.json
63
40
  ```
64
41
 
65
- ### QA Review
66
-
67
- ```text
68
- @file .skills/qa-review/SKILL.md
69
- @file .agents/kyro/scopes/{scope}/RE-ENTRY-PROMPTS.md
42
+ ## Verify
70
43
 
71
- Review the current implementation against the sprint plan.
72
- Return blockers first, then warnings, then approval status.
73
- ```
74
-
75
- ### Session Wrap-Up
76
-
77
- ```text
78
- @file .agents/orchestrator.md
79
- @file .skills/sprint-forge/SKILL.md
80
-
81
- Run the wrap-up intent for {scope}.
82
- Update retro notes, debt status, re-entry prompts, and proposed learned rules.
44
+ ```bash
45
+ kyro doctor
46
+ kyro doctor --tokens
83
47
  ```
84
-
85
- ---
86
-
87
- ## Limitations
88
-
89
- - OpenCode may not register Kyro commands or skills natively.
90
- - You must ensure generated artifacts are saved under `.agents/kyro/scopes/{scope}/`.
91
- - Learned rules are markdown-based and must be maintained in `rules.md`.
92
-
93
- For the generic adapter contract and Cursor notes, see [Agent Adapters](agent-adapters.md).