@c4a/context-cli 0.7.11 → 0.7.13

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (25) hide show
  1. package/cli.js +1269 -984
  2. package/indexers/contracts/profile-contract.json +245 -245
  3. package/indexers/release-manifest.json +1 -1
  4. package/package.json +12 -12
  5. package/parserEntryWorker.js +12 -1
  6. package/plugins/VERSION +1 -1
  7. package/plugins/claude/.claude-plugin/plugin.json +1 -1
  8. package/plugins/codex/.codex-plugin/plugin.json +2 -2
  9. package/plugins/cursor/.cursor-plugin/plugin.json +1 -1
  10. package/providers/context/graphs/workspace.yaml +3 -1
  11. package/providers/context/manifest.json +34 -25
  12. package/providers/context/provider.yaml +1 -1
  13. package/providers/context/resources/manuals/guides/knowledge-updates.md +89 -19
  14. package/providers/context/resources/manuals/guides/package-outputs.md +4 -0
  15. package/providers/context/resources/manuals/guides/page-customization.md +93 -0
  16. package/providers/context/resources/manuals/guides/workspace-prepare.md +3 -0
  17. package/providers/context/resources/manuals/reference/project-api.md +6 -0
  18. package/providers/context/resources/procedures/close-and-build.md +10 -15
  19. package/providers/context/resources/procedures/document-capture.md +7 -1
  20. package/providers/context/resources/procedures/knowledge-maintenance.md +5 -3
  21. package/providers/context/resources/procedures/knowledge-updates.md +89 -19
  22. package/providers/context/resources/procedures/production-stage-files.md +6 -0
  23. package/providers/context/resources/procedures/workspace-prepare.md +3 -0
  24. package/providers/context/skills/record-workspace-version/SKILL.md +6 -0
  25. package/providers/context/skills/work-production-stage/SKILL.md +5 -0
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "protocol": "context.indexer.cli-release-manifest/v1",
3
3
  "package": "@c4a/context-cli",
4
- "version": "0.7.11",
4
+ "version": "0.7.13",
5
5
  "issuer": "context4ai/context",
6
6
  "bundles": [
7
7
  {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@c4a/context-cli",
3
- "version": "0.7.11",
3
+ "version": "0.7.13",
4
4
  "type": "module",
5
5
  "description": "Local runtime and Agent integration for traceable knowledge production",
6
6
  "license": "MIT",
@@ -24,17 +24,17 @@
24
24
  },
25
25
  "dependencies": {
26
26
  "@c4a/agent-graph": "0.3.0",
27
- "@c4a/context": "0.7.11",
28
- "@c4a/extract": "0.7.11",
29
- "@c4a/extract-contract": "0.7.11",
30
- "@c4a/extract-go": "0.7.11",
31
- "@c4a/extract-mdx": "0.7.11",
32
- "@c4a/extract-proto": "0.7.11",
33
- "@c4a/extract-rush": "0.7.11",
34
- "@c4a/extract-sql": "0.7.11",
35
- "@c4a/extract-style": "0.7.11",
36
- "@c4a/extract-thrift": "0.7.11",
37
- "@c4a/extract-ts": "0.7.11",
27
+ "@c4a/context": "0.7.13",
28
+ "@c4a/extract": "0.7.13",
29
+ "@c4a/extract-contract": "0.7.13",
30
+ "@c4a/extract-go": "0.7.13",
31
+ "@c4a/extract-mdx": "0.7.13",
32
+ "@c4a/extract-proto": "0.7.13",
33
+ "@c4a/extract-rush": "0.7.13",
34
+ "@c4a/extract-sql": "0.7.13",
35
+ "@c4a/extract-style": "0.7.13",
36
+ "@c4a/extract-thrift": "0.7.13",
37
+ "@c4a/extract-ts": "0.7.13",
38
38
  "commander": "^11.0.0",
39
39
  "fast-xml-parser": "^5.10.1",
40
40
  "handlebars": "^4.7.8",
@@ -4545,7 +4545,18 @@ var init_packageSite = __esm(() => {
4545
4545
  description: exports_external.string().optional(),
4546
4546
  lang: exports_external.string().min(1).default("en-US"),
4547
4547
  base: exports_external.string().regex(/^\/(?:[a-zA-Z0-9_-]+\/)*$/, "Use / or a slash-delimited deployment path, such as /docs/").default("/"),
4548
- home: packageSiteHomeSchema.optional()
4548
+ home: packageSiteHomeSchema.optional(),
4549
+ extensions: exports_external.object({
4550
+ root: exports_external.string().regex(/^src\/(?:[a-zA-Z0-9_-]+\/)*[a-zA-Z0-9_-]+$/).default("src/site"),
4551
+ slots: exports_external.object({
4552
+ banner: exports_external.union([exports_external.string().min(1), exports_external.literal(false)]).optional(),
4553
+ knowledge: exports_external.union([exports_external.string().min(1), exports_external.literal(false)]).optional(),
4554
+ resources: exports_external.union([exports_external.string().min(1), exports_external.literal(false)]).optional(),
4555
+ footer: exports_external.union([exports_external.string().min(1), exports_external.literal(false)]).optional(),
4556
+ floating: exports_external.union([exports_external.string().min(1), exports_external.literal(false)]).optional()
4557
+ }).strict().optional(),
4558
+ pages: exports_external.record(exports_external.string().regex(/^[a-zA-Z0-9_-]+$/), exports_external.string().min(1)).optional()
4559
+ }).strict().optional()
4549
4560
  }).strict();
4550
4561
  });
4551
4562
 
package/plugins/VERSION CHANGED
@@ -1 +1 @@
1
- 0.7.11
1
+ 0.7.13
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "c4a",
3
3
  "description": "Start or continue a project-local knowledge workspace through one graph-routed entry.",
4
- "version": "0.7.11",
4
+ "version": "0.7.13",
5
5
  "author": {
6
6
  "name": "c4a"
7
7
  },
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "c4a",
3
- "version": "0.7.11",
3
+ "version": "0.7.13",
4
4
  "description": "Start or continue a project-local knowledge workspace through one graph-routed entry.",
5
5
  "author": { "name": "c4a" },
6
6
  "homepage": "https://github.com/context4ai/c4a",
@@ -10,7 +10,7 @@
10
10
  "skills": "./skills/",
11
11
  "interface": {
12
12
  "displayName": "C4A Context",
13
- "shortDescription": "Initialize and advance a local, source-linked project knowledge workspace.\nv0.7.11",
13
+ "shortDescription": "Initialize and advance a local, source-linked project knowledge workspace.\nv0.7.13",
14
14
  "longDescription": "Create a Context workspace and use agent-guided next steps to register sources, run extraction, review candidates, build package outputs, and verify health without silently mutating source repositories.",
15
15
  "developerName": "c4a",
16
16
  "category": "Productivity",
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "c4a",
3
3
  "displayName": "C4A Context",
4
- "version": "0.7.11",
4
+ "version": "0.7.13",
5
5
  "description": "Start or continue a project-local knowledge workspace through one graph-routed entry.",
6
6
  "author": {
7
7
  "name": "Context4AI",
@@ -135,7 +135,7 @@ nodes:
135
135
  reasonCode: route.capture.pending-target
136
136
  action: actions/capture-next.yaml
137
137
  satisfiedBy:
138
- - path: capture.complete
138
+ - path: capture.route_satisfied
139
139
  equals: true
140
140
  resources:
141
141
  required:
@@ -224,6 +224,7 @@ nodes:
224
224
  - resources/views/package-current.yaml
225
225
  recommended:
226
226
  - resources/manuals/guides/package-outputs.md
227
+ - resources/manuals/guides/page-customization.md
227
228
  - resources/manuals/reference/package-templates.md
228
229
  - resources/manuals/reference/template-variables.md
229
230
 
@@ -241,6 +242,7 @@ nodes:
241
242
  - resources/views/package-current.yaml
242
243
  recommended:
243
244
  - resources/manuals/guides/package-outputs.md
245
+ - resources/manuals/guides/page-customization.md
244
246
  - resources/manuals/reference/project-api.md
245
247
  - resources/manuals/reference/package-templates.md
246
248
  - resources/manuals/reference/template-variables.md
@@ -2,7 +2,7 @@
2
2
  "schema": "agent-graph.bundle.v1",
3
3
  "provider": {
4
4
  "id": "c4a/context",
5
- "version": "0.7.11"
5
+ "version": "0.7.13"
6
6
  },
7
7
  "providerManifest": "provider.yaml",
8
8
  "graphs": [
@@ -14,7 +14,7 @@
14
14
  {
15
15
  "id": "workspace",
16
16
  "path": "graphs/workspace.yaml",
17
- "digest": "sha256:43eba7c45070fc2fec9c1f86af8e6190c49ebef8b729cb444701011dca8780be"
17
+ "digest": "sha256:2904eb61889037ffdcdf878c807187f9acf807a9409111ee4de4c5b703b15d5d"
18
18
  }
19
19
  ],
20
20
  "actions": [
@@ -188,17 +188,22 @@
188
188
  {
189
189
  "id": "context.sdk.package-outputs",
190
190
  "path": "resources/manuals/guides/package-outputs.md",
191
- "digest": "sha256:a8c66facc2ad175324796e2478d6ca50e0c83b5d49eec0251d8548c3717a062b"
191
+ "digest": "sha256:31d1159d9c591755c1f7560928c230a86a84a33f0bd86d1866d4eb94078c075f"
192
192
  },
193
193
  {
194
194
  "id": "context.sdk.package-templates",
195
195
  "path": "resources/manuals/reference/package-templates.md",
196
196
  "digest": "sha256:8d512d232ea5157717eca73357a213ab2449d83cf98bec217621aff79eda0216"
197
197
  },
198
+ {
199
+ "id": "context.sdk.page-customization",
200
+ "path": "resources/manuals/guides/page-customization.md",
201
+ "digest": "sha256:57695bbbe3223c3c695029747856baae9e230059848e8f37506f908e843f9b0e"
202
+ },
198
203
  {
199
204
  "id": "context.sdk.project-api",
200
205
  "path": "resources/manuals/reference/project-api.md",
201
- "digest": "sha256:6225dc08f1a4362eee72e0fba4d8639d20d535818766d8a6b181396ebbb94f3f"
206
+ "digest": "sha256:a65131d5cd351d8353f5028303ab1d75447f5d0c09496fd8ec83bb5d76adfd78"
202
207
  },
203
208
  {
204
209
  "id": "context.sdk.template-variables",
@@ -278,12 +283,12 @@
278
283
  {
279
284
  "id": "procedure.close-and-build",
280
285
  "path": "resources/procedures/close-and-build.md",
281
- "digest": "sha256:c2f39abc2867e73a529ded2e475276738f62a4b61811b7792a49d6e358865a74"
286
+ "digest": "sha256:4025f98f95ac0c1818d2be3d6c33e556bd462b0510fd88227587d490ae01aa4c"
282
287
  },
283
288
  {
284
289
  "id": "procedure.document-capture",
285
290
  "path": "resources/procedures/document-capture.md",
286
- "digest": "sha256:46a8231e92fcb19db7918938970ace8b4e4c22153fa8cbf0bb8100275bfbbfcf"
291
+ "digest": "sha256:f09100425c2b89a126c35c4490b0644519a4eee214114f2f0f52b6ea20467a04"
287
292
  },
288
293
  {
289
294
  "id": "procedure.homogeneous-source-review",
@@ -293,7 +298,7 @@
293
298
  {
294
299
  "id": "procedure.knowledge-maintenance",
295
300
  "path": "resources/procedures/knowledge-maintenance.md",
296
- "digest": "sha256:42fc008c8b25df86b7a1e26d521003bc8e3a69cf16948365e93c41f896c0c315"
301
+ "digest": "sha256:f2cc36cb2425cf0ac96a2ea4f114ed5ce872c3711b82bdc25fdc71e42a2849b7"
297
302
  },
298
303
  {
299
304
  "id": "procedure.knowledge-review",
@@ -303,7 +308,7 @@
303
308
  {
304
309
  "id": "procedure.knowledge-updates",
305
310
  "path": "resources/procedures/knowledge-updates.md",
306
- "digest": "sha256:55deff10c4ad8b2c66d5fcf8c2b7592c1533cdba22cdb1cb6a63bbf9bc42809c"
311
+ "digest": "sha256:f43943fdf9265e5181c2e8cf3753d981fc9f59a44ee11b5beac404ec481344ea"
307
312
  },
308
313
  {
309
314
  "id": "procedure.note",
@@ -328,7 +333,7 @@
328
333
  {
329
334
  "id": "procedure.production-stage-files",
330
335
  "path": "resources/procedures/production-stage-files.md",
331
- "digest": "sha256:c5ff9e138ecd3f90d04ac834a82b2764f583da105ca23e3e07dfb816349d6c32"
336
+ "digest": "sha256:d093acf81a07b85cfe2a78e71f7ab301fa8c72e3edac3f5de990b1ff7eaf12f0"
332
337
  },
333
338
  {
334
339
  "id": "procedure.project-configuration",
@@ -388,7 +393,7 @@
388
393
  {
389
394
  "id": "procedure.workspace-prepare",
390
395
  "path": "resources/procedures/workspace-prepare.md",
391
- "digest": "sha256:fdbfdeb1486c998785b41569cf6ed57c744e6265d11610d320a60ede0ebbc2c8"
396
+ "digest": "sha256:9bffefd9d4ac0ab46b9274a07c1a0a0b809659fe22a0bb28e2c78a6dc403a999"
392
397
  },
393
398
  {
394
399
  "id": "procedure.workspace-restore",
@@ -561,11 +566,11 @@
561
566
  },
562
567
  {
563
568
  "path": "graphs/workspace.yaml",
564
- "digest": "sha256:43eba7c45070fc2fec9c1f86af8e6190c49ebef8b729cb444701011dca8780be"
569
+ "digest": "sha256:2904eb61889037ffdcdf878c807187f9acf807a9409111ee4de4c5b703b15d5d"
565
570
  },
566
571
  {
567
572
  "path": "provider.yaml",
568
- "digest": "sha256:64a5026a5b0e19e64ab902d11d9f648640596c3d56367d13e4e3ae9550388aea"
573
+ "digest": "sha256:74fa6ece89e6d9f654ea0fa3b988488883f3b55b747e436db0eb31a420e66f78"
569
574
  },
570
575
  {
571
576
  "path": "resources/contracts/indexer-provider-guide.yaml",
@@ -621,7 +626,7 @@
621
626
  },
622
627
  {
623
628
  "path": "resources/manuals/guides/knowledge-updates.md",
624
- "digest": "sha256:9c26775c38090705524e24ef1b5a78554636f1732c8833e8e69e9f6993c6b206"
629
+ "digest": "sha256:fe8c9e4dbe7413bce3c2007bf230f1312fca31de69d434d0c41171a27e1a68f5"
625
630
  },
626
631
  {
627
632
  "path": "resources/manuals/guides/lark-resources.md",
@@ -637,7 +642,11 @@
637
642
  },
638
643
  {
639
644
  "path": "resources/manuals/guides/package-outputs.md",
640
- "digest": "sha256:a8c66facc2ad175324796e2478d6ca50e0c83b5d49eec0251d8548c3717a062b"
645
+ "digest": "sha256:31d1159d9c591755c1f7560928c230a86a84a33f0bd86d1866d4eb94078c075f"
646
+ },
647
+ {
648
+ "path": "resources/manuals/guides/page-customization.md",
649
+ "digest": "sha256:57695bbbe3223c3c695029747856baae9e230059848e8f37506f908e843f9b0e"
641
650
  },
642
651
  {
643
652
  "path": "resources/manuals/guides/sessions.md",
@@ -649,7 +658,7 @@
649
658
  },
650
659
  {
651
660
  "path": "resources/manuals/guides/workspace-prepare.md",
652
- "digest": "sha256:0ee9b75fc2fa3237eef2119a90f217e913297cb036a4653a12369f2b00147ad9"
661
+ "digest": "sha256:a0f801e442331135274de04cfc4006c4641da50421d5e80a47f23b329dd13766"
653
662
  },
654
663
  {
655
664
  "path": "resources/manuals/guides/workspace-restore.md",
@@ -665,7 +674,7 @@
665
674
  },
666
675
  {
667
676
  "path": "resources/manuals/reference/project-api.md",
668
- "digest": "sha256:6225dc08f1a4362eee72e0fba4d8639d20d535818766d8a6b181396ebbb94f3f"
677
+ "digest": "sha256:a65131d5cd351d8353f5028303ab1d75447f5d0c09496fd8ec83bb5d76adfd78"
669
678
  },
670
679
  {
671
680
  "path": "resources/manuals/reference/template-variables.md",
@@ -677,11 +686,11 @@
677
686
  },
678
687
  {
679
688
  "path": "resources/procedures/close-and-build.md",
680
- "digest": "sha256:c2f39abc2867e73a529ded2e475276738f62a4b61811b7792a49d6e358865a74"
689
+ "digest": "sha256:4025f98f95ac0c1818d2be3d6c33e556bd462b0510fd88227587d490ae01aa4c"
681
690
  },
682
691
  {
683
692
  "path": "resources/procedures/document-capture.md",
684
- "digest": "sha256:46a8231e92fcb19db7918938970ace8b4e4c22153fa8cbf0bb8100275bfbbfcf"
693
+ "digest": "sha256:f09100425c2b89a126c35c4490b0644519a4eee214114f2f0f52b6ea20467a04"
685
694
  },
686
695
  {
687
696
  "path": "resources/procedures/homogeneous-source-review.md",
@@ -689,7 +698,7 @@
689
698
  },
690
699
  {
691
700
  "path": "resources/procedures/knowledge-maintenance.md",
692
- "digest": "sha256:42fc008c8b25df86b7a1e26d521003bc8e3a69cf16948365e93c41f896c0c315"
701
+ "digest": "sha256:f2cc36cb2425cf0ac96a2ea4f114ed5ce872c3711b82bdc25fdc71e42a2849b7"
693
702
  },
694
703
  {
695
704
  "path": "resources/procedures/knowledge-review.md",
@@ -697,7 +706,7 @@
697
706
  },
698
707
  {
699
708
  "path": "resources/procedures/knowledge-updates.md",
700
- "digest": "sha256:55deff10c4ad8b2c66d5fcf8c2b7592c1533cdba22cdb1cb6a63bbf9bc42809c"
709
+ "digest": "sha256:f43943fdf9265e5181c2e8cf3753d981fc9f59a44ee11b5beac404ec481344ea"
701
710
  },
702
711
  {
703
712
  "path": "resources/procedures/note.md",
@@ -717,7 +726,7 @@
717
726
  },
718
727
  {
719
728
  "path": "resources/procedures/production-stage-files.md",
720
- "digest": "sha256:c5ff9e138ecd3f90d04ac834a82b2764f583da105ca23e3e07dfb816349d6c32"
729
+ "digest": "sha256:d093acf81a07b85cfe2a78e71f7ab301fa8c72e3edac3f5de990b1ff7eaf12f0"
721
730
  },
722
731
  {
723
732
  "path": "resources/procedures/project-configuration.md",
@@ -765,7 +774,7 @@
765
774
  },
766
775
  {
767
776
  "path": "resources/procedures/workspace-prepare.md",
768
- "digest": "sha256:fdbfdeb1486c998785b41569cf6ed57c744e6265d11610d320a60ede0ebbc2c8"
777
+ "digest": "sha256:9bffefd9d4ac0ab46b9274a07c1a0a0b809659fe22a0bb28e2c78a6dc403a999"
769
778
  },
770
779
  {
771
780
  "path": "resources/procedures/workspace-restore.md",
@@ -833,7 +842,7 @@
833
842
  },
834
843
  {
835
844
  "path": "skills/record-workspace-version/SKILL.md",
836
- "digest": "sha256:c0e7415b362123deddcc1af61374cd50e5069e3b6db1dda516a21671734a1b1f"
845
+ "digest": "sha256:695b6b384a94743de08451f447bc8a135b6a7446dfab8e9b52ae16de54fd2903"
837
846
  },
838
847
  {
839
848
  "path": "skills/recover-workspace/SKILL.md",
@@ -853,12 +862,12 @@
853
862
  },
854
863
  {
855
864
  "path": "skills/work-production-stage/SKILL.md",
856
- "digest": "sha256:d2ba49a86ba49f312a0e7b817164a8d41596aa18f7e20b41036d90946760a5ce"
865
+ "digest": "sha256:5bb250f42d5d28243daca30427b5fd9db52127460862748fc36935f0e0d0f754"
857
866
  }
858
867
  ],
859
868
  "graphDependencies": {
860
869
  "indexer": [],
861
870
  "workspace": []
862
871
  },
863
- "digest": "sha256:b5152e39b14bbdc8eab34d0053a011d97d108a7b816cdbce59995e8364563783"
872
+ "digest": "sha256:cac0ab245b580f8a5adb9c4d03b55702d36559079adc7442a650087c91b0adca"
864
873
  }
@@ -1,6 +1,6 @@
1
1
  schema: agent-graph.provider.v1
2
2
  id: c4a/context
3
- version: 0.7.11
3
+ version: 0.7.13
4
4
  name: Context workflow
5
5
  description: Internal work contract for Context knowledge workspaces.
6
6
  graphs:
@@ -107,12 +107,11 @@ configuration/template approval, before the final build. The record response
107
107
  returns the next workspace Route, so no extra status call is needed. Build retries
108
108
  reuse the recorded version when formal content is unchanged. If build preparation
109
109
  or rendering fails and formal corrections are needed, `version inspect` returns
110
- `reusable_version` for the current entry only while it has no successful build or
111
- publication receipt. Submit that same version with the complete iteration's title,
112
- changes and triggers, including the repair; this replaces the pending changelog
113
- entry rather than appending another version. Do not submit only the repair and
114
- lose the original delivery description. Once built or published, the version is
115
- sealed and further formal changes require an increase. Intermediate batches
110
+ `reusable_version` for an untagged current entry. Before amending, read the
111
+ publication target's remote version using the distribution skill. An unpublished
112
+ preview may reuse its version with the complete iteration's title, changes and
113
+ triggers; preserve the original delivery description. Published content requires
114
+ an increasing version. A local build alone does not seal a version. Intermediate batches
116
115
  do not each receive a version.
117
116
 
118
117
  The workspace AGENTS.md and version-writing instructions require each entry's
@@ -149,19 +148,23 @@ are `initial`, `note`, `sessions`, `mr`, `module`, `document`, `navigation`,
149
148
  `repair`, `dist`, and `other`. Agent-written fields describe the actual diff and
150
149
  conversation; they must not expose credentials, raw transcripts or private IDs.
151
150
 
152
- The CLI writes `changelog.yaml`, generated `CHANGELOG.md`, `package.json` and the
153
- `.context-version.json` content baseline together. Keep these formal files with
154
- the workspace; do not hand-edit generated baselines. Git-managed and unignored
155
- new files are compared (without Git, non-runtime workspace files are compared).
156
- Version metadata itself, `dist`, `.tmp` and dependencies do not cause changes.
157
-
158
- Successful builds record version and per-package hashes in `.context-builds.json`.
159
- They do not increase versions. Before publishing, `context version publish-check
160
- --format json` compares against `.context-published.json`. A same-version changed
161
- output requires a patch using `version inspect --publish` and a `dist` trigger,
162
- then a rebuild. Record `version published --hash <checked-hash> --receipt
163
- <successful-publication-reference> --format json` only after external success.
164
- No command commits, tags or uploads automatically.
151
+ The CLI updates `package.json`, `changelog.yaml` and generated `CHANGELOG.md` together.
152
+ `context version inspect --base <commit-or-tag> --format json` compares the actual
153
+ workspace files with Git, including untracked files. Without an explicit base it
154
+ uses the current version's `v<version>` tag when available, otherwise HEAD; HEAD
155
+ is not proof of publication. Review article bodies, assets, structure, navigation
156
+ and templates, not structure alone. Without Git, inspection reports local files.
157
+ A disposable `.tmp` checkpoint suppresses repeated recording in an uncommitted
158
+ iteration. Losing it does not lose knowledge or prove a new publication.
159
+
160
+ There are no root-level Context version/build/publication receipts to maintain.
161
+ Build freshness uses the existing local package cache. The CLI does not seal a
162
+ version merely because a preview was built. Before reusing a version, check the
163
+ actual publication target and Git tags; a published version requires an increase.
164
+ Publication belongs to the installed distribution tool. Record remote receipts
165
+ in its configuration or the existing work summary, separately for each target.
166
+ A successful authorized commit/tag identifies the delivered source; never create
167
+ one automatically, and never treat Git success as platform publication success.
165
168
 
166
169
  Website history is available at `changelog.html`: cards are newest first, the
167
170
  latest three expanded and older cards collapsed. The History button beside the
@@ -197,6 +200,66 @@ coverage by mechanically placing every new page under an unrelated catch-all.
197
200
  Build reports missing bindings for the Agent to resolve; it does not classify
198
201
  content. Moving a menu entry does not change the article URL.
199
202
 
203
+ ### Reader tasks, names and reading order
204
+
205
+ Read the affected articles' bodies before changing their categories or titles.
206
+ Titles and outlines help locate material; they do not settle its main reader task.
207
+ During initial planning, keep names and placement provisional until the relevant
208
+ material supports them. Classify by the question the page primarily answers and
209
+ its intended reader, rather than its collection, source path or isolated words:
210
+
211
+ | Main reader task | Organizing emphasis |
212
+ | --- | --- |
213
+ | Understand a business process | Participants, rules, decisions and lifecycle |
214
+ | Understand an implementation | Components, data changes, calls and failure handling |
215
+ | Integrate or use a capability | Prerequisites, setup, contracts and usage |
216
+ | Diagnose or recover from a problem | Symptoms, checks, causes, actions and verification |
217
+
218
+ These distinctions guide placement, not a required set of top-level directories.
219
+ A page explaining retry scheduling and persistence belongs with its implementation;
220
+ a page explaining how to recover a stalled worker serves troubleshooting. The word
221
+ "retry" alone decides neither. Choose a primary home for a mixed page and link
222
+ related tasks without duplicating the same overview across categories.
223
+
224
+ Give each directory a concrete shared subject or reader task. At every parent,
225
+ keep its children either all directories or all articles. Place an overview in
226
+ the appropriate article group when the parent contains directories. Avoid empty
227
+ category scaffolding and chains of single-article directories that add no useful
228
+ choice. A residual "Other" group, when warranted, comes last; it must not absorb
229
+ articles whose purpose fits an existing group. Do not invent a fixed depth,
230
+ number of categories or page quota to make the tree look uniform.
231
+
232
+ Keep directory and article titles concise and specific to their actual subject.
233
+ Name the object and useful task, rather than enumerating every section heading.
234
+ For example, prefer "Client authentication" to "Client tokens, configuration,
235
+ requests, refresh and errors" when those sections all explain authentication.
236
+ Retain a platform or product name only when it distinguishes otherwise ambiguous
237
+ topics. Keep an existing accurate title when it already works; a necessary
238
+ technical name need not be shortened just to meet a word count.
239
+
240
+ The Agent manually arranges siblings for reading: a useful overview, prerequisites,
241
+ the main tasks or process sequence, then later maintenance and reference material
242
+ where applicable. Use a numbered list or ordered outline to review that proposal,
243
+ then assign explicit, distinct `order` values among siblings in the knowledge-map
244
+ adjustment, for example 10, 20 and 30. The list is an editing plan; persisted
245
+ `order` values determine navigation. Reordering YAML/JSON entries or changing the
246
+ plan's list order alone does not change the site. Paths, internal keys, alphabetical
247
+ order and source-file order are not substitutes for a reader sequence. Keep order
248
+ numbers out of titles. This navigation order is separate from the order in which
249
+ workers write their drafts.
250
+
251
+ For a long or compound page, inspect its content before suggesting a split or
252
+ merge. Keep one coherent task together, and separate independently useful tasks
253
+ only when their supported content warrants it. A long title or many headings
254
+ alone is insufficient. Preserve useful detail and links, and retain article IDs,
255
+ paths and unaffected sections when the reader task is unchanged. A navigation-only
256
+ change does not require a prose rewrite or file migration; changing its label does
257
+ not silently rename the approved article. Needed title or content revisions use
258
+ the existing revision and Review flow. Splits and merges use ordinary article
259
+ tasks, link repair and any explicit retirement after replacement content is
260
+ delivered. These are Agent editorial decisions, not new CLI checks or approval
261
+ gates.
262
+
200
263
  ## Edit one section or review part of a batch
201
264
 
202
265
  The current approved-revision Route accepts either full `markdown` or explicit
@@ -412,6 +475,13 @@ and the same Review/build route.
412
475
 
413
476
  ## Adjust or roll back current work
414
477
 
478
+ Read `context task adjust --schema --format yaml` for the source-adjustment
479
+ and knowledge-map input variants; no workspace or input file is required.
480
+ After restoring an unavailable source, follow the recovery result's
481
+ `next_action` to refresh the captured planning materials. Preparation can return
482
+ a new stage: use its paths and identity when resubmitting your plan. Restoring
483
+ the checkout alone does not replace an existing stage's captured material.
484
+
415
485
  For an explicit same-task change to native Indexer source inputs, use
416
486
  `context task adjust --input <file|-> --format json` with `scopes` containing the
417
487
  selected `source_ref` and optional `module_refs`, plus an `instruction` explaining
@@ -31,6 +31,10 @@ change that silently enables websites for existing packages.
31
31
 
32
32
  ### Static documentation website
33
33
 
34
+ For business pages, homepage slots and a bottom-right chat/bot widget, read
35
+ [Page Content Customization](./page-customization.md). Presentation sources live
36
+ under `src/site/`; keep generated knowledge separate.
37
+
34
38
  To include the default browser-readable site, enable `site` on the same
35
39
  package. The normal `context build` produces both the Agent KB and a standalone
36
40
  `dist/<base>-site/` directory containing `index.html`, article HTML,
@@ -0,0 +1,93 @@
1
+ ---
2
+ id: context.sdk.page-customization
3
+ kind: procedure
4
+ mediaType: text/markdown
5
+ ---
6
+
7
+ # Page content customization
8
+
9
+ Keep trusted website code in `src/site/`. It is presentation code, not captured
10
+ material or approved knowledge. Configure it in the existing `kbPackage.site`:
11
+
12
+ ```ts
13
+ site: {
14
+ title: "Engineering handbook",
15
+ extensions: {
16
+ root: "src/site",
17
+ slots: {
18
+ banner: "components/Banner.vue",
19
+ floating: "components/Chat.vue",
20
+ },
21
+ pages: { support: "pages/support.md" },
22
+ },
23
+ }
24
+ ```
25
+
26
+ Paths are relative to `root`. The directory can contain Vue components, CSS,
27
+ Markdown and imported assets. Use relative imports within this directory;
28
+ declare external dependencies in the workspace package manifest. Do not put
29
+ credentials or private configuration in frontend files. Hidden files,
30
+ `node_modules` and `dist` are not copied; symlinks are rejected.
31
+
32
+ ## Homepage and floating slots
33
+
34
+ | Slot | Default | Customization |
35
+ | --- | --- | --- |
36
+ | `banner` | Existing homepage hero and actions | Replace with a component |
37
+ | `knowledge` | Knowledge-map card group | Replace with a component |
38
+ | `resources` | Resource card group | Replace with a component |
39
+ | `footer` | Existing homepage footer | Replace with a component |
40
+ | `floating` | Empty | Client-only component fixed at the bottom right on all pages |
41
+
42
+ Omit a slot to retain its default; set it to `false` to hide it. A component
43
+ replaces only its slot, not the global navigation, language switch or article
44
+ provenance. Components can use VitePress `useData()` and `useRoute()` for theme,
45
+ page and route information. Import scoped CSS from components for local styling.
46
+
47
+ The floating component owns its button, chat/bot panel and open/close behavior.
48
+ Keep its panel within the viewport and preserve keyboard focus and close controls.
49
+ Load expensive chat SDKs when opened. Its component import is client-only, but
50
+ other components must support static rendering: use `onMounted` for browser APIs.
51
+ The static website supplies no chat backend or secret storage; use an authorized
52
+ business service for authentication and requests. A service failure must not
53
+ prevent reading the handbook.
54
+
55
+ ## Custom pages and navigation
56
+
57
+ Each `pages` key becomes `/custom/<key>.html` under the configured site base.
58
+ A page is trusted Markdown and may import Vue components, for example:
59
+
60
+ ```md
61
+ # Support
62
+
63
+ <script setup>
64
+ import SupportPanel from '../components/SupportPanel.vue'
65
+ </script>
66
+
67
+ <SupportPanel />
68
+ ```
69
+
70
+ Place it using the existing knowledge-map entry structure, with
71
+ `target: { artifact_ref: "site:support" }`. Set `parent`, `title` and `order`
72
+ as for other directory entries; do not create a second menu configuration.
73
+ The `site:` namespace is reserved for website pages; do not use `section_key`
74
+ on these targets. Undeclared targets fail website building with a diagnostic.
75
+ Pages without directory entries remain directly accessible. Multiple entries
76
+ can reference one page without duplicating content.
77
+
78
+ These pages are website-only: they are not approved articles and do not enter
79
+ the knowledge package or LLM Docs. Update formal articles through the existing
80
+ knowledge revision workflow, not through a custom page that shadows their URLs.
81
+
82
+ ## Build and delivery
83
+
84
+ Use the existing package build after editing configuration or presentation files;
85
+ site customization does not require capture, Indexer planning or a new review
86
+ gate. Existing authorization for building and deployment still applies.
87
+ Extension files and workspace dependency manifests participate in build
88
+ fingerprints. Build errors preserve previous outputs. Never edit the generated
89
+ `.tmp` website or `dist` as the source of customization.
90
+
91
+ Preview the homepage, custom pages and floating panel on desktop and mobile,
92
+ including a non-root `site.base`, dark mode and keyboard navigation. Publish only
93
+ the resulting website directory, not the source tree or workspace credentials.
@@ -67,6 +67,9 @@ workflow bundle: `repository-source-recovery.md` beside this guide and
67
67
  `../../schemas/repository-source-recovery.schema.json`. Reuse a matching local
68
68
  checkout or, when authorized, clone into a bounded location using
69
69
  `context source restore --input <workspace-input-file> --format json`.
70
+ Follow its `next_action` before resuming a plan: an active production stage may
71
+ need preparation to refresh previously unavailable material. Use the stage and
72
+ paths returned by preparation, not a payload's previous stage identity.
70
73
  Group modules sharing a remote and fixed commit; do not clone per module.
71
74
  Check registered commit and module paths. Never reset a supplied dirty checkout.
72
75
  Authentication or checkout problems can be diagnosed with Host Git tools;
@@ -193,6 +193,12 @@ or repository links. Knowledge map is projected from
193
193
  `src/knowledge-map.yaml` independently of KB directories; see
194
194
  [Package Outputs](../guides/package-outputs.md#optional-static-documentation-website).
195
195
 
196
+ `site.extensions` optionally names a trusted `src/site` root, homepage and floating
197
+ `slots`, and custom Markdown `pages`. Place custom pages in the same knowledge map
198
+ with `target.artifact_ref: "site:<page-key>"`. See
199
+ [Page content customization](../guides/page-customization.md) for the configuration
200
+ and the boundary between presentation code and approved knowledge.
201
+
196
202
  ## Knowledge requirements and Indexer Skills
197
203
 
198
204
  When `src/indexers.yaml` is absent, the configuration Route supplies its schema.