You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Commit a13bffd
Browse filesBrowse the repository at this point in the historyBrowse files
Copy file name to clipboardExpand all lines: docs/localization/ZH_CN_VALIDATION.md
+1Lines changed: 1 addition & 0 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -114,6 +114,7 @@ The validation process surfaced several pre-existing canonical design questions
114
114
- corpus-import wording contains a sequencing question between manifest-first fallback and the missing-full-import-approval stop condition;
115
115
- some Markdown and JSON artifacts use different canonical field names, including `source_session` / `target_session` versus `source_ai` / `target_ai`, and `session_family` / `human_relay_needed` versus `visitor_family` / `relay_needed`;
116
116
- the public/reference runtime boundary could be stated more explicitly in a future canonical protocol clarification.
117
+
- Registry Contract v1 now treats CSV files and `registry/INDEX.md` as generated compatibility views; `locales/zh-CN/registry/README.md` retains the earlier legacy/optional-rollup wording and is queued for Wave 4 correction.
117
118
118
119
Any repair to those items should be made as an explicit English-source protocol/schema decision and then propagated to localized surfaces.
Copy file name to clipboardExpand all lines: docs/registry/REGISTRY_CONTRACT_V1.md
+5-5Lines changed: 5 additions & 5 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -25,7 +25,7 @@ Every canonical JSON record must contain:
25
25
- its type-specific immutable ID;
26
26
-`created_at` as an RFC 3339 timestamp;
27
27
- a repository-relative artifact `path` where that record type has an artifact;
28
-
- a type-specific `status`.
28
+
- a type-specific `status` where that record type has a lifecycle.
29
29
30
30
The validator will check IDs, locations, timestamps, path existence, references, tags, and lifecycle/path agreement. It will not claim that a Git author proves a visitor identity or human approval.
31
31
@@ -51,7 +51,7 @@ A response record indexes a response artifact. It carries response identity, res
51
51
52
52
### Message
53
53
54
-
A message record carries message identity, sender, individual and/or group destination, state, path, tags, and the distinct optional relations `reply_to`, `reply_expected`, `response_message_id`, `needs_human_relay`, `related_packet`, `related_response`, and `summary`.
54
+
A message record carries message identity, sender, individual and/or group destination, state, path, tags, and the distinct optional relations `reply_to`, `reply_expected`, `response_message_id`, `needs_human_relay`, `related_packet`, `related_response`, and `summary`. When both `to_visitor_id` and `to_group` are populated, the message is addressed to both; neither destination overrides or suppresses the other.
55
55
56
56
### Notification
57
57
@@ -63,11 +63,11 @@ A notification record carries notification identity, `from_visitor_id`, `to_visi
63
63
64
64
A visit is an append-only signoff record and has no lifecycle status. It uses `session_family` and `relay_needed`.
65
65
66
-
Visitor registration is canonical JSON-per-record under `registry/visitors/<visitor_id>.json`; the visitor CSV is a derived compatibility view. Visitor lifecycle is separate from visit records.
66
+
Visitor registration is canonical JSON-per-record under `registry/visitors/<visitor_id>.json`; the visitor CSV is a derived compatibility view. Visitor lifecycle is separate from visit records. A routing record may name an unregistered visitor handle; registration is not a prerequisite for message, notification, or visit routing.
67
67
68
68
### Tag
69
69
70
-
A tag record is the canonical vocabulary record. Tags are `proposed`, `accepted`, or `deprecated`, with directories that match their status. Tag records retain creator, creation timestamp, and—when accepted—`accepted_by`, `accepted_at`, and `acceptance_basis`.
70
+
A tag record is the canonical vocabulary record. Tags are `proposed`, `accepted`, or `deprecated`, with directories that match their status. Tag records retain creator, creation timestamp, and—when accepted—`accepted_by`, `accepted_at`, and `acceptance_basis`. Those fields are an attestation recorded by the repository: schema validation checks their presence and form, but does not authenticate operator identity or prove approval. Enforced approval requires repository review rules outside this schema.
Third-party, web, and mixed material requires source references. Derivative/summarising material requires upstream references and coverage. Routine routing summaries require record-level provenance; evidence or decision synthesis requires claim-level support where practical and must preserve uncertainty.
122
122
123
-
AI/session-created tags begin proposed and cannot become accepted in the same change set. Operator-supplied tags may be accepted directly with `acceptance_basis: operator_supplied`. Promotion of a proposal uses `acceptance_basis: operator_approved_promotion`.
123
+
AI/session-created tags begin proposed and cannot become accepted in the same change set. Operator-supplied tags may be accepted directly with `acceptance_basis: operator_supplied`. Promotion of a proposal uses `acceptance_basis: operator_approved_promotion`. Pull-request validation rejects a same-change-set promotion; push validation detects the equivalent direct-write violation for remediation, but cannot undo a commit already accepted by the remote.
Copy file name to clipboardExpand all lines: docs/registry/SCHEMA_AND_VALIDATOR_DESIGN_V1.md
+6-6Lines changed: 6 additions & 6 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -23,7 +23,7 @@ tests/fixtures/invalid/
23
23
.github/workflows/validate.yml
24
24
```
25
25
26
-
Schemas use JSON Schema draft 2020-12. Every record declares `record_type` and integer `schema_version`; the validator verifies both the declared typeand the repository path. It does not choose a schema from path alone.
26
+
Schemas use JSON Schema draft 2020-12. Every record declares `record_type` and integer `schema_version`; the validator allowlists the declared type, chooses its schema from that type, and verifies its agreement with the canonical directory. It does not choose a schema from path alone.
27
27
28
28
## Shared rules
29
29
@@ -37,7 +37,7 @@ IDs are validated as complete date-led values, then checked against filename and
37
37
38
38
Packets and responses require `created_by`, `deposited_by`, `content_origin`, `source_refs`, `derivative_of`, and `provenance_coverage` according to the contract.
39
39
40
-
For `third_party`, `web`, and `mixed`, `source_refs` must be non-empty. For a derivative/summarising artifact, `derivative_of` and coverage must be non-empty. The schema checks field presence/shape; the validator checks referenced local artifact IDs.
40
+
For `third_party`, `web`, and `mixed`, `source_refs` must be non-empty. For a derivative/summarising artifact, `derivative_of` and coverage must be non-empty. The schema checks field presence/shape; the validator resolves `derivative_of` entries to packet or response records in the validation set. Visitor identifiers remain routing handles and do not require a corresponding visitor-registration record.
41
41
42
42
Messages may carry provenance when relaying source-bearing content. Notifications inherit through their required `message_id`. Visits do not require provenance.
43
43
@@ -46,12 +46,12 @@ Messages may carry provenance when relaying source-bearing content. Notification
4. Assert identifier-date/`created_at` agreement and, where a canonical registry record is filed under a four-digit year directory, year-directory agreement.
50
50
5. Assert path safety, existence and artifact/registry bucket agreement.
51
51
6. Assert uniqueness of IDs by namespace.
52
-
7. Resolve packet, response, message, notification, tag and derivative references.
52
+
7. Resolve packet, response, message, notification, tag and derivative references; visitor handles remain intentionally unregistered-capable.
53
53
8. Check tag status/path agreement and proposed/accepted/deprecated lifecycle rules.
54
-
9. Compare a PR base/head when available to reject illegal state transitions, including AI-proposed tags accepted in the same change set.
54
+
9. Compare a PR base/head when available to reject illegal state transitions, including AI-proposed tags accepted in the same change set. Push validation detects the same condition after a direct write; repository review rules are required if prevention is required before acceptance.
55
55
10. Validate examples as isolated fixtures.
56
56
11. Check canonical Markdown links.
57
57
12. Later: regenerate CSV/index views in a temporary directory and fail on diff.
@@ -60,7 +60,7 @@ The validator reports record, field, invariant and repair direction. It never ex
60
60
61
61
## Fixtures
62
62
63
-
Each valid fixture contains a complete fictional public-safe artifact/record pair. Invalid fixtures each violate one named invariant: schema type, missing path, filename mismatch, status bucket mismatch, unresolved reference, invalid tag, illegal transition, or missing required provenance.
63
+
Each valid fixture contains a complete fictional public-safe artifact/record pair. Invalid fixtures each violate one named invariant: schema type, unselectable shared schema, mismatched canonical location, missing path, filename mismatch, identifier-date mismatch, duplicate ID, status bucket mismatch, unresolved reference, invalid tag, illegal transition, or missing required provenance.
64
64
65
65
Top-level examples will be migrated into these fixtures before the validator is required on main.
0 commit comments