@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 approval
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 exact CLI base and operator contracts. Invalid DSL, executable
355
- fields, identity redefinition, threshold weakening, digest drift or a partial
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 || overlay.extends.contract_digest !== base.contract_digest) {
23842
- throw new TypeError("contract overlay is bound to another base contract");
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 || overlay.operator_contract_digest !== operators.contract_digest) {
23845
- throw new TypeError("contract overlay is bound to another operator contract");
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);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@c4a/context",
3
- "version": "0.7.14-beta.1",
3
+ "version": "0.7.14",
4
4
  "type": "module",
5
5
  "description": "Declarative SDK for Context knowledge sources, workflows, review, and package outputs",
6
6
  "license": "MIT",