@warpgogol/forge 5.3.1 → 5.3.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/os/compass/compass.module.d.ts.map +1 -1
- package/dist/os/compass/compass.module.js +6 -2
- package/dist/os/compass/compass.module.js.map +1 -1
- package/dist/src/cli-flags.d.ts.map +1 -1
- package/dist/src/cli-flags.js +7 -3
- package/dist/src/cli-flags.js.map +1 -1
- package/os/compass/compass.module.ts +7 -2
- package/package.json +1 -1
- package/skills/fo/fo-design-summit/SKILL.md +3 -3
- package/skills/fo/fo-idea-plan/SKILL.md +16 -5
- package/src/cli-flags.ts +8 -9
- package/src/tests/cli-flags.test.ts +6 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"compass.module.d.ts","sourceRoot":"","sources":["../../../os/compass/compass.module.ts"],"names":[],"mappings":"AAmBA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAC;
|
|
1
|
+
{"version":3,"file":"compass.module.d.ts","sourceRoot":"","sources":["../../../os/compass/compass.module.ts"],"names":[],"mappings":"AAmBA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAC;AAwC7D,eAAO,MAAM,kBAAkB,EAAE,WAoPhC,CAAC"}
|
|
@@ -6,14 +6,14 @@
|
|
|
6
6
|
</non-goals>
|
|
7
7
|
</MODULE_CONTRACT>
|
|
8
8
|
<CHANGE_SUMMARY>
|
|
9
|
-
<item>RFC-0538: renamed compass.changesummary.tidy to compass.summary.trim, removed compass.annotate, compass.clear, compass.markup.migrate, compass.invariant.add.</item>
|
|
10
9
|
<item>RFC-0556: removed dynamic import of @warpgogol/site-kernel-checks, all handlers now inlined in forge/os/compass/handlers/.</item>
|
|
11
10
|
<item>RFC-1095: compass.summary.record, trim repair rewrite, commit integration</item>
|
|
12
11
|
<item>RFC-1097: steps 1-4 — compass.migrate codemod
|
|
13
12
|
|
|
14
13
|
Add the v1 to v2 Compass header codemod: migrateFile pure transform (collapse, strip, seed, reorder, purpose-flag actions), migrateWorkspace walker, runCompassMigrate handler with dirty-tree refusal and --force/--files/--dry-run flags, module registration, and 15 unit tests.</item>
|
|
15
14
|
<item>RFC-1173: declare mutatesState on all kernel commands — collectDeclarationDiagnostics emits error-severity MUTATES-STATE-DECLARED, command.manifest.validate is the blocking consumer in packages.check, sweep declares the flag on every command definition (factories hardcode false for read-only check specs)</item>
|
|
16
|
-
<
|
|
15
|
+
<item>Declare compass --root as kind "string[]" — resolveScanRoots reads it as multi-value via getFlagValues, so repeated --root stays legal now that repeated kind-"string" flags are rejected at flag resolution.</item>
|
|
16
|
+
<history>RFC-0374, RFC-0538</history>
|
|
17
17
|
</CHANGE_SUMMARY>
|
|
18
18
|
*/
|
|
19
19
|
import { runCompassInventory, runCompassValidation } from "./handlers/compass-inventory-handler.js";
|
|
@@ -34,6 +34,10 @@ const compassScanFlags = {
|
|
|
34
34
|
kind: "string",
|
|
35
35
|
description: "Scan a mission workpiece directory (RFC-0617). Mutually exclusive with --packages and --site.",
|
|
36
36
|
},
|
|
37
|
+
root: {
|
|
38
|
+
kind: "string[]",
|
|
39
|
+
description: "Scan root directory (repeatable — overrides the universal --root workspace override on scan commands).",
|
|
40
|
+
},
|
|
37
41
|
};
|
|
38
42
|
// RFC-1094: --mode governs v2 rule severity on the two validating commands only.
|
|
39
43
|
const compassModeFlag = {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"compass.module.js","sourceRoot":"","sources":["../../../os/compass/compass.module.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;EAiBE;AAIF,OAAO,EAAE,mBAAmB,EAAE,oBAAoB,EAAE,MAAM,yCAAyC,CAAC;AACpG,OAAO,EACL,mBAAmB,EACnB,qBAAqB,EACrB,uBAAuB,EACvB,uBAAuB,GACxB,MAAM,qCAAqC,CAAC;AAC7C,OAAO,EAAE,qBAAqB,EAAE,MAAM,8CAA8C,CAAC;AACrF,OAAO,EAAE,uBAAuB,EAAE,MAAM,8BAA8B,CAAC;AACvE,OAAO,EAAE,iBAAiB,EAAE,MAAM,uCAAuC,CAAC;AAE1E,MAAM,gBAAgB,GAAG;IACvB,QAAQ,EAAE;QACR,IAAI,EAAE,SAAS;QACf,WAAW,EAAE,wEAAwE;KACtF;IACD,OAAO,EAAE;QACP,IAAI,EAAE,QAAQ;QACd,WAAW,EAAE,0DAA0D;KACxE;IACD,SAAS,EAAE;QACT,IAAI,EAAE,QAAQ;QACd,WAAW,EACT,+FAA+F;KAClG;CACsC,CAAC;AAE1C,iFAAiF;AACjF,MAAM,eAAe,GAAG;IACtB,IAAI,EAAE,QAAQ;IACd,WAAW,EAAE,mFAAmF;CACzE,CAAC;AAE1B,MAAM,CAAC,MAAM,kBAAkB,GAAgB;IAC7C,IAAI,EAAE,eAAe;IACrB,OAAO,EAAE,OAAO;IAChB,OAAO,EAAE,YAAY;IACrB,YAAY,EAAE,EAAE;IAChB,QAAQ,EAAE;QACR;YACE,IAAI,EAAE,mBAAmB;YACzB,YAAY,EAAE,IAAI;YAClB,WAAW,EAAE,mEAAmE;YAChF,KAAK,EAAE,WAAW;YAClB,gBAAgB,EAAE,IAAI;YACtB,KAAK,EAAE,EAAE,GAAG,gBAAgB,EAAE;YAC9B,KAAK,EAAE;gBACL,4DAA4D;gBAC5D,wDAAwD;gBACxD,4DAA4D;aAC7D;YACD,OAAO,EAAE,mBAAmB;SAC7B;QACD;YACE,IAAI,EAAE,kBAAkB;YACxB,YAAY,EAAE,KAAK;YACnB,QAAQ,EAAE,SAAS;YACnB,KAAK,EAAE,EAAE;YACT,WAAW,EACT,kFAAkF;YACpF,KAAK,EAAE,WAAW;YAClB,gBAAgB,EAAE,IAAI;YACtB,KAAK,EAAE,EAAE,GAAG,gBAAgB,EAAE,IAAI,EAAE,eAAe,EAAE;YACrD,KAAK,EAAE;gBACL,4DAA4D;gBAC5D,wDAAwD;gBACxD,4DAA4D;gBAC5D,wBAAwB;aACzB;YACD,OAAO,EAAE,oBAAoB;SAC9B;QACD;YACE,IAAI,EAAE,wBAAwB;YAC9B,WAAW,EACT,oOAAoO;YACtO,KAAK,EAAE,WAAW;YAClB,YAAY,EAAE,IAAI;YAClB,gBAAgB,EAAE,IAAI;YACtB,MAAM,EAAE;gBACN,wDAAwD;gBACxD,4DAA4D;gBAC5D,sDAAsD;aACvD;YACD,SAAS,EAAE,EAAE;YACb,KAAK,EAAE;gBACL,4DAA4D;gBAC5D,wDAAwD;gBACxD,4DAA4D;aAC7D;YACD,SAAS,EAAE,KAAK;YAChB,KAAK,EAAE;gBACL,GAAG,gBAAgB;gBACnB,EAAE,EAAE;oBACF,IAAI,EAAE,QAAQ;oBACd,QAAQ,EAAE,IAAI;oBACd,WAAW,EAAE,oDAAoD;iBAClE;gBACD,KAAK,EAAE;oBACL,IAAI,EAAE,UAAU;oBAChB,WAAW,EACT,+HAA+H;iBAClI;gBACD,IAAI,EAAE;oBACJ,IAAI,EAAE,QAAQ;oBACd,WAAW,EACT,sGAAsG;iBACzG;aACF;YACD,OAAO,EAAE,uBAAuB;SACjC;QACD;YACE,IAAI,EAAE,sBAAsB;YAC5B,WAAW,EACT,qJAAqJ;YACvJ,KAAK,EAAE,WAAW;YAClB,YAAY,EAAE,IAAI;YAClB,gBAAgB,EAAE,IAAI;YACtB,MAAM,EAAE;gBACN,wDAAwD;gBACxD,4DAA4D;gBAC5D,sDAAsD;aACvD;YACD,SAAS,EAAE,EAAE;YACb,KAAK,EAAE;gBACL,4DAA4D;gBAC5D,wDAAwD;gBACxD,4DAA4D;aAC7D;YACD,SAAS,EAAE,KAAK;YAChB,KAAK,EAAE;gBACL,GAAG,gBAAgB;gBACnB,IAAI,EAAE;oBACJ,IAAI,EAAE,QAAQ;oBACd,WAAW,EAAE,uEAAuE;iBACrF;aACF;YACD,OAAO,EAAE,qBAAqB;SAC/B;QACD;YACE,IAAI,EAAE,iBAAiB;YACvB,WAAW,EACT,2PAA2P;YAC7P,KAAK,EAAE,WAAW;YAClB,YAAY,EAAE,IAAI;YAClB,gBAAgB,EAAE,IAAI;YACtB,MAAM,EAAE;gBACN,wDAAwD;gBACxD,4DAA4D;gBAC5D,sDAAsD;aACvD;YACD,SAAS,EAAE,EAAE;YACb,KAAK,EAAE;gBACL,4DAA4D;gBAC5D,wDAAwD;gBACxD,4DAA4D;aAC7D;YACD,SAAS,EAAE,KAAK;YAChB,KAAK,EAAE;gBACL,GAAG,gBAAgB;gBACnB,KAAK,EAAE;oBACL,IAAI,EAAE,UAAU;oBAChB,WAAW,EAAE,2EAA2E;iBACzF;gBACD,SAAS,EAAE;oBACT,IAAI,EAAE,SAAS;oBACf,WAAW,EAAE,qDAAqD;iBACnE;gBACD,KAAK,EAAE;oBACL,IAAI,EAAE,SAAS;oBACf,WAAW,EAAE,kCAAkC;iBAChD;aACF;YACD,OAAO,EAAE,iBAAiB;SAC3B;QACD;YACE,IAAI,EAAE,oBAAoB;YAC1B,YAAY,EAAE,KAAK;YACnB,cAAc,EAAE,IAAI;YACpB,WAAW,EACT,uJAAuJ;YACzJ,KAAK,EAAE,WAAW;YAClB,gBAAgB,EAAE,IAAI;YACtB,KAAK,EAAE;gBACL,GAAG,gBAAgB;gBACnB,SAAS,EAAE;oBACT,IAAI,EAAE,QAAQ;oBACd,WAAW,EAAE,oDAAoD;iBAClE;aACF;YACD,KAAK,EAAE;gBACL,4DAA4D;gBAC5D,wDAAwD;gBACxD,4DAA4D;gBAC5D,0CAA0C;aAC3C;YACD,OAAO,EAAE,mBAAmB;SAC7B;QACD;YACE,IAAI,EAAE,sBAAsB;YAC5B,UAAU,EAAE,6CAA6C;YACzD,WAAW,EACT,8IAA8I;YAChJ,KAAK,EAAE,WAAW;YAClB,YAAY,EAAE,IAAI;YAClB,gBAAgB,EAAE,IAAI;YACtB,MAAM,EAAE,CAAC,0CAA0C,CAAC;YACpD,SAAS,EAAE,CAAC,EAAE,IAAI,EAAE,0CAA0C,EAAE,KAAK,EAAE,WAAW,EAAE,CAAC;YACrF,KAAK,EAAE,CAAC,0CAA0C,CAAC;YACnD,SAAS,EAAE,KAAK;YAChB,KAAK,EAAE;gBACL,IAAI,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,8BAA8B,EAAE;gBACrF,OAAO,EAAE;oBACP,IAAI,EAAE,QAAQ;oBACd,QAAQ,EAAE,IAAI;oBACd,WAAW,EAAE,6CAA6C;iBAC3D;gBACD,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,yCAAyC,EAAE;aAClF;YACD,OAAO,EAAE,qBAAqB;SAC/B;QACD;YACE,IAAI,EAAE,wBAAwB;YAC9B,UAAU,EAAE,6CAA6C;YACzD,WAAW,EACT,qIAAqI;YACvI,KAAK,EAAE,WAAW;YAClB,YAAY,EAAE,IAAI;YAClB,gBAAgB,EAAE,IAAI;YACtB,MAAM,EAAE,CAAC,0CAA0C,CAAC;YACpD,yEAAyE;YACzE,6EAA6E;YAC7E,SAAS,EAAE,EAAE;YACb,KAAK,EAAE;gBACL,4DAA4D;gBAC5D,wDAAwD;gBACxD,4DAA4D;aAC7D;YACD,SAAS,EAAE,KAAK;YAChB,KAAK,EAAE,EAAE,GAAG,gBAAgB,EAAE;YAC9B,OAAO,EAAE,uBAAuB;SACjC;QACD;YACE,IAAI,EAAE,wBAAwB;YAC9B,YAAY,EAAE,KAAK;YACnB,cAAc,EAAE,IAAI;YACpB,QAAQ,EAAE,SAAS;YACnB,KAAK,EAAE,EAAE;YACT,WAAW,EACT,+HAA+H;YACjI,KAAK,EAAE,WAAW;YAClB,gBAAgB,EAAE,IAAI;YACtB,KAAK,EAAE;gBACL,GAAG,gBAAgB;gBACnB,MAAM,EAAE;oBACN,IAAI,EAAE,SAAS;oBACf,WAAW,EAAE,mDAAmD;iBACjE;aACF;YACD,KAAK,EAAE;gBACL,4DAA4D;gBAC5D,wDAAwD;gBACxD,4DAA4D;gBAC5D,0CAA0C;aAC3C;YACD,OAAO,EAAE,uBAAuB;YAChC,IAAI,EAAE;gBACJ,QAAQ,EAAE,OAAO;gBACjB,KAAK,EAAE,QAAQ;gBACf,WAAW,EAAE;oBACX,IAAI,EAAE,MAAM;oBACZ,GAAG,EAAE,UAAU;oBACf,WAAW,EAAE,uCAAuC;iBACrD;aACF;SACF;KACF;IACD,SAAS,EAAE,EAAE;CACd,CAAC"}
|
|
1
|
+
{"version":3,"file":"compass.module.js","sourceRoot":"","sources":["../../../os/compass/compass.module.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli-flags.d.ts","sourceRoot":"","sources":["../../src/cli-flags.ts"],"names":[],"mappings":"AAiBA,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"cli-flags.d.ts","sourceRoot":"","sources":["../../src/cli-flags.ts"],"names":[],"mappings":"AAiBA,OAAO,KAAK,EAAE,UAAU,EAAE,sBAAsB,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAEpG;;;;GAIG;AACH,eAAO,MAAM,mBAAmB,EAAE,MAAM,CAAC,MAAM,EAAE,aAAa,CAU7D,CAAC;AAyEF;;;;GAIG;AACH,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG;IAC5C,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC;IACtC,WAAW,EAAE,UAAU,EAAE,CAAC;CAC3B,CAkDA;AAuGD;;;;;;GAMG;AACH,wBAAgB,eAAe,CAC7B,IAAI,EAAE,MAAM,EAAE,EACd,OAAO,EAAE,sBAAsB,GAC9B;IAAE,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC;IAAC,WAAW,EAAE,UAAU,EAAE,CAAA;CAAE,CAKtE"}
|
package/dist/src/cli-flags.js
CHANGED
|
@@ -11,7 +11,7 @@ with `TypeError: targetId.toLowerCase is not a function`.</purpose>
|
|
|
11
11
|
</non-goals>
|
|
12
12
|
</MODULE_CONTRACT>
|
|
13
13
|
<CHANGE_SUMMARY>
|
|
14
|
-
<item>Standalone port of kernel argv resolution for the forge CLI: strict KERNEL-FLAG-01/02/03 + KERNEL-ARG-01 diagnostics for schema-carrying commands, legacy heuristic parse (with KERNEL-ARG-01) for schema-less commands; repeated single-value string flags diagnose instead of silently promoting to an array that crashes handlers.</item>
|
|
14
|
+
<item>Standalone port of kernel argv resolution for the forge CLI (RFC-0260 lineage): strict KERNEL-FLAG-01/02/03 + KERNEL-ARG-01 diagnostics for schema-carrying commands, legacy heuristic parse (with KERNEL-ARG-01) for schema-less commands; repeated single-value string flags diagnose instead of silently promoting to an array that crashes handlers; indexOf-based inline-value split preserves values containing "=" that split("=", 2) silently truncated.</item>
|
|
15
15
|
</CHANGE_SUMMARY>
|
|
16
16
|
*/
|
|
17
17
|
/**
|
|
@@ -113,7 +113,9 @@ export function parseCliArgs(argv) {
|
|
|
113
113
|
continue;
|
|
114
114
|
}
|
|
115
115
|
const withoutPrefix = entry.slice(2);
|
|
116
|
-
const
|
|
116
|
+
const eqIndex = withoutPrefix.indexOf("=");
|
|
117
|
+
const flagName = eqIndex === -1 ? withoutPrefix : withoutPrefix.slice(0, eqIndex);
|
|
118
|
+
const inlineValue = eqIndex === -1 ? undefined : withoutPrefix.slice(eqIndex + 1);
|
|
117
119
|
if (!flagName)
|
|
118
120
|
continue;
|
|
119
121
|
if (inlineValue !== undefined) {
|
|
@@ -158,7 +160,9 @@ function resolveStrict(rawArgv, command) {
|
|
|
158
160
|
continue;
|
|
159
161
|
}
|
|
160
162
|
const withoutPrefix = entry.slice(2);
|
|
161
|
-
const
|
|
163
|
+
const eqIndex = withoutPrefix.indexOf("=");
|
|
164
|
+
const flagName = eqIndex === -1 ? withoutPrefix : withoutPrefix.slice(0, eqIndex);
|
|
165
|
+
const inlineValue = eqIndex === -1 ? undefined : withoutPrefix.slice(eqIndex + 1);
|
|
162
166
|
if (!flagName)
|
|
163
167
|
continue;
|
|
164
168
|
const spec = schema[flagName];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli-flags.js","sourceRoot":"","sources":["../../src/cli-flags.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;EAeE;
|
|
1
|
+
{"version":3,"file":"cli-flags.js","sourceRoot":"","sources":["../../src/cli-flags.ts"],"names":[],"mappings":"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"}
|
|
@@ -6,14 +6,14 @@
|
|
|
6
6
|
</non-goals>
|
|
7
7
|
</MODULE_CONTRACT>
|
|
8
8
|
<CHANGE_SUMMARY>
|
|
9
|
-
<item>RFC-0538: renamed compass.changesummary.tidy to compass.summary.trim, removed compass.annotate, compass.clear, compass.markup.migrate, compass.invariant.add.</item>
|
|
10
9
|
<item>RFC-0556: removed dynamic import of @warpgogol/site-kernel-checks, all handlers now inlined in forge/os/compass/handlers/.</item>
|
|
11
10
|
<item>RFC-1095: compass.summary.record, trim repair rewrite, commit integration</item>
|
|
12
11
|
<item>RFC-1097: steps 1-4 — compass.migrate codemod
|
|
13
12
|
|
|
14
13
|
Add the v1 to v2 Compass header codemod: migrateFile pure transform (collapse, strip, seed, reorder, purpose-flag actions), migrateWorkspace walker, runCompassMigrate handler with dirty-tree refusal and --force/--files/--dry-run flags, module registration, and 15 unit tests.</item>
|
|
15
14
|
<item>RFC-1173: declare mutatesState on all kernel commands — collectDeclarationDiagnostics emits error-severity MUTATES-STATE-DECLARED, command.manifest.validate is the blocking consumer in packages.check, sweep declares the flag on every command definition (factories hardcode false for read-only check specs)</item>
|
|
16
|
-
<
|
|
15
|
+
<item>Declare compass --root as kind "string[]" — resolveScanRoots reads it as multi-value via getFlagValues, so repeated --root stays legal now that repeated kind-"string" flags are rejected at flag resolution.</item>
|
|
16
|
+
<history>RFC-0374, RFC-0538</history>
|
|
17
17
|
</CHANGE_SUMMARY>
|
|
18
18
|
*/
|
|
19
19
|
|
|
@@ -44,6 +44,11 @@ const compassScanFlags = {
|
|
|
44
44
|
description:
|
|
45
45
|
"Scan a mission workpiece directory (RFC-0617). Mutually exclusive with --packages and --site.",
|
|
46
46
|
},
|
|
47
|
+
root: {
|
|
48
|
+
kind: "string[]",
|
|
49
|
+
description:
|
|
50
|
+
"Scan root directory (repeatable — overrides the universal --root workspace override on scan commands).",
|
|
51
|
+
},
|
|
47
52
|
} satisfies Record<string, ForgeFlagSpec>;
|
|
48
53
|
|
|
49
54
|
// RFC-1094: --mode governs v2 rule severity on the two validating commands only.
|
package/package.json
CHANGED
|
@@ -34,7 +34,7 @@ See `_shared/fo-pipeline-conventions.md` §Language policy.
|
|
|
34
34
|
|
|
35
35
|
A multi-persona design review for complex RFCs. The summit simulates five professional perspectives — Architect, Security Engineer, QA Engineer, Product Manager, and Developer Advocate — to surface issues that a single-perspective review misses. Each persona reviews the RFC from its professional lens and raises concerns. The operator sees all perspectives and makes the final decision.
|
|
36
36
|
|
|
37
|
-
The summit is **optional** — invoked manually by the operator or
|
|
37
|
+
The summit is **optional** — invoked manually by the operator or auto-invoked by `fo-idea-plan` (step 5b) when the planning agent judges multi-perspective review genuinely useful. It is not part of the default pipeline.
|
|
38
38
|
|
|
39
39
|
The summit is `concern: document-only` — it writes a summit report to `docs/summits/` and does not modify the RFC or any source code.
|
|
40
40
|
|
|
@@ -229,7 +229,7 @@ Do not modify the RFC or any other file. Do not run `/fo-idea-enhance` or `/fo-i
|
|
|
229
229
|
|
|
230
230
|
## Invocation criteria
|
|
231
231
|
|
|
232
|
-
`fo-design-summit` is invoked explicitly by the operator or
|
|
232
|
+
`fo-design-summit` is invoked explicitly by the operator or auto-invoked by `fo-idea-plan` (step 5b). The criteria below are eligibility gates, not triggers — `fo-idea-plan` runs the summit only when it also judges multi-perspective review genuinely useful, without asking the operator:
|
|
233
233
|
|
|
234
234
|
- `kind: architecture` AND `scope: workspace`
|
|
235
235
|
- `satisfies[]` includes 2+ DNA invariants
|
|
@@ -241,7 +241,7 @@ Do not modify the RFC or any other file. Do not run `/fo-idea-enhance` or `/fo-i
|
|
|
241
241
|
|
|
242
242
|
- **RFC not found:** The skill errors if the target RFC does not exist.
|
|
243
243
|
- **Audit not run yet:** The skill proceeds without the audit report — persona findings may overlap with future audit findings. The skill notes this in the report.
|
|
244
|
-
- **RFC is too small for a summit:** If the RFC body is less than 500 words, the skill warns that a summit may be overkill
|
|
244
|
+
- **RFC is too small for a summit:** If the RFC body is less than 500 words, the skill warns that a summit may be overkill. When invoked explicitly by the operator, it proceeds only on operator confirmation. When auto-invoked by `fo-idea-plan`, it stops without running — the caller proceeds to its next step.
|
|
245
245
|
- **Persona findings overlap:** Multiple personas may raise the same concern. The synthesis step deduplicates and marks consensus findings.
|
|
246
246
|
|
|
247
247
|
## Constraints
|
|
@@ -182,15 +182,26 @@ The grilling checks:
|
|
|
182
182
|
|
|
183
183
|
Address every concern the grilling raises by revising the draft. Do not persist until the grilling is satisfied.
|
|
184
184
|
|
|
185
|
-
### 5b. Summit
|
|
185
|
+
### 5b. Summit decision (autonomous)
|
|
186
186
|
|
|
187
|
-
|
|
187
|
+
Decide yourself whether to run `fo-design-summit` before persisting the plan. **Do not ask the operator** — the planning agent holds the full context and is best placed to judge. The operator can always request a summit explicitly.
|
|
188
188
|
|
|
189
|
-
|
|
189
|
+
Eligibility — the RFC meets **any** of:
|
|
190
190
|
|
|
191
|
-
|
|
191
|
+
- `kind: architecture` AND `scope: workspace`
|
|
192
|
+
- `satisfies[]` includes 2+ DNA invariants
|
|
193
|
+
- Introduces a new package, command family, or lifecycle
|
|
194
|
+
- Supersedes an implemented RFC
|
|
192
195
|
|
|
193
|
-
|
|
196
|
+
Eligibility alone is not sufficient — most RFCs meet at least one criterion mechanically. Run the summit only when multi-perspective review is likely to surface findings that the audit, enhance, and grilling steps did not:
|
|
197
|
+
|
|
198
|
+
- The design holds genuinely contested trade-offs or more than one viable architecture.
|
|
199
|
+
- There is cross-cutting risk a single-perspective pass misses (security or privacy surface, migration of already-implemented behavior, multi-workspace blast radius).
|
|
200
|
+
- Step 3 or the grilling left material questions unresolved.
|
|
201
|
+
|
|
202
|
+
Skip the summit when the change is additive, follows an established pattern, or the plan converged cleanly — meeting a criterion only technically (e.g. listing 2 DNA invariants on a routine change) is a skip. When in doubt, skip: a missed summit is recoverable, operator attention is not.
|
|
203
|
+
|
|
204
|
+
If you run it, announce in one line (`Running design summit — <reason>`), invoke `fo-design-summit` via the `skill` tool, wait for it to complete, then proceed to step 6. If you skip, emit one line (`Design summit skipped — <reason>`) and proceed directly to step 6.
|
|
194
205
|
|
|
195
206
|
### 6. Persist the plan
|
|
196
207
|
|
package/src/cli-flags.ts
CHANGED
|
@@ -11,16 +11,11 @@ with `TypeError: targetId.toLowerCase is not a function`.</purpose>
|
|
|
11
11
|
</non-goals>
|
|
12
12
|
</MODULE_CONTRACT>
|
|
13
13
|
<CHANGE_SUMMARY>
|
|
14
|
-
<item>Standalone port of kernel argv resolution for the forge CLI: strict KERNEL-FLAG-01/02/03 + KERNEL-ARG-01 diagnostics for schema-carrying commands, legacy heuristic parse (with KERNEL-ARG-01) for schema-less commands; repeated single-value string flags diagnose instead of silently promoting to an array that crashes handlers.</item>
|
|
14
|
+
<item>Standalone port of kernel argv resolution for the forge CLI (RFC-0260 lineage): strict KERNEL-FLAG-01/02/03 + KERNEL-ARG-01 diagnostics for schema-carrying commands, legacy heuristic parse (with KERNEL-ARG-01) for schema-less commands; repeated single-value string flags diagnose instead of silently promoting to an array that crashes handlers; indexOf-based inline-value split preserves values containing "=" that split("=", 2) silently truncated.</item>
|
|
15
15
|
</CHANGE_SUMMARY>
|
|
16
16
|
*/
|
|
17
17
|
|
|
18
|
-
import type {
|
|
19
|
-
Diagnostic,
|
|
20
|
-
ForgeCommandDefinition,
|
|
21
|
-
ForgeFlagSpec,
|
|
22
|
-
ForgeFlagValue,
|
|
23
|
-
} from "./types.ts";
|
|
18
|
+
import type { Diagnostic, ForgeCommandDefinition, ForgeFlagSpec, ForgeFlagValue } from "./types.ts";
|
|
24
19
|
|
|
25
20
|
/**
|
|
26
21
|
* Flags every CLI command accepts regardless of its own declared schema —
|
|
@@ -142,7 +137,9 @@ export function parseCliArgs(argv: string[]): {
|
|
|
142
137
|
}
|
|
143
138
|
|
|
144
139
|
const withoutPrefix = entry.slice(2);
|
|
145
|
-
const
|
|
140
|
+
const eqIndex = withoutPrefix.indexOf("=");
|
|
141
|
+
const flagName = eqIndex === -1 ? withoutPrefix : withoutPrefix.slice(0, eqIndex);
|
|
142
|
+
const inlineValue = eqIndex === -1 ? undefined : withoutPrefix.slice(eqIndex + 1);
|
|
146
143
|
if (!flagName) continue;
|
|
147
144
|
|
|
148
145
|
if (inlineValue !== undefined) {
|
|
@@ -200,7 +197,9 @@ function resolveStrict(
|
|
|
200
197
|
}
|
|
201
198
|
|
|
202
199
|
const withoutPrefix = entry.slice(2);
|
|
203
|
-
const
|
|
200
|
+
const eqIndex = withoutPrefix.indexOf("=");
|
|
201
|
+
const flagName = eqIndex === -1 ? withoutPrefix : withoutPrefix.slice(0, eqIndex);
|
|
202
|
+
const inlineValue = eqIndex === -1 ? undefined : withoutPrefix.slice(eqIndex + 1);
|
|
204
203
|
if (!flagName) continue;
|
|
205
204
|
|
|
206
205
|
const spec = schema[flagName];
|
|
@@ -57,6 +57,12 @@ describe("resolveCliFlags — strict (schema-carrying) path", () => {
|
|
|
57
57
|
}
|
|
58
58
|
});
|
|
59
59
|
|
|
60
|
+
test("inline value containing = is preserved verbatim", () => {
|
|
61
|
+
const { flags, diagnostics } = resolveCliFlags(["--id=RFC=0609"], rfcValidate);
|
|
62
|
+
expect(flags["id"]).toBe("RFC=0609");
|
|
63
|
+
expect(errorRuleIds(diagnostics)).toEqual([]);
|
|
64
|
+
});
|
|
65
|
+
|
|
60
66
|
test("repeated single-value string flag errors instead of promoting to an array", () => {
|
|
61
67
|
const { flags, diagnostics } = resolveCliFlags(["--id", "RFC-1", "--id", "RFC-2"], rfcValidate);
|
|
62
68
|
expect(errorRuleIds(diagnostics)).toEqual(["KERNEL-FLAG-02"]);
|