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
fix(spec): repair 25 dead PROTOCOL_MAP links + gate them in CI
PROTOCOL_MAP.md is hand-written and nothing regenerates it, so renames
orphan rows silently. 25 of its 132 `src/…` links pointed at files that no
longer exist.
The reported row was misdiagnosed, and the git history says why. The prose
"Virtual capabilities for analytics datasets" was NOT a half-finished
rewrite left by #1620 — it has been there verbatim since the map was created
(ced379b), when `data/dataset.zod.ts` held the *seed* schema
(object/externalId/mode/records). It never described that file. So this is
one wrong row plus one absent row, not one half-updated row:
- `data/dataset.zod.ts` -> `data/seed.zod.ts`, described as seed fixtures
(renamed by #1620 to free `dataset` for analytics, ADR-0021).
- the analytics dataset the old prose was reaching for is a real, unlisted
schema: added as `ui/dataset.zod.ts` (ADR-0021 semantic layer).
The sweep found the same rot everywhere, all from deliberate refactors that
left the map behind:
- `src/hub/**` (9 rows) — the directory no longer exists (142703d).
Survivors rehomed: license/registry-config/tenant -> src/system,
plugin-registry/plugin-security -> src/kernel; composer, marketplace,
space, hub-federation and api/hub were deleted outright. Section 9 is
therefore gone and Kernel renumbered 10 -> 9.
- `src/ai` (10 rows) — narrowed by 629a716. Repointed where a successor
exists (agent-action -> tool, cost -> usage, rag-pipeline ->
knowledge-source); dropped nlq/orchestration/predictive/devops-agent/
feedback-loop/plugin-development/runtime-ops.
- `identity/role` -> `identity/position` (ADR-0090 D3 renamed sys_role).
- `security/policy` (#2387), `system/compliance` + `system/masking`
(ADR-0056 D8) — removed as dead, rows dropped.
Gate: scripts/protocol-map.test.ts asserts every link resolves. Proven to go
red first — it listed exactly the 25 dead links before the fix. It rides Test
Core (required); `core: packages/**` covers the file and turbo's
$TURBO_DEFAULT$ inputs include it, so a map-only edit still re-runs the test
rather than cache-hitting to a false green. A new workflow job would not have
blocked merges (main requires only 4 checks), and check-links.yml is dormant
(workflow_dispatch only) and does not cover packages/spec.
Deliberately asserts links only, not completeness: the map is a curated
digest, not a generated index.
Sibling of #3138, which fixed the identical stale `data/dataset.zod.ts`
pointer in build-skill-references.ts's SKILL_MAP. That one guards generated
artifacts that ship to third parties; PROTOCOL_MAP.md is hand-written and
repo-internal (not in the package's npm `files`), so it needs its own check.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Copy file name to clipboardExpand all lines: packages/spec/PROTOCOL_MAP.md
+25-34Lines changed: 25 additions & 34 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -7,6 +7,12 @@ This document serves as the **Grand Map** of the ObjectStack specification. It l
7
7
> ***Support Protocols** provide internal structures or auxiliary types.
8
8
> * Always check the file content for specific Zod schema definitions.
9
9
10
+
> **Maintaining this file.** It is hand-written and not generated. Every `src/…`
11
+
> link is asserted to resolve by `scripts/protocol-map.test.ts`, so a rename that
12
+
> orphans a row fails CI — repoint the row at the schema that replaced it, or drop
13
+
> the row if the concept is gone. The listing is a *curated digest*, not an
14
+
> exhaustive index: not every schema in `src/` appears here, and that is by design.
15
+
10
16
---
11
17
12
18
## 🏗️ 1. Data Protocol (`src/data`)
@@ -24,7 +30,8 @@ This document serves as the **Grand Map** of the ObjectStack specification. It l
24
30
|[`driver-nosql.zod.ts`](src/data/driver-nosql.zod.ts)||**NoSQL Driver**. Specific configurations for NoSQL drivers. |
25
31
|[`driver/mongo.zod.ts`](src/data/driver/mongo.zod.ts)||**MongoDB Driver**. MongoDB specific connection options. |
26
32
|[`driver/postgres.zod.ts`](src/data/driver/postgres.zod.ts)||**PostgreSQL Driver**. PostgreSQL specific connection options. |
27
-
|[`dataset.zod.ts`](src/data/dataset.zod.ts)||**Dataset**. Virtual capabilities for analytics datasets. |
33
+
|[`seed.zod.ts`](src/data/seed.zod.ts)||**Seed**. Seed data / fixtures — bootstrap, reference, and demo rows applied on publish. (Was `dataset` until #1620; the `dataset` name now belongs to the analytics semantic layer.) |
34
+
|[`seed-loader.zod.ts`](src/data/seed-loader.zod.ts)||**Seed Loader**. How seed rows are resolved and applied. |
28
35
|[`analytics.zod.ts`](src/data/analytics.zod.ts)||**Data Analytics**. Aggregation and multidimensional analysis types. |
|[`dataset.zod.ts`](src/ui/dataset.zod.ts)| ⭐ |**Analytics Dataset**. The one semantic layer (ADR-0021): a base object plus declared dimensions and measures. `report` / `dashboard` bind to it by reference instead of declaring their own queries. |
46
54
|[`dashboard.zod.ts`](src/ui/dashboard.zod.ts)| ⭐ |**Dashboards**. Logic for grid-based analytic dashboards. |
|[`feedback-loop.zod.ts`](src/ai/feedback-loop.zod.ts)||**RLHF**. Feedback mechanisms for model improvement. |
85
-
|[`cost.zod.ts`](src/ai/cost.zod.ts)||**Cost Tracking**. Token usage and billing metrics. |
86
-
|[`devops-agent.zod.ts`](src/ai/devops-agent.zod.ts)||**DevOps Agent**. Specialized agent for system operations. |
87
-
|[`plugin-development.zod.ts`](src/ai/plugin-development.zod.ts)||**Plugin Dev**. AI assistance for plugin creation. |
88
-
|[`predictive.zod.ts`](src/ai/predictive.zod.ts)||**Predictive AI**. Machine learning model configurations. |
89
-
|[`runtime-ops.zod.ts`](src/ai/runtime-ops.zod.ts)||**Runtime Ops**. Operational parameters for AI runtime. |
90
+
|[`knowledge-source.zod.ts`](src/ai/knowledge-source.zod.ts)||**Knowledge Source**. What to index and which adapter to use (the RAG retrieval binding). |
91
+
|[`knowledge-document.zod.ts`](src/ai/knowledge-document.zod.ts)||**Knowledge Document**. Document / chunk / hit shapes shared by every knowledge adapter. |
92
+
|[`embedding.zod.ts`](src/ai/embedding.zod.ts)||**Embeddings**. Embedding model and vector store configuration. |
93
+
|[`solution-blueprint.zod.ts`](src/ai/solution-blueprint.zod.ts)||**Solution Blueprint**. Plan-first authoring target for high-level goals (ADR-0033). |
94
+
|[`usage.zod.ts`](src/ai/usage.zod.ts)||**Usage**. Token consumption measurement. Was `cost`. |
90
95
91
96
---
92
97
@@ -98,9 +103,9 @@ This document serves as the **Grand Map** of the ObjectStack specification. It l
98
103
|[`identity.zod.ts`](src/identity/identity.zod.ts)| ⭐ |**User Identity**. User accounts, authentication attributes. |
|[`permission.zod.ts`](src/security/permission.zod.ts)| ⭐ |**Permissions**. ACLs for Objects, Fields, and Apps. |
101
-
|[`role.zod.ts`](src/identity/role.zod.ts)||**Roles**. Hierarchical role definitions. |
102
-
|[`policy.zod.ts`](src/security/policy.zod.ts)||**Security Policy**. Global security settings and restrictions. |
106
+
|[`position.zod.ts`](src/identity/position.zod.ts)||**Positions**. The assignable bundle of permission sets a user holds. Renamed from `role` by ADR-0090 (`sys_role`→`sys_position`); `profile` was removed in the same wave. |
0 commit comments