@cluesmith/codev 3.0.1 → 3.0.3
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/dist/agent-farm/cli.d.ts.map +1 -1
- package/dist/agent-farm/cli.js +43 -5
- package/dist/agent-farm/cli.js.map +1 -1
- package/dist/agent-farm/commands/attach.d.ts.map +1 -1
- package/dist/agent-farm/commands/attach.js +8 -33
- package/dist/agent-farm/commands/attach.js.map +1 -1
- package/dist/agent-farm/commands/dev.d.ts +20 -0
- package/dist/agent-farm/commands/dev.d.ts.map +1 -0
- package/dist/agent-farm/commands/dev.js +124 -0
- package/dist/agent-farm/commands/dev.js.map +1 -0
- package/dist/agent-farm/commands/setup.d.ts +27 -0
- package/dist/agent-farm/commands/setup.d.ts.map +1 -0
- package/dist/agent-farm/commands/setup.js +55 -0
- package/dist/agent-farm/commands/setup.js.map +1 -0
- package/dist/agent-farm/commands/spawn-roles.d.ts +1 -1
- package/dist/agent-farm/commands/spawn-roles.d.ts.map +1 -1
- package/dist/agent-farm/commands/spawn-worktree.d.ts +25 -6
- package/dist/agent-farm/commands/spawn-worktree.d.ts.map +1 -1
- package/dist/agent-farm/commands/spawn-worktree.js +42 -4
- package/dist/agent-farm/commands/spawn-worktree.js.map +1 -1
- package/dist/agent-farm/commands/spawn.js.map +1 -1
- package/dist/agent-farm/commands/status.d.ts.map +1 -1
- package/dist/agent-farm/commands/status.js +4 -1
- package/dist/agent-farm/commands/status.js.map +1 -1
- package/dist/agent-farm/db/index.d.ts.map +1 -1
- package/dist/agent-farm/db/index.js +47 -0
- package/dist/agent-farm/db/index.js.map +1 -1
- package/dist/agent-farm/db/schema.d.ts +1 -1
- package/dist/agent-farm/db/schema.d.ts.map +1 -1
- package/dist/agent-farm/db/schema.js +1 -1
- package/dist/agent-farm/db/types.d.ts +1 -1
- package/dist/agent-farm/lib/builder-lookup.d.ts +26 -0
- package/dist/agent-farm/lib/builder-lookup.d.ts.map +1 -0
- package/dist/agent-farm/lib/builder-lookup.js +103 -0
- package/dist/agent-farm/lib/builder-lookup.js.map +1 -0
- package/dist/agent-farm/servers/tower-instances.d.ts +2 -1
- package/dist/agent-farm/servers/tower-instances.d.ts.map +1 -1
- package/dist/agent-farm/servers/tower-instances.js.map +1 -1
- package/dist/agent-farm/servers/tower-routes.js +19 -17
- package/dist/agent-farm/servers/tower-routes.js.map +1 -1
- package/dist/agent-farm/servers/tower-server.js +18 -3
- package/dist/agent-farm/servers/tower-server.js.map +1 -1
- package/dist/agent-farm/servers/tower-terminals.d.ts +17 -1
- package/dist/agent-farm/servers/tower-terminals.d.ts.map +1 -1
- package/dist/agent-farm/servers/tower-terminals.js +20 -1
- package/dist/agent-farm/servers/tower-terminals.js.map +1 -1
- package/dist/agent-farm/servers/tower-types.d.ts +9 -4
- package/dist/agent-farm/servers/tower-types.d.ts.map +1 -1
- package/dist/agent-farm/state.js +1 -1
- package/dist/agent-farm/state.js.map +1 -1
- package/dist/agent-farm/types.d.ts +28 -2
- package/dist/agent-farm/types.d.ts.map +1 -1
- package/dist/agent-farm/utils/agent-names.d.ts +5 -30
- package/dist/agent-farm/utils/agent-names.d.ts.map +1 -1
- package/dist/agent-farm/utils/agent-names.js +5 -54
- package/dist/agent-farm/utils/agent-names.js.map +1 -1
- package/dist/agent-farm/utils/config.d.ts +19 -0
- package/dist/agent-farm/utils/config.d.ts.map +1 -1
- package/dist/agent-farm/utils/config.js +16 -0
- package/dist/agent-farm/utils/config.js.map +1 -1
- package/dist/agent-farm/utils/server-utils.d.ts +13 -0
- package/dist/agent-farm/utils/server-utils.d.ts.map +1 -1
- package/dist/agent-farm/utils/server-utils.js +38 -0
- package/dist/agent-farm/utils/server-utils.js.map +1 -1
- package/dist/agent-farm/utils/shell.d.ts +13 -0
- package/dist/agent-farm/utils/shell.d.ts.map +1 -1
- package/dist/agent-farm/utils/shell.js +28 -0
- package/dist/agent-farm/utils/shell.js.map +1 -1
- package/dist/commands/adopt.d.ts.map +1 -1
- package/dist/commands/adopt.js +5 -0
- package/dist/commands/adopt.js.map +1 -1
- package/dist/commands/init.d.ts.map +1 -1
- package/dist/commands/init.js +5 -0
- package/dist/commands/init.js.map +1 -1
- package/dist/commands/porch/index.d.ts +6 -0
- package/dist/commands/porch/index.d.ts.map +1 -1
- package/dist/commands/porch/index.js +83 -0
- package/dist/commands/porch/index.js.map +1 -1
- package/dist/commands/porch/prompts.d.ts.map +1 -1
- package/dist/commands/porch/prompts.js +4 -7
- package/dist/commands/porch/prompts.js.map +1 -1
- package/dist/lib/forge-contracts.d.ts +1 -1
- package/dist/lib/forge-contracts.d.ts.map +1 -1
- package/dist/lib/forge.d.ts.map +1 -1
- package/dist/lib/forge.js +24 -6
- package/dist/lib/forge.js.map +1 -1
- package/package.json +4 -4
- package/scripts/forge/linear/auth-status.sh +15 -0
- package/scripts/forge/linear/issue-comment.sh +38 -0
- package/scripts/forge/linear/issue-list.sh +35 -0
- package/scripts/forge/linear/issue-view.sh +37 -0
- package/scripts/forge/linear/recently-closed.sh +45 -0
- package/scripts/forge/linear/user-identity.sh +15 -0
- package/skeleton/.claude/skills/update-arch-docs/SKILL.md +107 -0
- package/skeleton/protocols/maintain/protocol.md +69 -2
- package/skeleton/protocols/spir/protocol.md +4 -3
- package/skeleton/resources/risk-triage.md +1 -1
- package/skeleton/templates/arch.md +100 -30
- package/skeleton/templates/lessons-learned.md +45 -7
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"forge-contracts.d.ts","sourceRoot":"","sources":["../../src/lib/forge-contracts.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAMH,kDAAkD;AAClD,MAAM,WAAW,eAAe;IAC9B,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,KAAK,CAAC;QACd,IAAI,EAAE,MAAM,CAAC;QACb,SAAS,EAAE,MAAM,CAAC;QAClB,MAAM,EAAE;YAAE,KAAK,EAAE,MAAM,CAAA;SAAE,CAAC;KAC3B,CAAC,CAAC;CACJ;AAED,kDAAkD;AAClD,MAAM,WAAW,aAAa;IAC5B,MAAM,EAAE,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"forge-contracts.d.ts","sourceRoot":"","sources":["../../src/lib/forge-contracts.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAMH,kDAAkD;AAClD,MAAM,WAAW,eAAe;IAC9B,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,KAAK,CAAC;QACd,IAAI,EAAE,MAAM,CAAC;QACb,SAAS,EAAE,MAAM,CAAC;QAClB,MAAM,EAAE;YAAE,KAAK,EAAE,MAAM,CAAA;SAAE,CAAC;KAC3B,CAAC,CAAC;CACJ;AAED,kDAAkD;AAClD,MAAM,WAAW,aAAa;IAC5B,MAAM,EAAE,MAAM,GAAG,MAAM,CAAC;IACxB,KAAK,EAAE,MAAM,CAAC;IACd,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAChC,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,MAAM,CAAC,EAAE;QAAE,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC;IAC3B,SAAS,CAAC,EAAE,KAAK,CAAC;QAAE,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;CACtC;AAED,kDAAkD;AAClD,MAAM,MAAM,eAAe,GAAG,aAAa,EAAE,CAAC;AAE9C,uDAAuD;AACvD,MAAM,MAAM,oBAAoB,GAAG,aAAa,EAAE,CAAC;AAEnD,8EAA8E;AAO9E,+CAA+C;AAC/C,MAAM,WAAW,UAAU;IACzB,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,GAAG,EAAE,MAAM,CAAC;IACZ,cAAc,EAAE,MAAM,CAAC;IACvB,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,MAAM,CAAC,EAAE;QAAE,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC;CAC5B;AAED,+CAA+C;AAC/C,MAAM,MAAM,YAAY,GAAG,UAAU,EAAE,CAAC;AAExC,yEAAyE;AAGzE,uDAAuD;AACvD,MAAM,WAAW,YAAY;IAC3B,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,uDAAuD;AACvD,MAAM,MAAM,oBAAoB,GAAG,YAAY,EAAE,CAAC;AAElD,iDAAiD;AACjD,MAAM,WAAW,YAAY;IAC3B,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,iDAAiD;AACjD,MAAM,MAAM,cAAc,GAAG,YAAY,EAAE,CAAC;AAE5C,+CAA+C;AAC/C,MAAM,WAAW,YAAY;IAC3B,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE;QAAE,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC;IAC1B,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,wEAAwE;AAGxE,yEAAyE;AAOzE,8EAA8E;AAG9E,2EAA2E;AAI3E,8EAA8E;AAQ9E,mEAAmE"}
|
package/dist/lib/forge.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"forge.d.ts","sourceRoot":"","sources":["../../src/lib/forge.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AA8BH,oGAAoG;AACpG,MAAM,MAAM,WAAW,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC,GAAG;IAAE,QAAQ,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC;AAEhF,2CAA2C;AAC3C,MAAM,WAAW,mBAAmB;IAClC,+CAA+C;IAC/C,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,6FAA6F;IAC7F,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,yEAAyE;IACzE,WAAW,CAAC,EAAE,WAAW,GAAG,IAAI,CAAC;IACjC,uEAAuE;IACvE,GAAG,CAAC,EAAE,OAAO,CAAC;IACd,6DAA6D;IAC7D,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AA6ED,gCAAgC;AAChC,wBAAgB,iBAAiB,IAAI,MAAM,EAAE,CAE5C;AAED,+CAA+C;AAC/C,MAAM,MAAM,aAAa,GAAG,UAAU,GAAG,QAAQ,GAAG,SAAS,GAAG,UAAU,CAAC;AAE3E,MAAM,WAAW,iBAAiB;IAChC,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,MAAM,EAAE,aAAa,CAAC;IACtB,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;CAC3B;AAED;;;GAGG;AACH,wBAAgB,kBAAkB,CAAC,WAAW,CAAC,EAAE,WAAW,GAAG,IAAI,GAAG,iBAAiB,EAAE,CA4BxF;AAmDD;;;;;;GAMG;AACH,wBAAgB,eAAe,CAAC,aAAa,EAAE,MAAM,GAAG,WAAW,GAAG,IAAI,CAGzE;AAUD;;;;GAIG;AACH,wBAAgB,eAAe,CAC7B,OAAO,EAAE,MAAM,EACf,WAAW,CAAC,EAAE,WAAW,GAAG,IAAI,GAC/B,MAAM,GAAG,IAAI,CAgBf;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAC/B,OAAO,EAAE,MAAM,EACf,WAAW,CAAC,EAAE,WAAW,GAAG,IAAI,GAC/B,OAAO,CAGT;AAMD;;;;;;;;;;GAUG;AACH,wBAAsB,mBAAmB,CACvC,OAAO,EAAE,MAAM,EACf,GAAG,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,EAC5B,OAAO,CAAC,EAAE,mBAAmB,GAC5B,OAAO,CAAC,OAAO,GAAG,IAAI,CAAC,
|
|
1
|
+
{"version":3,"file":"forge.d.ts","sourceRoot":"","sources":["../../src/lib/forge.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AA8BH,oGAAoG;AACpG,MAAM,MAAM,WAAW,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC,GAAG;IAAE,QAAQ,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC;AAEhF,2CAA2C;AAC3C,MAAM,WAAW,mBAAmB;IAClC,+CAA+C;IAC/C,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,6FAA6F;IAC7F,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,yEAAyE;IACzE,WAAW,CAAC,EAAE,WAAW,GAAG,IAAI,CAAC;IACjC,uEAAuE;IACvE,GAAG,CAAC,EAAE,OAAO,CAAC;IACd,6DAA6D;IAC7D,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AA6ED,gCAAgC;AAChC,wBAAgB,iBAAiB,IAAI,MAAM,EAAE,CAE5C;AAED,+CAA+C;AAC/C,MAAM,MAAM,aAAa,GAAG,UAAU,GAAG,QAAQ,GAAG,SAAS,GAAG,UAAU,CAAC;AAE3E,MAAM,WAAW,iBAAiB;IAChC,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,MAAM,EAAE,aAAa,CAAC;IACtB,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;CAC3B;AAED;;;GAGG;AACH,wBAAgB,kBAAkB,CAAC,WAAW,CAAC,EAAE,WAAW,GAAG,IAAI,GAAG,iBAAiB,EAAE,CA4BxF;AAmDD;;;;;;GAMG;AACH,wBAAgB,eAAe,CAAC,aAAa,EAAE,MAAM,GAAG,WAAW,GAAG,IAAI,CAGzE;AAUD;;;;GAIG;AACH,wBAAgB,eAAe,CAC7B,OAAO,EAAE,MAAM,EACf,WAAW,CAAC,EAAE,WAAW,GAAG,IAAI,GAC/B,MAAM,GAAG,IAAI,CAgBf;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAC/B,OAAO,EAAE,MAAM,EACf,WAAW,CAAC,EAAE,WAAW,GAAG,IAAI,GAC/B,OAAO,CAGT;AAMD;;;;;;;;;;GAUG;AACH,wBAAsB,mBAAmB,CACvC,OAAO,EAAE,MAAM,EACf,GAAG,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,EAC5B,OAAO,CAAC,EAAE,mBAAmB,GAC5B,OAAO,CAAC,OAAO,GAAG,IAAI,CAAC,CAuBzB;AAED;;;;;GAKG;AACH,wBAAgB,uBAAuB,CACrC,OAAO,EAAE,MAAM,EACf,GAAG,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,EAC5B,OAAO,CAAC,EAAE,mBAAmB,GAC5B,OAAO,GAAG,IAAI,CAyBhB;AAoDD;;GAEG;AACH,wBAAgB,gBAAgB,IAAI,MAAM,EAAE,CAE3C;AAED;;;GAGG;AACH,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAEhE;AAED;;;;GAIG;AACH,wBAAgB,mBAAmB,CACjC,WAAW,EAAE,WAAW,GACvB;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,IAAI,GAAG,UAAU,GAAG,iBAAiB,GAAG,eAAe,GAAG,UAAU,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,EAAE,CA2BtH"}
|
package/dist/lib/forge.js
CHANGED
|
@@ -62,7 +62,8 @@ function getDefaultCommands() {
|
|
|
62
62
|
// =============================================================================
|
|
63
63
|
/**
|
|
64
64
|
* Build a provider preset from on-disk scripts.
|
|
65
|
-
* Concepts without a script file are
|
|
65
|
+
* Concepts without a script file are omitted (fall through to default).
|
|
66
|
+
* Explicitly disabled concepts are set to null.
|
|
66
67
|
*/
|
|
67
68
|
function buildPresetFromScripts(provider, disabledConcepts = []) {
|
|
68
69
|
const preset = {};
|
|
@@ -75,9 +76,6 @@ function buildPresetFromScripts(provider, disabledConcepts = []) {
|
|
|
75
76
|
if (existsSync(scriptPath)) {
|
|
76
77
|
preset[concept] = scriptPath;
|
|
77
78
|
}
|
|
78
|
-
else {
|
|
79
|
-
preset[concept] = null;
|
|
80
|
-
}
|
|
81
79
|
}
|
|
82
80
|
return preset;
|
|
83
81
|
}
|
|
@@ -96,6 +94,7 @@ function getProviderPresets() {
|
|
|
96
94
|
github: getDefaultCommands(),
|
|
97
95
|
gitlab: buildPresetFromScripts('gitlab', ['team-activity', 'on-it-timestamps']),
|
|
98
96
|
gitea: buildPresetFromScripts('gitea', ['team-activity', 'on-it-timestamps', 'pr-search', 'pr-diff']),
|
|
97
|
+
linear: buildPresetFromScripts('linear', ['team-activity', 'on-it-timestamps']),
|
|
99
98
|
};
|
|
100
99
|
return _providerPresets;
|
|
101
100
|
}
|
|
@@ -253,10 +252,11 @@ export async function executeForgeCommand(concept, env, options) {
|
|
|
253
252
|
if (command === null) {
|
|
254
253
|
return null;
|
|
255
254
|
}
|
|
255
|
+
const forgeEnv = buildForgeEnv(forgeConfig);
|
|
256
256
|
try {
|
|
257
257
|
const { stdout } = await execAsync(command, {
|
|
258
258
|
cwd: options?.cwd,
|
|
259
|
-
env: { ...process.env, ...env },
|
|
259
|
+
env: { ...process.env, ...forgeEnv, ...env },
|
|
260
260
|
timeout: 30_000,
|
|
261
261
|
maxBuffer: options?.maxBuffer ?? DEFAULT_MAX_BUFFER,
|
|
262
262
|
});
|
|
@@ -279,10 +279,11 @@ export function executeForgeCommandSync(concept, env, options) {
|
|
|
279
279
|
if (command === null) {
|
|
280
280
|
return null;
|
|
281
281
|
}
|
|
282
|
+
const forgeEnv = buildForgeEnv(forgeConfig);
|
|
282
283
|
try {
|
|
283
284
|
const stdout = execSync(command, {
|
|
284
285
|
cwd: options?.cwd,
|
|
285
|
-
env: { ...process.env, ...env },
|
|
286
|
+
env: { ...process.env, ...forgeEnv, ...env },
|
|
286
287
|
encoding: 'utf-8',
|
|
287
288
|
timeout: 30_000,
|
|
288
289
|
maxBuffer: options?.maxBuffer ?? DEFAULT_MAX_BUFFER,
|
|
@@ -298,6 +299,23 @@ export function executeForgeCommandSync(concept, env, options) {
|
|
|
298
299
|
// =============================================================================
|
|
299
300
|
// Internal helpers
|
|
300
301
|
// =============================================================================
|
|
302
|
+
const _knownConceptSet = new Set(KNOWN_CONCEPTS);
|
|
303
|
+
/**
|
|
304
|
+
* Build environment variables from non-concept forge config keys.
|
|
305
|
+
* E.g., `forge.linear-team: "ENG"` → `CODEV_LINEAR_TEAM=ENG`.
|
|
306
|
+
*/
|
|
307
|
+
function buildForgeEnv(forgeConfig) {
|
|
308
|
+
if (!forgeConfig)
|
|
309
|
+
return {};
|
|
310
|
+
const result = {};
|
|
311
|
+
for (const [key, value] of Object.entries(forgeConfig)) {
|
|
312
|
+
if (key === 'provider' || _knownConceptSet.has(key) || value === null)
|
|
313
|
+
continue;
|
|
314
|
+
const envKey = 'CODEV_' + key.toUpperCase().replace(/-/g, '_');
|
|
315
|
+
result[envKey] = value;
|
|
316
|
+
}
|
|
317
|
+
return result;
|
|
318
|
+
}
|
|
301
319
|
/** Parse command stdout: try JSON when raw=false (null on parse failure), raw string otherwise. */
|
|
302
320
|
function parseOutput(stdout, raw) {
|
|
303
321
|
const trimmed = stdout.trim();
|
package/dist/lib/forge.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"forge.js","sourceRoot":"","sources":["../../src/lib/forge.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"forge.js","sourceRoot":"","sources":["../../src/lib/forge.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@cluesmith/codev",
|
|
3
|
-
"version": "3.0.
|
|
3
|
+
"version": "3.0.3",
|
|
4
4
|
"description": "Codev CLI - AI-assisted software development framework",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"bin": {
|
|
@@ -34,7 +34,7 @@
|
|
|
34
34
|
"open": "^10.1.0",
|
|
35
35
|
"tree-kill": "^1.2.2",
|
|
36
36
|
"ws": "^8.18.0",
|
|
37
|
-
"@cluesmith/codev-core": "
|
|
37
|
+
"@cluesmith/codev-core": "3.0.3"
|
|
38
38
|
},
|
|
39
39
|
"devDependencies": {
|
|
40
40
|
"@playwright/test": "^1.58.0",
|
|
@@ -49,8 +49,8 @@
|
|
|
49
49
|
"tsx": "^4.19.2",
|
|
50
50
|
"typescript": "^5.7.2",
|
|
51
51
|
"vitest": "^4.0.15",
|
|
52
|
-
"@cluesmith/codev-
|
|
53
|
-
"@cluesmith/codev-
|
|
52
|
+
"@cluesmith/codev-types": "3.0.3",
|
|
53
|
+
"@cluesmith/codev-dashboard": "0.0.0"
|
|
54
54
|
},
|
|
55
55
|
"engines": {
|
|
56
56
|
"node": ">=20.0.0"
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
#!/bin/sh
|
|
2
|
+
# Forge concept: auth-status (Linear via GraphQL API)
|
|
3
|
+
# Output: exit code (0 = authenticated)
|
|
4
|
+
set -e
|
|
5
|
+
|
|
6
|
+
if [ -z "$LINEAR_API_KEY" ]; then
|
|
7
|
+
echo "LINEAR_API_KEY is not set" >&2
|
|
8
|
+
exit 1
|
|
9
|
+
fi
|
|
10
|
+
|
|
11
|
+
curl -sf -X POST https://api.linear.app/graphql \
|
|
12
|
+
-H "Content-Type: application/json" \
|
|
13
|
+
-H "Authorization: $LINEAR_API_KEY" \
|
|
14
|
+
-d '{"query":"{ viewer { id } }"}' \
|
|
15
|
+
-o /dev/null
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
#!/bin/sh
|
|
2
|
+
# Forge concept: issue-comment (Linear via GraphQL API)
|
|
3
|
+
# Input: CODEV_ISSUE_ID, CODEV_COMMENT_BODY
|
|
4
|
+
# Output: exit code only
|
|
5
|
+
set -e
|
|
6
|
+
|
|
7
|
+
if [ -z "$LINEAR_API_KEY" ]; then
|
|
8
|
+
echo "LINEAR_API_KEY is not set" >&2
|
|
9
|
+
exit 1
|
|
10
|
+
fi
|
|
11
|
+
|
|
12
|
+
if [ -z "$CODEV_ISSUE_ID" ]; then
|
|
13
|
+
echo "CODEV_ISSUE_ID is not set" >&2
|
|
14
|
+
exit 1
|
|
15
|
+
fi
|
|
16
|
+
|
|
17
|
+
ISSUE_UUID=$(curl -sf -X POST https://api.linear.app/graphql \
|
|
18
|
+
-H "Content-Type: application/json" \
|
|
19
|
+
-H "Authorization: $LINEAR_API_KEY" \
|
|
20
|
+
-d "$(jq -n --arg id "$CODEV_ISSUE_ID" '{
|
|
21
|
+
query: "query($id: String!) { issues(filter: { identifier: { eq: $id } }) { nodes { id } } }",
|
|
22
|
+
variables: { id: $id }
|
|
23
|
+
}')" \
|
|
24
|
+
| jq -r '.data.issues.nodes[0].id')
|
|
25
|
+
|
|
26
|
+
if [ -z "$ISSUE_UUID" ] || [ "$ISSUE_UUID" = "null" ]; then
|
|
27
|
+
echo "Issue not found: $CODEV_ISSUE_ID" >&2
|
|
28
|
+
exit 1
|
|
29
|
+
fi
|
|
30
|
+
|
|
31
|
+
curl -sf -X POST https://api.linear.app/graphql \
|
|
32
|
+
-H "Content-Type: application/json" \
|
|
33
|
+
-H "Authorization: $LINEAR_API_KEY" \
|
|
34
|
+
-d "$(jq -n --arg issueId "$ISSUE_UUID" --arg body "$CODEV_COMMENT_BODY" '{
|
|
35
|
+
query: "mutation($issueId: String!, $body: String!) { commentCreate(input: { issueId: $issueId, body: $body }) { success } }",
|
|
36
|
+
variables: { issueId: $issueId, body: $body }
|
|
37
|
+
}')" \
|
|
38
|
+
-o /dev/null
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
#!/bin/sh
|
|
2
|
+
# Forge concept: issue-list (Linear via GraphQL API)
|
|
3
|
+
# Input: CODEV_LINEAR_TEAM (team key, e.g. "ENG")
|
|
4
|
+
# Output: JSON [{number, title, url, labels, createdAt, author, assignees}]
|
|
5
|
+
set -e
|
|
6
|
+
|
|
7
|
+
if [ -z "$LINEAR_API_KEY" ]; then
|
|
8
|
+
echo "LINEAR_API_KEY is not set" >&2
|
|
9
|
+
exit 1
|
|
10
|
+
fi
|
|
11
|
+
|
|
12
|
+
FILTER='{ state: { type: { nin: ["completed", "canceled"] } } }'
|
|
13
|
+
if [ -n "$CODEV_LINEAR_TEAM" ]; then
|
|
14
|
+
FILTER="$(jq -n --arg team "$CODEV_LINEAR_TEAM" '{
|
|
15
|
+
team: { key: { eq: $team } },
|
|
16
|
+
state: { type: { nin: ["completed", "canceled"] } }
|
|
17
|
+
}')"
|
|
18
|
+
fi
|
|
19
|
+
|
|
20
|
+
curl -sf -X POST https://api.linear.app/graphql \
|
|
21
|
+
-H "Content-Type: application/json" \
|
|
22
|
+
-H "Authorization: $LINEAR_API_KEY" \
|
|
23
|
+
-d "$(jq -n --argjson filter "$FILTER" '{
|
|
24
|
+
query: "query($filter: IssueFilter) { issues(filter: $filter, first: 200) { nodes { identifier title url labels { nodes { name } } createdAt assignee { displayName } creator { displayName } } } }",
|
|
25
|
+
variables: { filter: $filter }
|
|
26
|
+
}')" \
|
|
27
|
+
| jq '[.data.issues.nodes[] | {
|
|
28
|
+
number: .identifier,
|
|
29
|
+
title: .title,
|
|
30
|
+
url: .url,
|
|
31
|
+
labels: [.labels.nodes[] | { name: .name }],
|
|
32
|
+
createdAt: .createdAt,
|
|
33
|
+
author: (if .creator then { login: .creator.displayName } else null end),
|
|
34
|
+
assignees: (if .assignee then [{ login: .assignee.displayName }] else [] end)
|
|
35
|
+
}]'
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
#!/bin/sh
|
|
2
|
+
# Forge concept: issue-view (Linear via GraphQL API)
|
|
3
|
+
# Input: CODEV_ISSUE_ID (e.g. "ENG-123")
|
|
4
|
+
# Output: JSON {title, body, state, comments[]}
|
|
5
|
+
set -e
|
|
6
|
+
|
|
7
|
+
if [ -z "$LINEAR_API_KEY" ]; then
|
|
8
|
+
echo "LINEAR_API_KEY is not set" >&2
|
|
9
|
+
exit 1
|
|
10
|
+
fi
|
|
11
|
+
|
|
12
|
+
if [ -z "$CODEV_ISSUE_ID" ]; then
|
|
13
|
+
echo "CODEV_ISSUE_ID is not set" >&2
|
|
14
|
+
exit 1
|
|
15
|
+
fi
|
|
16
|
+
|
|
17
|
+
curl -sf -X POST https://api.linear.app/graphql \
|
|
18
|
+
-H "Content-Type: application/json" \
|
|
19
|
+
-H "Authorization: $LINEAR_API_KEY" \
|
|
20
|
+
-d "$(jq -n --arg id "$CODEV_ISSUE_ID" '{
|
|
21
|
+
query: "query($id: String!) { issueVcsByFilter: issues(filter: { identifier: { eq: $id } }) { nodes { title description state { name } comments { nodes { body createdAt user { displayName } } } } } }",
|
|
22
|
+
variables: { id: $id }
|
|
23
|
+
}')" \
|
|
24
|
+
| jq 'if (.data.issueVcsByFilter.nodes | length) == 0 then
|
|
25
|
+
error("issue not found: \(env.CODEV_ISSUE_ID)")
|
|
26
|
+
else
|
|
27
|
+
.data.issueVcsByFilter.nodes[0] | {
|
|
28
|
+
title: .title,
|
|
29
|
+
body: (.description // ""),
|
|
30
|
+
state: .state.name,
|
|
31
|
+
comments: [.comments.nodes[] | {
|
|
32
|
+
body: .body,
|
|
33
|
+
createdAt: .createdAt,
|
|
34
|
+
author: { login: .user.displayName }
|
|
35
|
+
}]
|
|
36
|
+
}
|
|
37
|
+
end'
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
#!/bin/sh
|
|
2
|
+
# Forge concept: recently-closed (Linear via GraphQL API)
|
|
3
|
+
# Input: CODEV_LINEAR_TEAM, CODEV_SINCE_DATE (optional, ISO date)
|
|
4
|
+
# Output: JSON [{number, title, url, labels, createdAt, closedAt}]
|
|
5
|
+
set -e
|
|
6
|
+
|
|
7
|
+
if [ -z "$LINEAR_API_KEY" ]; then
|
|
8
|
+
echo "LINEAR_API_KEY is not set" >&2
|
|
9
|
+
exit 1
|
|
10
|
+
fi
|
|
11
|
+
|
|
12
|
+
FILTER='{ state: { type: { in: ["completed", "canceled"] } } }'
|
|
13
|
+
if [ -n "$CODEV_LINEAR_TEAM" ] && [ -n "$CODEV_SINCE_DATE" ]; then
|
|
14
|
+
FILTER="$(jq -n --arg team "$CODEV_LINEAR_TEAM" --arg since "$CODEV_SINCE_DATE" '{
|
|
15
|
+
team: { key: { eq: $team } },
|
|
16
|
+
state: { type: { in: ["completed", "canceled"] } },
|
|
17
|
+
completedAt: { gte: $since }
|
|
18
|
+
}')"
|
|
19
|
+
elif [ -n "$CODEV_LINEAR_TEAM" ]; then
|
|
20
|
+
FILTER="$(jq -n --arg team "$CODEV_LINEAR_TEAM" '{
|
|
21
|
+
team: { key: { eq: $team } },
|
|
22
|
+
state: { type: { in: ["completed", "canceled"] } }
|
|
23
|
+
}')"
|
|
24
|
+
elif [ -n "$CODEV_SINCE_DATE" ]; then
|
|
25
|
+
FILTER="$(jq -n --arg since "$CODEV_SINCE_DATE" '{
|
|
26
|
+
state: { type: { in: ["completed", "canceled"] } },
|
|
27
|
+
completedAt: { gte: $since }
|
|
28
|
+
}')"
|
|
29
|
+
fi
|
|
30
|
+
|
|
31
|
+
curl -sf -X POST https://api.linear.app/graphql \
|
|
32
|
+
-H "Content-Type: application/json" \
|
|
33
|
+
-H "Authorization: $LINEAR_API_KEY" \
|
|
34
|
+
-d "$(jq -n --argjson filter "$FILTER" '{
|
|
35
|
+
query: "query($filter: IssueFilter) { issues(filter: $filter, first: 200, orderBy: updatedAt) { nodes { identifier title url labels { nodes { name } } createdAt completedAt } } }",
|
|
36
|
+
variables: { filter: $filter }
|
|
37
|
+
}')" \
|
|
38
|
+
| jq '[.data.issues.nodes[] | {
|
|
39
|
+
number: .identifier,
|
|
40
|
+
title: .title,
|
|
41
|
+
url: .url,
|
|
42
|
+
labels: [.labels.nodes[] | { name: .name }],
|
|
43
|
+
createdAt: .createdAt,
|
|
44
|
+
closedAt: .completedAt
|
|
45
|
+
}]'
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
#!/bin/sh
|
|
2
|
+
# Forge concept: user-identity (Linear via GraphQL API)
|
|
3
|
+
# Output: plain text display name
|
|
4
|
+
set -e
|
|
5
|
+
|
|
6
|
+
if [ -z "$LINEAR_API_KEY" ]; then
|
|
7
|
+
echo "LINEAR_API_KEY is not set" >&2
|
|
8
|
+
exit 1
|
|
9
|
+
fi
|
|
10
|
+
|
|
11
|
+
curl -sf -X POST https://api.linear.app/graphql \
|
|
12
|
+
-H "Content-Type: application/json" \
|
|
13
|
+
-H "Authorization: $LINEAR_API_KEY" \
|
|
14
|
+
-d '{"query":"{ viewer { displayName } }"}' \
|
|
15
|
+
| jq -r '.data.viewer.displayName'
|
|
@@ -0,0 +1,107 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: update-arch-docs
|
|
3
|
+
description: Audit, prune, and update the project's architecture documentation — `codev/resources/arch.md` and `codev/resources/lessons-learned.md`. Use this skill when running MAINTAIN's arch-doc step, or when asked to update / audit / prune `codev/resources/arch.md` or `codev/resources/lessons-learned.md`. The skill is opinionated about what NOT to include in these files (per-spec changelogs, exhaustive enumerations, aspirational state, duplicate meta-spec content) and ships two operating modes: diff-mode (apply a specific change) and audit-mode (propose cuts with reasons). It edits files directly via normal file-edit tooling and does not invoke destructive shell commands.
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# update-arch-docs
|
|
7
|
+
|
|
8
|
+
This skill maintains two governance documents:
|
|
9
|
+
|
|
10
|
+
- `codev/resources/arch.md` — the project's architecture document.
|
|
11
|
+
- `codev/resources/lessons-learned.md` — durable engineering wisdom extracted from reviews.
|
|
12
|
+
|
|
13
|
+
It is invoked by the MAINTAIN protocol's documentation step, and ad-hoc whenever someone needs to update, audit, or prune either file. The skill is opinionated about *what does not belong* in these files. Use it whenever a doc change touches arch.md or lessons-learned.md, even if the change is just an addition.
|
|
14
|
+
|
|
15
|
+
## What this skill does NOT do
|
|
16
|
+
|
|
17
|
+
These are the patterns that have, in practice, caused arch.md and lessons-learned.md to grow without bound. Treat them as bright-line rejections during both audit-mode and diff-mode work.
|
|
18
|
+
|
|
19
|
+
### In arch.md
|
|
20
|
+
|
|
21
|
+
- **Per-file enumerations** that go stale the moment they're written. Document the *shape* of a directory and the handful of load-bearing files; do not list every file. `git ls-files` is authoritative; the doc is for orientation.
|
|
22
|
+
- **Per-spec changelog sections** ("Spec 0042 added X, Spec 0073 changed Y"). Architecture is current state, not history. The git log + the spec/review documents own the changelog framing.
|
|
23
|
+
- **Specs/plans tables** that mirror the contents of `codev/specs/` and `codev/plans/`. These are duplicative and rot quickly. Link to the directory; do not paginate it into the doc.
|
|
24
|
+
- **Aspirational state** ("we plan to…", "in the next phase we'll…"). That belongs in the relevant meta-spec or roadmap doc, not in the architecture body. arch.md describes what *is*, not what *might be*.
|
|
25
|
+
- **Date-stamped narrative** ("As of 2026-Q2, the system uses…"). Dates make the doc look fresh while making it harder to maintain. Use git log + commit dates for temporal context.
|
|
26
|
+
- **Duplication of meta-spec content**. If a subsystem has its own meta-spec under `codev/architecture/<domain>.md` or under `codev/specs/`, arch.md should carry a 1-paragraph summary plus a pointer — not a copy.
|
|
27
|
+
- **Retired-component graveyards**. When a component is removed, delete its section. `git log` retains history; an arch.md that describes things that no longer exist is misleading.
|
|
28
|
+
|
|
29
|
+
### In lessons-learned.md
|
|
30
|
+
|
|
31
|
+
- **Spec-narrow recipes** that only matter inside the originating feature ("In spec 0073 we found that the rate limiter needs X"). These belong in the spec's review document, not in lessons-learned.md. lessons-learned.md captures patterns that apply *across* specs.
|
|
32
|
+
- **Multi-paragraph entries**. If a lesson needs more than 1–3 sentences to land, it is either two lessons fused together or it is documentation that belongs elsewhere.
|
|
33
|
+
- **Duplicate adjacent entries**. Fold variations of the same lesson into one entry. Two entries that say the same thing are louder, not clearer.
|
|
34
|
+
- **Spec-numbered narrative entries** ("Lesson from #0468:…"). Link to the review if needed; the lesson itself should be stated as a general principle.
|
|
35
|
+
|
|
36
|
+
### In either file (process)
|
|
37
|
+
|
|
38
|
+
- **Destructive shell commands**. The skill must not invoke `rm -rf`, `git rm`, or destructive `sed` scripts. All edits go through the normal Edit tool. The MAINTAIN PR diff is the human-confirmation step; that's enough.
|
|
39
|
+
|
|
40
|
+
## arch.md vs. lessons-learned.md (two-doc framing)
|
|
41
|
+
|
|
42
|
+
Treat the two files as siblings with different purposes. When in doubt about which file a fact belongs in, route by purpose:
|
|
43
|
+
|
|
44
|
+
| Purpose | Goes in |
|
|
45
|
+
|---|---|
|
|
46
|
+
| Current system shape — services, transports, key mental models | `arch.md` |
|
|
47
|
+
| Mechanism for a unique subsystem | `arch.md` (subsystem section) — or its own meta-spec if the mechanism is large enough to warrant one, with arch.md keeping a 1-paragraph summary + pointer |
|
|
48
|
+
| Pointers ("see meta-spec X for details") | `arch.md` |
|
|
49
|
+
| A durable engineering pattern that applies across multiple specs | `lessons-learned.md` |
|
|
50
|
+
| A system-shape surprise verified-wrong in production ("looks like X but isn't") | `arch.md` § "Verified-Wrong Assumptions" — *not* lessons-learned.md, because it's a property of the system, not a general pattern |
|
|
51
|
+
|
|
52
|
+
The "system-shape surprise" routing is the one most often gotten wrong. If a future reader needs to know "the system *looks* like X but actually does Y", that is system shape and lives in arch.md. If they need to know "we learned that doing X is generally a bad idea", that is engineering wisdom and lives in lessons-learned.md.
|
|
53
|
+
|
|
54
|
+
## Sizing by purpose, not by line count
|
|
55
|
+
|
|
56
|
+
There is no line-count budget for either file. The right size for each section is determined by what the section needs to do. If a subsystem genuinely has unique mechanism that takes 80 lines to explain clearly, 80 lines is the right size. If a subsystem can be described in 5 lines and a pointer to a meta-spec, 5 lines is right.
|
|
57
|
+
|
|
58
|
+
What's *wrong* is bulk that comes from any of the patterns in "What this skill does NOT do" above. Strip those, and the file's size will land where it belongs.
|
|
59
|
+
|
|
60
|
+
When proposing a section, ask: "Could a future reader skip this section without losing anything load-bearing?" If yes, the section should not exist. The doc's purpose is orientation, not completeness.
|
|
61
|
+
|
|
62
|
+
## Mode: diff-mode (apply a specific change)
|
|
63
|
+
|
|
64
|
+
Use diff-mode when the request is specific: "add a section about the new caching layer," "update the Glossary entry for Tower," "remove the reference to the deleted dashboard-server."
|
|
65
|
+
|
|
66
|
+
In diff-mode:
|
|
67
|
+
|
|
68
|
+
1. Find the smallest section that needs to change.
|
|
69
|
+
2. Apply the change via the Edit tool.
|
|
70
|
+
3. If the change adds new content, run a quick sanity check against "What this skill does NOT do" before saving — make sure the new content is current state, not aspirational; not duplicative of a meta-spec; not a per-spec changelog entry.
|
|
71
|
+
4. Surface the resulting diff for review.
|
|
72
|
+
|
|
73
|
+
Diff-mode is fast. It is the right mode for ~80% of post-MAINTAIN documentation work.
|
|
74
|
+
|
|
75
|
+
## Mode: audit-mode (identify what to cut)
|
|
76
|
+
|
|
77
|
+
Use audit-mode when the request is general: "the doc feels stale," "MAINTAIN says it's time to prune," "review arch.md against the principles."
|
|
78
|
+
|
|
79
|
+
In audit-mode:
|
|
80
|
+
|
|
81
|
+
1. Read the file end-to-end.
|
|
82
|
+
2. For each section in arch.md, run through the per-section pruning checklist (from the MAINTAIN protocol):
|
|
83
|
+
- Does it describe *current state*? If aspirational, the section moves to a meta-spec; the arch.md keeps a 1-paragraph summary + pointer (or nothing, if the meta-spec stands on its own).
|
|
84
|
+
- Does it duplicate a meta-spec? If yes, replace with a 1-paragraph summary + pointer.
|
|
85
|
+
- Is it a per-file enumeration that's gone stale? If yes, prune to the directory shape + a few key files.
|
|
86
|
+
- Is it a changelog/narrative section ("Spec 0042 added X")? If yes, absorb the architecturally-relevant facts and remove the spec-numbered framing.
|
|
87
|
+
- Is the component still alive? If retired, delete the section entirely.
|
|
88
|
+
3. For each entry in lessons-learned.md, run the per-entry checklist:
|
|
89
|
+
- Is it cross-applicable beyond the spec that produced it? If no, remove (the lesson belongs in the spec's review).
|
|
90
|
+
- Is it terse (1–3 sentences)? If multi-paragraph, split or compress.
|
|
91
|
+
- Is the topic section the right one? If filed under "Architecture (continued)" or a spec-numbered section, move it to the right topical home.
|
|
92
|
+
- Is it a duplicate of an adjacent entry? If yes, fold them.
|
|
93
|
+
4. **When in doubt, KEEP.** This rule comes from the MAINTAIN protocol and applies in audit-mode too. A confident cut is better than three speculative ones. Bias toward fewer, higher-confidence proposals with clear rationale; do not chase a maximum cut count.
|
|
94
|
+
5. Apply the cuts via the Edit tool — the skill does not produce a "candidate-cuts list and stop." The diff *is* the proposal. The MAINTAIN PR review is the human-confirmation step.
|
|
95
|
+
6. Surface a short reason alongside each cut in the run file (`codev/maintain/NNNN.md`) so PR reviewers can evaluate intent ("removed because: per-spec changelog framing"; "compressed because: duplicates the orchestrator meta-spec").
|
|
96
|
+
|
|
97
|
+
Audit-mode is slower than diff-mode and produces larger diffs. Reserve it for explicit audit invocations, not for routine doc updates.
|
|
98
|
+
|
|
99
|
+
## Output contract
|
|
100
|
+
|
|
101
|
+
The skill commits to the following:
|
|
102
|
+
|
|
103
|
+
- It edits `codev/resources/arch.md` and `codev/resources/lessons-learned.md` directly via the Edit tool.
|
|
104
|
+
- It does not invoke destructive shell commands (no `rm -rf`, no `git rm`, no destructive `sed`). File deletions happen only through Edit removing the relevant content; whole-file removal would be a structural change that is out of scope for this skill.
|
|
105
|
+
- In audit-mode, every removal is paired with a one-line reason in the MAINTAIN run file's `## Audit Findings` section. Rationale lives there so reviewers can evaluate intent without re-deriving it from the diff.
|
|
106
|
+
- The skill does not modify other files (specs, plans, reviews, source code). If a fact belongs somewhere else, the skill flags it; it does not move it.
|
|
107
|
+
- The skill does not edit live arch.md or lessons-learned.md content as a side effect of being read or invoked — only when the user/MAINTAIN protocol explicitly asks for an update or audit.
|
|
@@ -10,6 +10,23 @@ MAINTAIN is a single-pass maintenance protocol for keeping codebases healthy. Th
|
|
|
10
10
|
- `codev/resources/arch.md` - Architecture documentation
|
|
11
11
|
- `codev/resources/lessons-learned.md` - Extracted wisdom from reviews
|
|
12
12
|
|
|
13
|
+
The two governance docs are siblings with **different purposes**: `arch.md` owns system shape (services, transports, mental models, verified-wrong assumptions about *this* system); `lessons-learned.md` owns durable engineering wisdom that applies *across* specs. Use the routing matrix below to decide where each fact belongs.
|
|
14
|
+
|
|
15
|
+
### Lives where: routing facts to the right home
|
|
16
|
+
|
|
17
|
+
| Type of fact/insight | Lives in |
|
|
18
|
+
|---|---|
|
|
19
|
+
| Current system shape (services, transports, key mental models) | `codev/resources/arch.md` |
|
|
20
|
+
| Mechanism for a unique subsystem | `codev/resources/arch.md` (subsystem section) OR a meta-spec under `codev/architecture/<domain>.md` if the mechanism is large enough to warrant its own doc |
|
|
21
|
+
| A durable engineering pattern that applies across multiple specs | `codev/resources/lessons-learned.md` |
|
|
22
|
+
| A spec-narrow fix recipe (only relevant inside the originating feature) | Spec review only — does NOT belong in `lessons-learned.md` |
|
|
23
|
+
| A system-shape surprise verified-wrong in production ("looks like X but isn't") | `codev/resources/arch.md` § "Verified-Wrong Assumptions" |
|
|
24
|
+
| Aspirational architectural direction (where we want to go) | The relevant meta-spec or roadmap doc, NOT `arch.md` body |
|
|
25
|
+
| A changelog entry ("we shipped X in spec Y on date Z") | `git log` + the spec/review document — NOT `arch.md`, NOT `lessons-learned.md` |
|
|
26
|
+
| A retired or removed component | Delete the section entirely; do NOT keep a "retired components" graveyard. (`git log` retains history.) |
|
|
27
|
+
|
|
28
|
+
The most commonly-misrouted entry is the system-shape surprise. If a future reader needs to know "the system *looks* like X but actually does Y," that is system shape and lives in `arch.md`. If they need to know "we learned that doing X is generally a bad idea," that is engineering wisdom and lives in `lessons-learned.md`.
|
|
29
|
+
|
|
13
30
|
## When to Use
|
|
14
31
|
|
|
15
32
|
- Before a release (clean slate for shipping)
|
|
@@ -90,14 +107,54 @@ For each finding from the audit:
|
|
|
90
107
|
|
|
91
108
|
### Step 3: Sync Documentation
|
|
92
109
|
|
|
110
|
+
Step 3 is split into two sub-steps: **Audit first, then update.** This split exists because `arch.md` and `lessons-learned.md` accumulate without bound when MAINTAIN does only "what's new" — the audit pass surfaces what should be cut so the update pass is not purely additive.
|
|
111
|
+
|
|
112
|
+
The `update-arch-docs` skill (at `.claude/skills/update-arch-docs/SKILL.md`) is invoked by both sub-steps. Read it before starting Step 3 so the discipline is fresh.
|
|
113
|
+
|
|
114
|
+
#### Step 3a: Audit documentation
|
|
115
|
+
|
|
116
|
+
Invoke the `update-arch-docs` skill in **audit-mode**. The skill reads `codev/resources/arch.md` and `codev/resources/lessons-learned.md` end-to-end against the discipline below and produces a candidate-cuts list (with reasons) recorded in the run file (`codev/maintain/NNNN.md`) under a new `## Audit Findings` section before any edits land.
|
|
117
|
+
|
|
118
|
+
**Per-arch.md-section pruning checklist** — for each section in `arch.md`, ask:
|
|
119
|
+
- Does it describe **current state**? If aspirational, the section moves to a meta-spec; `arch.md` keeps a 1-paragraph summary + pointer (or nothing, if the meta-spec stands on its own).
|
|
120
|
+
- Does it duplicate a meta-spec? If yes, replace with a 1-paragraph summary + pointer.
|
|
121
|
+
- Is it a per-file enumeration that's gone stale? If yes, prune to the directory shape + a few key files.
|
|
122
|
+
- Is it a changelog/narrative section ("Spec 0042 added X")? If yes, absorb the architecturally-relevant facts and remove the spec-numbered framing.
|
|
123
|
+
- Is the component still alive? If retired, delete the section entirely.
|
|
124
|
+
|
|
125
|
+
**Per-lessons-learned.md-entry pruning checklist** — for each entry, ask:
|
|
126
|
+
- Is it cross-applicable beyond the spec that produced it? If no, remove (the lesson belongs in the spec's review).
|
|
127
|
+
- Is it terse (1–3 sentences)? If multi-paragraph, split or compress.
|
|
128
|
+
- Is the topic section the right home? If filed under "Architecture (continued)" or a spec-numbered section, move it to the right topical home.
|
|
129
|
+
- Is it a duplicate of an adjacent entry? If yes, fold them.
|
|
130
|
+
|
|
131
|
+
**Sample audit prompt** (paste into the skill invocation if you want a baseline checklist run):
|
|
132
|
+
|
|
133
|
+
```
|
|
134
|
+
Audit codev/resources/arch.md and codev/resources/lessons-learned.md against the
|
|
135
|
+
discipline in the update-arch-docs skill. For each section/entry, run the per-
|
|
136
|
+
arch.md-section and per-lessons-learned.md-entry pruning checklists from the
|
|
137
|
+
MAINTAIN protocol (Step 3a). Produce a candidate-cuts list with one-line reasons.
|
|
138
|
+
Bias toward fewer, higher-confidence cuts ("when in doubt, KEEP"). Record the
|
|
139
|
+
findings in the current run file's ## Audit Findings section before applying.
|
|
140
|
+
```
|
|
141
|
+
|
|
142
|
+
**When in doubt, KEEP.** This rule is preserved from the older Step 3. A confident cut is better than three speculative ones. The audit pass is a *proposal*; the architect's PR review confirms it.
|
|
143
|
+
|
|
144
|
+
#### Step 3b: Update documentation
|
|
145
|
+
|
|
146
|
+
Apply the audit decisions from Step 3a, plus any additive content needed.
|
|
147
|
+
|
|
93
148
|
**arch.md**: Compare documented structure with actual codebase. Update:
|
|
94
149
|
- Directory structure
|
|
95
150
|
- Component descriptions (explain HOW things work, not just WHAT)
|
|
96
151
|
- Key files and their purposes
|
|
97
|
-
- Remove references to deleted code
|
|
152
|
+
- Remove references to deleted code (per Step 3a audit findings)
|
|
98
153
|
- Add new components/utilities
|
|
99
154
|
|
|
100
|
-
**lessons-learned.md**: Scan `codev/reviews/` for new reviews since last run. Extract lessons that are actionable, durable, and general.
|
|
155
|
+
**lessons-learned.md**: Scan `codev/reviews/` for new reviews since last run. Extract lessons that are actionable, durable, and general. Apply Step 3a's per-entry cuts.
|
|
156
|
+
|
|
157
|
+
For specific additive changes, invoke `update-arch-docs` in **diff-mode** — it applies the smallest section update needed.
|
|
101
158
|
|
|
102
159
|
**CLAUDE.md / AGENTS.md**: Diff the two files. They must be identical. Update the stale one.
|
|
103
160
|
|
|
@@ -133,6 +190,16 @@ Each run creates `codev/maintain/NNNN.md`:
|
|
|
133
190
|
|
|
134
191
|
<key commits summary>
|
|
135
192
|
|
|
193
|
+
## Audit Findings
|
|
194
|
+
|
|
195
|
+
Recorded by Step 3a (Audit documentation) before any edits land. One line per candidate cut.
|
|
196
|
+
|
|
197
|
+
### arch.md
|
|
198
|
+
- <section-name>: <reason for proposed cut/compression>
|
|
199
|
+
|
|
200
|
+
### lessons-learned.md
|
|
201
|
+
- <entry>: <reason>
|
|
202
|
+
|
|
136
203
|
## What Was Done
|
|
137
204
|
|
|
138
205
|
### Dead Code Removed
|
|
@@ -504,9 +504,10 @@ Execute for each phase in the plan. Each phase follows a build-verify cycle.
|
|
|
504
504
|
- Enhance documentation
|
|
505
505
|
|
|
506
506
|
3. **Update Architecture Documentation**
|
|
507
|
-
- Update `codev/resources/arch.md` with new modules, utilities,
|
|
508
|
-
-
|
|
509
|
-
-
|
|
507
|
+
- Update `codev/resources/arch.md` and `codev/resources/lessons-learned.md` with new modules, utilities, architectural changes, and durable engineering wisdom uncovered during this work
|
|
508
|
+
- Use the **`update-arch-docs` skill** (at `.claude/skills/update-arch-docs/SKILL.md`) to apply changes — the skill encodes the discipline for what NOT to include and the two-doc framing (arch.md owns system shape; lessons-learned.md owns durable engineering wisdom)
|
|
509
|
+
- Follow guidance in the MAINTAIN protocol's Step 3 ("Sync Documentation") for structure, the "Lives where" routing matrix, and pruning checklists
|
|
510
|
+
- Ensure both docs reflect current state
|
|
510
511
|
|
|
511
512
|
4. **Revision Requirements** (MANDATORY)
|
|
512
513
|
- Update README.md with any new features or changes
|
|
@@ -41,7 +41,7 @@ gh pr view <N> --json files | jq '.files[].path'
|
|
|
41
41
|
| `packages/codev/src/state/` | State management | High |
|
|
42
42
|
| `codev/protocols/` | Protocol definitions | High |
|
|
43
43
|
| `codev-skeleton/protocols/` | Protocol templates | High |
|
|
44
|
-
| `packages/codev/src/commands
|
|
44
|
+
| `packages/codev/src/agent-farm/commands/` | Agent Farm commands | Medium |
|
|
45
45
|
| `packages/codev/src/commands/consult/` | Consultation system | Medium |
|
|
46
46
|
| `packages/codev/src/lib/` | Shared libraries | Medium |
|
|
47
47
|
| `packages/codev/src/commands/` (other) | CLI commands | Medium |
|