rcf-lite 0.13.0 → 0.14.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +29 -1
- package/bin/rcf.js +3 -1
- package/blueprints/application-api-rest/docs/topics.md +1 -1
- package/blueprints/application-spa/README.md +3 -3
- package/blueprints/application-spa/contributions/adrs/adr-202-application-spa-theming.json +1 -1
- package/blueprints/application-spa/contributions/adrs/adr-206-application-spa-iconography.json +1 -1
- package/blueprints/application-spa/contributions/tacs/tac-207-application-spa-token-adherence-probe.json +7 -7
- package/blueprints/application-spa/contributions/tacs/tac-208-application-spa-icon-adherence-probe.json +7 -7
- package/blueprints/application-spa/contributions/tacs/tac-209-application-spa-csp-styled-adherence-probe.json +8 -8
- package/blueprints/application-spa/contributions/tacs/tac-210-application-spa-external-dependency-provisioning-probe.json +8 -8
- package/blueprints/application-spa/contributions/tacs/tac-211-application-spa-core-flow-e2e-probe.json +8 -8
- package/blueprints/application-spa/contributions/user-stories/application-spa-us-1129.json +2 -2
- package/blueprints/application-spa/contributions/user-stories/application-spa-us-1130.json +2 -2
- package/blueprints/application-spa/contributions/user-stories/application-spa-us-1131.json +2 -2
- package/blueprints/application-spa/contributions/user-stories/application-spa-us-1132.json +2 -2
- package/blueprints/application-spa/contributions/user-stories/application-spa-us-1133.json +3 -3
- package/blueprints/application-spa/docs/topics.md +1 -1
- package/blueprints/delivery-ci-workflows/CHANGELOG.md +39 -0
- package/blueprints/delivery-ci-workflows/README.md +57 -0
- package/blueprints/delivery-ci-workflows/assets/ci-provider-examples/github-actions/default-branch-checks.yml +55 -0
- package/blueprints/delivery-ci-workflows/assets/ci-provider-examples/github-actions/pull-request-checks.yml +65 -0
- package/blueprints/delivery-ci-workflows/assets/ci-provider-examples/github-actions/release.yml +71 -0
- package/blueprints/delivery-ci-workflows/assets/ci-provider-examples/github-actions/scheduled-audit.yml +61 -0
- package/blueprints/delivery-ci-workflows/assets/ci-provider-examples/notes.md +61 -0
- package/blueprints/{ci-pipeline → delivery-ci-workflows}/assets/report-samples/per-gate.json +2 -1
- package/blueprints/delivery-ci-workflows/blueprint.json +87 -0
- package/blueprints/delivery-ci-workflows/contributions/adrs/adr-701-delivery-ci-workflows-ci-gates.json +30 -0
- package/blueprints/{ci-pipeline/contributions/adrs/adr-702-ci-pipeline-strict-coverage-gate.json → delivery-ci-workflows/contributions/adrs/adr-702-delivery-ci-workflows-strict-coverage-gate.json} +2 -2
- package/blueprints/{ci-pipeline/contributions/adrs/adr-703-ci-pipeline-node-only-runner.json → delivery-ci-workflows/contributions/adrs/adr-703-delivery-ci-workflows-node-only-runner.json} +1 -1
- package/blueprints/{ci-pipeline/contributions/adrs/adr-704-ci-pipeline-report-shape.json → delivery-ci-workflows/contributions/adrs/adr-704-delivery-ci-workflows-report-shape.json} +3 -3
- package/blueprints/delivery-ci-workflows/contributions/adrs/adr-705-delivery-ci-workflows-elicitation-surface.json +25 -0
- package/blueprints/delivery-ci-workflows/contributions/adrs/adr-706-delivery-ci-workflows-branch-model-defaults.json +25 -0
- package/blueprints/delivery-ci-workflows/contributions/adrs/adr-707-delivery-ci-workflows-release-workflow-shape.json +25 -0
- package/blueprints/delivery-ci-workflows/contributions/adrs/adr-708-delivery-ci-workflows-provider-hint-shape.json +25 -0
- package/blueprints/delivery-ci-workflows/contributions/adrs/adr-709-delivery-ci-workflows-release-artefacts.json +25 -0
- package/blueprints/delivery-ci-workflows/contributions/adrs/adr-710-delivery-ci-workflows-scheduled-audit.json +25 -0
- package/blueprints/delivery-ci-workflows/contributions/requirements/delivery-ci-workflows-req-001.json +18 -0
- package/blueprints/{ci-pipeline/contributions/requirements/ci-pipeline-req-002.json → delivery-ci-workflows/contributions/requirements/delivery-ci-workflows-req-002.json} +2 -2
- package/blueprints/{ci-pipeline/contributions/requirements/ci-pipeline-req-003.json → delivery-ci-workflows/contributions/requirements/delivery-ci-workflows-req-003.json} +2 -2
- package/blueprints/{ci-pipeline/contributions/requirements/ci-pipeline-req-004.json → delivery-ci-workflows/contributions/requirements/delivery-ci-workflows-req-004.json} +2 -2
- package/blueprints/{ci-pipeline/contributions/requirements/ci-pipeline-req-005.json → delivery-ci-workflows/contributions/requirements/delivery-ci-workflows-req-005.json} +4 -4
- package/blueprints/{ci-pipeline/contributions/requirements/ci-pipeline-req-006.json → delivery-ci-workflows/contributions/requirements/delivery-ci-workflows-req-006.json} +2 -2
- package/blueprints/{ci-pipeline/contributions/requirements/ci-pipeline-req-007.json → delivery-ci-workflows/contributions/requirements/delivery-ci-workflows-req-007.json} +2 -2
- package/blueprints/{ci-pipeline/contributions/requirements/ci-pipeline-req-008.json → delivery-ci-workflows/contributions/requirements/delivery-ci-workflows-req-008.json} +2 -2
- package/blueprints/delivery-ci-workflows/contributions/requirements/delivery-ci-workflows-req-009.json +18 -0
- package/blueprints/{ci-pipeline/contributions/requirements/ci-pipeline-req-010.json → delivery-ci-workflows/contributions/requirements/delivery-ci-workflows-req-010.json} +2 -2
- package/blueprints/delivery-ci-workflows/contributions/requirements/delivery-ci-workflows-req-011.json +18 -0
- package/blueprints/delivery-ci-workflows/contributions/requirements/delivery-ci-workflows-req-012.json +18 -0
- package/blueprints/delivery-ci-workflows/contributions/requirements/delivery-ci-workflows-req-013.json +18 -0
- package/blueprints/delivery-ci-workflows/contributions/requirements/delivery-ci-workflows-req-014.json +18 -0
- package/blueprints/delivery-ci-workflows/contributions/requirements/delivery-ci-workflows-req-015.json +18 -0
- package/blueprints/delivery-ci-workflows/contributions/requirements/delivery-ci-workflows-req-016.json +18 -0
- package/blueprints/delivery-ci-workflows/contributions/requirements/delivery-ci-workflows-req-017.json +18 -0
- package/blueprints/delivery-ci-workflows/contributions/requirements/delivery-ci-workflows-req-018.json +18 -0
- package/blueprints/delivery-ci-workflows/contributions/requirements/delivery-ci-workflows-req-019.json +18 -0
- package/blueprints/delivery-ci-workflows/contributions/requirements/delivery-ci-workflows-req-020.json +18 -0
- package/blueprints/delivery-ci-workflows/contributions/requirements/delivery-ci-workflows-req-021.json +18 -0
- package/blueprints/delivery-ci-workflows/contributions/requirements/delivery-ci-workflows-req-022.json +18 -0
- package/blueprints/delivery-ci-workflows/contributions/requirements/delivery-ci-workflows-req-023.json +18 -0
- package/blueprints/{ci-pipeline/contributions/tacs/tac-701-ci-pipeline-gate-runner.json → delivery-ci-workflows/contributions/tacs/tac-701-delivery-ci-workflows-gate-runner.json} +3 -3
- package/blueprints/{ci-pipeline/contributions/tacs/tac-702-ci-pipeline-gate-report.json → delivery-ci-workflows/contributions/tacs/tac-702-delivery-ci-workflows-gate-report.json} +1 -1
- package/blueprints/{ci-pipeline/contributions/tacs/tac-703-ci-pipeline-aggregate-report.json → delivery-ci-workflows/contributions/tacs/tac-703-delivery-ci-workflows-aggregate-report.json} +2 -2
- package/blueprints/delivery-ci-workflows/contributions/tacs/tac-704-delivery-ci-workflows-workflow-materialiser.json +64 -0
- package/blueprints/delivery-ci-workflows/contributions/tacs/tac-705-delivery-ci-workflows-release-workflow.json +51 -0
- package/blueprints/delivery-ci-workflows/contributions/tacs/tac-706-delivery-ci-workflows-scheduled-audit.json +38 -0
- package/blueprints/delivery-ci-workflows/contributions/user-stories/delivery-ci-workflows-us-6101.json +37 -0
- package/blueprints/{ci-pipeline/contributions/user-stories/ci-pipeline-us-6102.json → delivery-ci-workflows/contributions/user-stories/delivery-ci-workflows-us-6102.json} +3 -3
- package/blueprints/{ci-pipeline/contributions/user-stories/ci-pipeline-us-6103.json → delivery-ci-workflows/contributions/user-stories/delivery-ci-workflows-us-6103.json} +4 -4
- package/blueprints/{ci-pipeline/contributions/user-stories/ci-pipeline-us-6104.json → delivery-ci-workflows/contributions/user-stories/delivery-ci-workflows-us-6104.json} +4 -4
- package/blueprints/{ci-pipeline/contributions/user-stories/ci-pipeline-us-6105.json → delivery-ci-workflows/contributions/user-stories/delivery-ci-workflows-us-6105.json} +6 -6
- package/blueprints/{ci-pipeline/contributions/user-stories/ci-pipeline-us-6106.json → delivery-ci-workflows/contributions/user-stories/delivery-ci-workflows-us-6106.json} +3 -3
- package/blueprints/{ci-pipeline/contributions/user-stories/ci-pipeline-us-6107.json → delivery-ci-workflows/contributions/user-stories/delivery-ci-workflows-us-6107.json} +5 -5
- package/blueprints/{ci-pipeline/contributions/user-stories/ci-pipeline-us-6108.json → delivery-ci-workflows/contributions/user-stories/delivery-ci-workflows-us-6108.json} +4 -4
- package/blueprints/delivery-ci-workflows/contributions/user-stories/delivery-ci-workflows-us-6109.json +36 -0
- package/blueprints/{ci-pipeline/contributions/user-stories/ci-pipeline-us-6110.json → delivery-ci-workflows/contributions/user-stories/delivery-ci-workflows-us-6110.json} +3 -3
- package/blueprints/delivery-ci-workflows/contributions/user-stories/delivery-ci-workflows-us-6111.json +36 -0
- package/blueprints/delivery-ci-workflows/contributions/user-stories/delivery-ci-workflows-us-6112.json +36 -0
- package/blueprints/delivery-ci-workflows/contributions/user-stories/delivery-ci-workflows-us-6113.json +36 -0
- package/blueprints/delivery-ci-workflows/contributions/user-stories/delivery-ci-workflows-us-6114.json +46 -0
- package/blueprints/delivery-ci-workflows/contributions/user-stories/delivery-ci-workflows-us-6115.json +37 -0
- package/blueprints/delivery-ci-workflows/contributions/user-stories/delivery-ci-workflows-us-6116.json +28 -0
- package/blueprints/delivery-ci-workflows/contributions/user-stories/delivery-ci-workflows-us-6117.json +28 -0
- package/blueprints/delivery-ci-workflows/contributions/user-stories/delivery-ci-workflows-us-6118.json +37 -0
- package/blueprints/delivery-ci-workflows/contributions/user-stories/delivery-ci-workflows-us-6119.json +28 -0
- package/blueprints/delivery-ci-workflows/contributions/user-stories/delivery-ci-workflows-us-6120.json +28 -0
- package/blueprints/delivery-ci-workflows/contributions/user-stories/delivery-ci-workflows-us-6121.json +46 -0
- package/blueprints/delivery-ci-workflows/contributions/user-stories/delivery-ci-workflows-us-6122.json +46 -0
- package/blueprints/delivery-ci-workflows/contributions/user-stories/delivery-ci-workflows-us-6123.json +37 -0
- package/blueprints/delivery-ci-workflows/docs/topics.md +61 -0
- package/blueprints/delivery-ci-workflows/guide/delivery-ci-workflows.md +136 -0
- package/blueprints/deploy-cloudflare-workers/docs/topics.md +3 -3
- package/blueprints/email-smtp-resend/docs/topics.md +1 -1
- package/blueprints/observability-essentials/README.md +2 -2
- package/blueprints/observability-essentials/docs/topics.md +5 -5
- package/blueprints/observability-probe-endpoints/docs/topics.md +2 -2
- package/blueprints/persistence-data-d1/README.md +2 -2
- package/blueprints/persistence-data-d1/assets/facade-shape/facade-module-shape.md +1 -1
- package/blueprints/persistence-data-d1/contributions/tacs/tac-1403-persistence-data-d1-deploy-gate.json +1 -1
- package/blueprints/persistence-data-d1/docs/topics.md +2 -2
- package/blueprints/persistence-data-d1/guide/persistence-data-d1.md +1 -1
- package/blueprints/persistence-data-sqlite/README.md +1 -1
- package/blueprints/persistence-data-sqlite/docs/topics.md +1 -1
- package/blueprints/security-auth-clerk/README.md +5 -3
- package/blueprints/security-auth-clerk/assets/middleware/workers-fetch-shape.md +123 -0
- package/blueprints/security-auth-clerk/assets/wiring/workers-wrangler-toml-shape.md +51 -0
- package/blueprints/security-auth-clerk/blueprint.json +1 -1
- package/blueprints/security-auth-clerk/docs/topics.md +2 -2
- package/blueprints/security-auth-clerk/guide/security-auth-clerk.md +9 -0
- package/blueprints/security-auth-keycloak/docs/topics.md +2 -2
- package/blueprints/security-auth-magic-link/README.md +1 -1
- package/blueprints/security-auth-magic-link/docs/topics.md +1 -1
- package/blueprints/security-auth-oauth2/README.md +1 -1
- package/blueprints/security-auth-oauth2/docs/topics.md +2 -2
- package/blueprints/security-secrets-management/README.md +1 -1
- package/blueprints/security-secrets-management/docs/topics.md +3 -3
- package/guidance/build-cycle-playbook.md +2 -2
- package/guidance/document-model.md +1 -1
- package/guidance/harness-template.md +13 -0
- package/guidance/managed/agent-instructions-block.hash +1 -1
- package/guidance/managed/agent-instructions-block.md +13 -0
- package/package.json +5 -2
- package/rcf/adrs/adr-001.json +1 -1
- package/rcf/adrs/adr-009.json +1 -1
- package/rcf/build-sequence.json +1 -1
- package/rcf/manifest.json +2 -2
- package/rcf/prd.json +2 -2
- package/releases/releases.yaml +116 -0
- package/src/blueprint/apply.js +51 -13
- package/src/blueprint/index.js +12 -0
- package/src/blueprint/library-loader.js +271 -0
- package/src/blueprint/library-registry.js +341 -0
- package/src/blueprint/list.js +38 -4
- package/src/blueprint/shelf-resolver.js +144 -31
- package/src/cli/blueprint-library.js +419 -0
- package/src/cli/blueprint.js +46 -9
- package/src/cli/guidance.js +1 -1
- package/src/cli/help.js +27 -1
- package/src/cli/version.js +673 -0
- package/src/cli/view.js +282 -1
- package/src/server/index.js +3 -0
- package/src/server/routes.js +15 -1
- package/src/server/scope-endpoint.js +105 -0
- package/src/view/live-client.js +253 -6
- package/src/view/scope.js +231 -0
- package/src/view/style.css +42 -0
- package/blueprints/ci-pipeline/README.md +0 -49
- package/blueprints/ci-pipeline/assets/ci-provider-examples/github-actions.yml +0 -61
- package/blueprints/ci-pipeline/assets/ci-provider-examples/notes.md +0 -50
- package/blueprints/ci-pipeline/blueprint.json +0 -46
- package/blueprints/ci-pipeline/contributions/adrs/adr-701-ci-pipeline-ci-gates.json +0 -25
- package/blueprints/ci-pipeline/contributions/requirements/ci-pipeline-req-001.json +0 -18
- package/blueprints/ci-pipeline/contributions/requirements/ci-pipeline-req-009.json +0 -18
- package/blueprints/ci-pipeline/contributions/user-stories/ci-pipeline-us-6101.json +0 -37
- package/blueprints/ci-pipeline/contributions/user-stories/ci-pipeline-us-6109.json +0 -36
- package/blueprints/ci-pipeline/docs/topics.md +0 -49
- package/blueprints/ci-pipeline/guide/ci-pipeline.md +0 -79
- package/rcf/.identity/profile.md +0 -37
- package/rcf/knowledge/INDEX.md +0 -12
- package/rcf/knowledge/README.md +0 -41
- package/rcf/knowledge/docs/.gitkeep +0 -0
- package/rcf/knowledge/notes/.gitkeep +0 -0
- /package/blueprints/{ci-pipeline → delivery-ci-workflows}/assets/report-samples/pipeline.json +0 -0
package/src/cli/blueprint.js
CHANGED
|
@@ -25,6 +25,7 @@ import {
|
|
|
25
25
|
supersedeBlueprintTopic,
|
|
26
26
|
} from '../blueprint/index.js';
|
|
27
27
|
import { conflictReportJson, renderConflictReport } from '../blueprint/conflicts.js';
|
|
28
|
+
import { handleLibraryVerb, LIBRARY_HELP } from './blueprint-library.js';
|
|
28
29
|
|
|
29
30
|
export const HELP = `Usage: rcf define blueprint <verb> [options]
|
|
30
31
|
|
|
@@ -65,6 +66,11 @@ Verbs:
|
|
|
65
66
|
diff <topic> Side-by-side view of every applied blueprint's
|
|
66
67
|
scope:global ADR on <topic>: id, path, title,
|
|
67
68
|
status, decision. Read-only.
|
|
69
|
+
library <verb> Manage external blueprint libraries. Sub-verbs:
|
|
70
|
+
add, list, remove, refresh. See
|
|
71
|
+
'rcf define blueprint library --help' for the
|
|
72
|
+
full surface. Phase 2b covers local sources;
|
|
73
|
+
network fetchers land in Phase 2c.
|
|
68
74
|
|
|
69
75
|
Options:
|
|
70
76
|
--namespace <slug> Override the blueprint's default namespace
|
|
@@ -106,6 +112,11 @@ const OPTION_SPEC = {
|
|
|
106
112
|
resolve: { type: 'string', multiple: true },
|
|
107
113
|
reason: { type: 'string' },
|
|
108
114
|
incoming: { type: 'string' },
|
|
115
|
+
// library-verb flags (parsed centrally so strict:true doesn't refuse
|
|
116
|
+
// them when the operator types `rcf define blueprint library add`).
|
|
117
|
+
prefix: { type: 'string' },
|
|
118
|
+
'i-have-reviewed': { type: 'boolean' },
|
|
119
|
+
'no-review': { type: 'boolean' },
|
|
109
120
|
json: { type: 'boolean' },
|
|
110
121
|
'dry-run': { type: 'boolean' },
|
|
111
122
|
quiet: { type: 'boolean' },
|
|
@@ -131,13 +142,25 @@ export async function main(argv, deps = {}) {
|
|
|
131
142
|
stderr.write(HELP);
|
|
132
143
|
return 2;
|
|
133
144
|
}
|
|
134
|
-
|
|
145
|
+
const firstPositional = parsed.positionals[0];
|
|
146
|
+
// `rcf define blueprint library --help` routes into the library
|
|
147
|
+
// handler so the sub-verb HELP block is what the operator sees.
|
|
148
|
+
// Every other --help (and empty argv) prints the top-level HELP.
|
|
149
|
+
if (firstPositional !== 'library' && (parsed.values.help || parsed.positionals.length === 0)) {
|
|
135
150
|
stdout.write(HELP);
|
|
136
151
|
return 0;
|
|
137
152
|
}
|
|
138
153
|
const verb = parsed.positionals[0];
|
|
139
154
|
const rest = parsed.positionals.slice(1);
|
|
140
155
|
|
|
156
|
+
// `library` sub-verbs manage the external-library registry; they
|
|
157
|
+
// never walk the RCF tree, and delegating early keeps the option
|
|
158
|
+
// parser from consuming `--i-have-reviewed` (a library-add-only flag)
|
|
159
|
+
// against a `library` add invocation.
|
|
160
|
+
if (verb === 'library') {
|
|
161
|
+
return handleLibraryVerb(parsed, rest, { stdout, stderr, cwd, now, stdin: deps.stdin });
|
|
162
|
+
}
|
|
163
|
+
|
|
141
164
|
const projectRoot = await findProjectRoot(cwd);
|
|
142
165
|
if (!projectRoot) {
|
|
143
166
|
stderr.write('[error] no rcf/ tree found in this directory or any ancestor.\n');
|
|
@@ -156,7 +179,7 @@ export async function main(argv, deps = {}) {
|
|
|
156
179
|
return 2;
|
|
157
180
|
}
|
|
158
181
|
const rawSource = rest[0];
|
|
159
|
-
const resolved = await resolveBlueprintSource(rawSource);
|
|
182
|
+
const resolved = await resolveBlueprintSource(rawSource, { projectRoot });
|
|
160
183
|
if (isRcfError(resolved)) {
|
|
161
184
|
if (parsed.values.json) {
|
|
162
185
|
stderr.write(`${JSON.stringify({ refused: true, error: { kind: resolved.kind, message: resolved.message } })}\n`);
|
|
@@ -165,12 +188,17 @@ export async function main(argv, deps = {}) {
|
|
|
165
188
|
}
|
|
166
189
|
return 2;
|
|
167
190
|
}
|
|
168
|
-
// Feed the resolved absolute path to the applier
|
|
169
|
-
// typed source on the CLI for the
|
|
170
|
-
//
|
|
171
|
-
// copy back into a fresh shell.
|
|
191
|
+
// Feed the resolved absolute path to the applier. The original
|
|
192
|
+
// typed source is preserved on the CLI for the conflict renderer's
|
|
193
|
+
// supersede hint (so the operator sees exactly the string they can
|
|
194
|
+
// copy back into a fresh shell). It is ONLY forwarded to the applier
|
|
195
|
+
// as `displaySource` for library-qualified resolves - spec §5.3
|
|
196
|
+
// requires the qualified typed ref (`wsd:auth-oauth2`) to be the
|
|
197
|
+
// record's `source`. For shelf and path resolves the record must
|
|
198
|
+
// carry the RESOLVED ABSOLUTE PATH, which is the pre-#120 behaviour
|
|
199
|
+
// that /scope.json and `blueprint list --category` both depend on
|
|
200
|
+
// to load the shipping source file (integration review d-2026-08-31-046).
|
|
172
201
|
const source = resolved.resolved;
|
|
173
|
-
const displaySource = resolved.original;
|
|
174
202
|
const resolveDeclarations = parseResolveOptions(parsed.values.resolve, parsed.values.reason);
|
|
175
203
|
if (resolveDeclarations.error) {
|
|
176
204
|
stderr.write(`[error] blueprint add: ${resolveDeclarations.error}\n`);
|
|
@@ -178,8 +206,17 @@ export async function main(argv, deps = {}) {
|
|
|
178
206
|
}
|
|
179
207
|
const result = await applyBlueprint({
|
|
180
208
|
projectRoot, tree, source,
|
|
181
|
-
displaySource,
|
|
182
209
|
namespaceOverride: parsed.values.namespace,
|
|
210
|
+
// Library-qualified resolves rewire the applied identity under
|
|
211
|
+
// the library prefix and forward the library's declared bands
|
|
212
|
+
// for the apply-time gate (spec §5.3, §8.3). The qualified typed
|
|
213
|
+
// ref is passed as `displaySource` so the applied record's
|
|
214
|
+
// `source` field carries it verbatim (spec §5.3).
|
|
215
|
+
...(resolved.kind === 'library' ? {
|
|
216
|
+
displaySource: resolved.original,
|
|
217
|
+
effectiveSlug: resolved.effectiveSlug,
|
|
218
|
+
libraryBands: resolved.libraryBands,
|
|
219
|
+
} : {}),
|
|
183
220
|
resolveDeclarations: resolveDeclarations.value,
|
|
184
221
|
now,
|
|
185
222
|
dryRun: parsed.values['dry-run'] === true,
|
|
@@ -246,7 +283,7 @@ export async function main(argv, deps = {}) {
|
|
|
246
283
|
// source's blueprint.json at list time; a source that no longer
|
|
247
284
|
// resolves surfaces under the `uncategorised` group rather than
|
|
248
285
|
// being dropped.
|
|
249
|
-
const enriched = await enrichRowsWithCategories(rows);
|
|
286
|
+
const enriched = await enrichRowsWithCategories(rows, { projectRoot });
|
|
250
287
|
const groups = groupRowsByCategory(enriched);
|
|
251
288
|
let first = true;
|
|
252
289
|
for (const group of groups) {
|
package/src/cli/guidance.js
CHANGED
|
@@ -34,7 +34,7 @@ const OPTION_SPEC = {
|
|
|
34
34
|
|
|
35
35
|
export const HELP = `Usage: rcf guidance [topic] [options]
|
|
36
36
|
|
|
37
|
-
Print a guidance-pack document from the installed rcf-
|
|
37
|
+
Print a guidance-pack document from the installed rcf-lite
|
|
38
38
|
package to stdout. The pack ships with the package and is never copied
|
|
39
39
|
into your project, so this verb is how a CLI-only agent reads the
|
|
40
40
|
method. MCP-wired harnesses can use the rcf://docs/<slug> resources and
|
package/src/cli/help.js
CHANGED
|
@@ -36,6 +36,7 @@ import { HELP as DESIGN_HELP } from './design.js';
|
|
|
36
36
|
import { HELP as BROWSER_VERIFY_HELP } from './browser-verify.js';
|
|
37
37
|
import { HELP as UPDATE_HELP } from './update.js';
|
|
38
38
|
import { HELP as VALIDATE_HELP } from './validate.js';
|
|
39
|
+
import { HELP as VERSION_HELP } from './version.js';
|
|
39
40
|
import { HELP as VIEW_HELP } from './view.js';
|
|
40
41
|
import { HELP as REQ_CLASSIFY_HELP } from './req-classify.js';
|
|
41
42
|
import { HELP as REQ_BASELINE_HELP } from './req-baseline.js';
|
|
@@ -64,6 +65,8 @@ core Platform plumbing that predates any RCF stage.
|
|
|
64
65
|
doctor Diagnose and repair init-hygiene drift.
|
|
65
66
|
guidance [topic] Print a method document from the installed pack.
|
|
66
67
|
mcp Serve the project over MCP (local stdio).
|
|
68
|
+
version [--check] Print installed version; --check compares
|
|
69
|
+
against the release feed.
|
|
67
70
|
help [group] [verb] Print help for a group or a verb.
|
|
68
71
|
|
|
69
72
|
discover Learn what is already true for this project.
|
|
@@ -126,6 +129,24 @@ Run 'rcf help <group>' for group help; 'rcf help <group> <verb>' for
|
|
|
126
129
|
per-verb help.
|
|
127
130
|
`;
|
|
128
131
|
|
|
132
|
+
const CORE_GROUP_HELP = `Usage: rcf <core-verb> [options]
|
|
133
|
+
|
|
134
|
+
Platform plumbing that predates any RCF stage. Core verbs dispatch at
|
|
135
|
+
the top level (they are invoked as \`rcf <verb>\`, not \`rcf core <verb>\`);
|
|
136
|
+
this group is a documentation grouping for \`rcf help\`.
|
|
137
|
+
|
|
138
|
+
Verbs:
|
|
139
|
+
init Scaffold a new RCF project in this directory.
|
|
140
|
+
doctor Diagnose and repair init-hygiene drift.
|
|
141
|
+
guidance [topic] Print a method document from the installed pack.
|
|
142
|
+
mcp Serve the project over MCP (local stdio).
|
|
143
|
+
version [--check] Print installed version; --check compares
|
|
144
|
+
against the release feed.
|
|
145
|
+
help [group] [verb] Print help for a group or a verb.
|
|
146
|
+
|
|
147
|
+
Run 'rcf help <verb>' for per-verb help.
|
|
148
|
+
`;
|
|
149
|
+
|
|
129
150
|
const DISCOVER_HELP = `Usage: rcf discover <verb> [options]
|
|
130
151
|
|
|
131
152
|
Learn what is already true for this project: classify supplied
|
|
@@ -223,6 +244,7 @@ Run 'rcf help audit <verb>' for per-verb help.
|
|
|
223
244
|
`;
|
|
224
245
|
|
|
225
246
|
export const GROUP_HELP = {
|
|
247
|
+
core: CORE_GROUP_HELP,
|
|
226
248
|
discover: DISCOVER_HELP,
|
|
227
249
|
define: DEFINE_HELP,
|
|
228
250
|
build: BUILD_GROUP_HELP,
|
|
@@ -286,6 +308,7 @@ export const CORE_HELP = {
|
|
|
286
308
|
doctor: DOCTOR_HELP,
|
|
287
309
|
guidance: GUIDANCE_HELP,
|
|
288
310
|
mcp: MCP_HELP,
|
|
311
|
+
version: VERSION_HELP,
|
|
289
312
|
};
|
|
290
313
|
|
|
291
314
|
/**
|
|
@@ -319,7 +342,10 @@ export async function main(argv, deps = {}) {
|
|
|
319
342
|
stdout.write(GROUP_HELP[first]);
|
|
320
343
|
return 0;
|
|
321
344
|
}
|
|
322
|
-
|
|
345
|
+
// `core` is a documentation grouping - core verbs dispatch at the
|
|
346
|
+
// top level, so `rcf help core <verb>` delegates to the same
|
|
347
|
+
// per-verb block that `rcf help <verb>` prints.
|
|
348
|
+
const body = first === 'core' ? CORE_HELP[verb] : HELP_MAP[first][verb];
|
|
323
349
|
if (!body) {
|
|
324
350
|
stderr.write(`[error] usage no help topic '${first} ${verb}'\n`);
|
|
325
351
|
stdout.write(GROUP_HELP[first]);
|