Skip to content

CLUE-550 Stage 0: Document-axes roadmap, concepts, and decision record - #2922

Open
scytacki wants to merge 1 commit into
masterfrom
CLUE-550-document-axes-roadmap
Open

CLUE-550 Stage 0: Document-axes roadmap, concepts, and decision record#2922
scytacki wants to merge 1 commit into
masterfrom
CLUE-550-document-axes-roadmap

Conversation

@scytacki

@scytacki scytacki commented Jul 21, 2026

Copy link
Copy Markdown
Member

Stage 0 — Document-Axes Roadmap (docs only)

Establishes docs/document-axes/ as a living roadmap for refactoring CLUE's document-type system into explicit axes. Documentation only — no code change.

Today a single type field is switched on in ~90 places across client, rules, and functions. The goal is to decompose it into orthogonal, mostly-stored axes (owner, scope, canonical, concurrent, kind, permissions) so a document's meaning is read in one place, with type/kind dereferenced only in a kind registry and a creation factory. This PR lands the reference docs and the decision record describing that target; the code lands in later stages.

Added

  • docs/document-axes/README.md — the living roadmap: a per-axis status table (axes + kind registry, behavior modules, creation factory, each with a migration status and delivering stage/ticket) that later stages flip as they land.
  • docs/document-axes/axes.mdfrom types to behavior: defines each axis and shows how today's CLUE behavior already encodes it. Introduces permission policies — named, code-defined groups of permission rules a document references, read by both the runtime and the Firestore security rules.
  • docs/document-axes/target-architecture.md — how the axes live in code: DocumentModel axis getters, the kind registry, behavior modules, the single creation factory, and the permissions-composition model (policy grants + stored per-doc grants).
  • docs/superpowers/specs/2026-07-21-document-axes-register.md — the decision record behind the axis set: the overlap/derivability analysis (why these axes, what is deliberately not an axis, the punted issues). It lives in specs/ rather than the reference folder because it documents the reasoning that produced the docs above, not something needed to implement a feature. It is intentionally not linked from the reference docs (discoverable via the specs folder) and links forward-only to them.

Notes for reviewers

  • Based on CLUE-576-opendocument-firestore-source (stacked PR). Retarget to master once CLUE-576 merges. Stage 0 is docs-only and does not depend on the prerequisite.
  • There is an extensive research doc that is not included here that was used for this work. If you'd like to see it, let me know. (The shipped docs are self-contained and do not reference it.)
  • canonical is marked done (CLUE-524's scoped pointer slots); the other axes are "not started".

🤖 Generated with Claude Code

@scytacki
scytacki force-pushed the CLUE-550-document-axes-roadmap branch from 804b3c2 to 6648210 Compare July 21, 2026 21:25
@cypress

cypress Bot commented Jul 21, 2026

Copy link
Copy Markdown

collaborative-learning    Run #19476

Run Properties:  status check passed Passed #19476  •  git commit 55742f75dd: CLUE-550 Add document-axes roadmap, concepts, and target architecture [Stage 0]
Project collaborative-learning
Branch Review CLUE-550-document-axes-roadmap
Run status status check passed Passed #19476
Run duration 03m 30s
Commit git commit 55742f75dd: CLUE-550 Add document-axes roadmap, concepts, and target architecture [Stage 0]
Committer Scott Cytacki
View all properties for this run ↗︎

Test results
Tests that failed  Failures 0
Tests that were flaky  Flaky 0
Tests that did not run due to a developer annotating a test with .skip  Pending 0
Tests that did not run due to a failure in a mocha hook  Skipped 0
Tests that passed  Passing 4
View all changes introduced in this branch ↗︎

@codecov

codecov Bot commented Jul 21, 2026

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 69.18%. Comparing base (6f405c9) to head (55742f7).

❗ There is a different number of reports uploaded between BASE (6f405c9) and HEAD (55742f7). Click for more details.

HEAD has 16 uploads less than BASE
Flag BASE (6f405c9) HEAD (55742f7)
jest 2 1
cypress-regression 15 0
Additional details and impacted files
@@                             Coverage Diff                             @@
##           CLUE-576-opendocument-firestore-source    #2922       +/-   ##
===========================================================================
- Coverage                                   86.15%   69.18%   -16.97%     
===========================================================================
  Files                                         935      930        -5     
  Lines                                       53320    53296       -24     
  Branches                                    14090    14088        -2     
===========================================================================
- Hits                                        45936    36874     -9062     
- Misses                                       7368    16390     +9022     
- Partials                                       16       32       +16     
Flag Coverage Δ
cypress-regression ?
cypress-smoke 41.98% <ø> (-0.01%) ⬇️
jest 55.61% <ø> (ø)

Flags with carried forward coverage won't be shown. Click here to find out more.

☔ View full report in Codecov by Harness.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.
  • 📦 JS Bundle Analysis: Save yourself from yourself by tracking and limiting bundle sizes in JS merges.

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Adds a new documentation set under docs/document-axes/ describing a staged roadmap and target architecture for decomposing CLUE’s document type branching into explicit “document axes” (e.g., owner, scope, canonical, concurrent, kind, permissions), plus a decision record capturing the overlap/derivability analysis that motivated the chosen axes.

Changes:

  • Introduces docs/document-axes/ as the living roadmap and reference docs for the document-axes refactor.
  • Defines the axes and their relationship to current behavior, including the “permission policy + per-doc grants” composition concept.
  • Adds a specs/decision-record document capturing the axis-register analysis and rationale.

Reviewed changes

Copilot reviewed 4 out of 4 changed files in this pull request and generated 3 comments.

File Description
docs/document-axes/README.md Roadmap entrypoint with status table and links to related docs.
docs/document-axes/axes.md Defines the axes in terms of current behavior; includes a “where today’s types land” summary table.
docs/document-axes/target-architecture.md Describes intended layering (axis getters, kind registry, behavior modules, creation factory) and enforcement rules.
docs/superpowers/specs/2026-07-21-document-axes-register.md Decision record / register analyzing candidate axes, overlaps, and storage vs lookup vs derivation.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment thread docs/superpowers/specs/2026-07-21-document-axes-register.md Outdated
Comment thread docs/superpowers/specs/2026-07-21-document-axes-register.md Outdated
Comment thread docs/document-axes/axes.md Outdated
… [Stage 0]

Establish docs/document-axes/ as a living roadmap for decomposing document
`type` into explicit axes (owner, scope, canonical, concurrent, kind,
permissions):

- README.md: the roadmap and a per-axis status table that later stages flip
  as each piece lands.
- axes.md: each axis defined and read out of current CLUE behavior; introduces
  permission policies (named, code-defined rule groups a document references,
  read by both the runtime and the Firestore security rules).
- target-architecture.md: how the axes live in code (axis getters, kind
  registry, behavior modules, the one creation factory, permissions
  composition).

Add the decision record behind the axis set as a spec at
docs/superpowers/specs/2026-07-21-document-axes-register.md: the overlap
analysis of why these axes and what is deliberately not an axis.

Docs only; no code change.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@scytacki
scytacki force-pushed the CLUE-550-document-axes-roadmap branch from 6648210 to 55742f7 Compare July 22, 2026 00:26
@scytacki
scytacki requested a review from tealefristoe July 22, 2026 00:46
Base automatically changed from CLUE-576-opendocument-firestore-source to master July 23, 2026 12:16
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants