@c4a/context 0.7.14-beta.1 → 0.7.14
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.
|
@@ -194,6 +194,48 @@ coverage by mechanically placing every new page under an unrelated catch-all.
|
|
|
194
194
|
Build reports missing bindings for the Agent to resolve; it does not classify
|
|
195
195
|
content. Moving a menu entry does not change the article URL.
|
|
196
196
|
|
|
197
|
+
### Preserve established navigation intent
|
|
198
|
+
|
|
199
|
+
Before placing new knowledge, read the workspace's AGENTS.md, current
|
|
200
|
+
`src/knowledge-map.yaml`, existing overview pages and relevant category/article
|
|
201
|
+
bodies. Reuse any settled directory intent in the current plan. Establish what
|
|
202
|
+
each affected category helps readers do and why adjacent categories are separate;
|
|
203
|
+
do not infer this from labels alone. Read only affected branches and enough
|
|
204
|
+
neighboring content to distinguish them, not the entire library on every update.
|
|
205
|
+
If intent remains ambiguous, state the proposed interpretation in the plan.
|
|
206
|
+
|
|
207
|
+
Prefer, in order: revise an existing article; add a page to a matching category;
|
|
208
|
+
add a coherent child category; propose a top-level change only when existing
|
|
209
|
+
categories cannot serve a distinct, lasting reader need. Do not create a top-level
|
|
210
|
+
category merely because a source, repository, product, team or batch is new.
|
|
211
|
+
For example, a new assistant's usage guide, frontend integration and runtime
|
|
212
|
+
architecture can belong in existing usage, frontend and backend categories, with
|
|
213
|
+
cross-links for the shared product. Keep them together only when the site's
|
|
214
|
+
established organizing principle supports that choice.
|
|
215
|
+
|
|
216
|
+
In the work-start report or current plan, briefly state the affected articles'
|
|
217
|
+
intended placements and reused category intent. For proposed top-level additions,
|
|
218
|
+
renames, removals or changes of purpose, show the before/after tree, why reuse is
|
|
219
|
+
insufficient, affected existing pages and reading order. Present that change for
|
|
220
|
+
human review before applying it. This uses the existing report feedback where
|
|
221
|
+
available; do not add a new CLI state, schema field or routine per-article gate.
|
|
222
|
+
Explicit user approval of that concrete structure is sufficient; do not ask again.
|
|
223
|
+
General permission to write knowledge or organize batches is not approval to
|
|
224
|
+
change the site's top-level organization. If the need emerges after report
|
|
225
|
+
approval, update the same plan and ask about that structural change only; continue
|
|
226
|
+
independent work within the approved organization.
|
|
227
|
+
|
|
228
|
+
Before delivery, compare the resulting map with the approved plan: article
|
|
229
|
+
placement matches its main reader task, titles match the bodies, sibling ordering
|
|
230
|
+
is deliberate, and directories are neither empty nor accidental duplicates.
|
|
231
|
+
Honor the workspace's chosen directory depth and homogeneous sibling convention;
|
|
232
|
+
where it requires directory-only or article-only siblings, do not mix them.
|
|
233
|
+
Use an "Other" group last only for genuinely useful residual content, not to
|
|
234
|
+
avoid classification. Apply supported map adjustments through the current CLI
|
|
235
|
+
flow, retaining article identities and URLs. Record lasting category intent
|
|
236
|
+
briefly in the workspace AGENTS.md or existing organization guide; do not create
|
|
237
|
+
a separate taxonomy ledger or put planning instructions in reader articles.
|
|
238
|
+
|
|
197
239
|
### Reader tasks, names and reading order
|
|
198
240
|
|
|
199
241
|
Read the affected articles' bodies before changing their categories or titles.
|
|
@@ -251,8 +293,8 @@ change does not require a prose rewrite or file migration; changing its label do
|
|
|
251
293
|
not silently rename the approved article. Needed title or content revisions use
|
|
252
294
|
the existing revision and Review flow. Splits and merges use ordinary article
|
|
253
295
|
tasks, link repair and any explicit retirement after replacement content is
|
|
254
|
-
delivered. These are Agent editorial decisions, not new CLI checks or
|
|
255
|
-
gates.
|
|
296
|
+
delivered. These are Agent editorial decisions, not new CLI checks or routine per-article
|
|
297
|
+
approval gates. Top-level changes follow the focused review described above.
|
|
256
298
|
|
|
257
299
|
## Edit one section or review part of a batch
|
|
258
300
|
|
|
@@ -351,8 +351,10 @@ visible-Skill claim nor the Route report authorizes Bundle materialization.
|
|
|
351
351
|
## Contract overlay validation
|
|
352
352
|
|
|
353
353
|
`validate-indexer-contract-overlays` recomputes the complete data-only overlay
|
|
354
|
-
against the
|
|
355
|
-
|
|
354
|
+
against the current CLI base and operator contracts. Contract versions must match;
|
|
355
|
+
historical base/operator digests are provenance, not compatibility pins. Parser
|
|
356
|
+
release changes and unrelated profile changes do not require rebinding. Invalid DSL, executable
|
|
357
|
+
fields, identity redefinition, threshold weakening, invalid payload integrity or a partial
|
|
356
358
|
Provider identity fails validation. The selected Provider Bundle integrity is
|
|
357
359
|
an exact input, not a self-reported trust assertion.
|
|
358
360
|
|
package/index.js
CHANGED
|
@@ -23838,11 +23838,11 @@ function validateIndexerContractOverlay(input) {
|
|
|
23838
23838
|
if (indexerContractOverlayDigest(overlayPayload) !== overlay.overlay_digest) {
|
|
23839
23839
|
throw new TypeError("contract overlay digest does not match its canonical payload");
|
|
23840
23840
|
}
|
|
23841
|
-
if (overlay.extends.version !== base.version
|
|
23842
|
-
throw new TypeError("contract overlay
|
|
23841
|
+
if (overlay.extends.version !== base.version) {
|
|
23842
|
+
throw new TypeError("contract overlay requires another base contract version");
|
|
23843
23843
|
}
|
|
23844
|
-
if (overlay.operator_contract_version !== operators.version
|
|
23845
|
-
throw new TypeError("contract overlay
|
|
23844
|
+
if (overlay.operator_contract_version !== operators.version) {
|
|
23845
|
+
throw new TypeError("contract overlay requires another operator contract version");
|
|
23846
23846
|
}
|
|
23847
23847
|
const baseProfile = profileById(base, overlay.extends.profile);
|
|
23848
23848
|
const effectiveProfile = mergeOverlayProfile(baseProfile, overlay);
|