From 55b2b214e43c933fff646348737fc9065a6122c1 Mon Sep 17 00:00:00 2001 From: Tom Ballard Date: Fri, 24 Jul 2026 15:31:10 +0100 Subject: [PATCH 1/2] chore(engine): adopt AsDecided repository identities --- .agent-context/GAPS_TRACEABILITY.md | 2 +- .github/workflows/docs.yml | 2 +- .github/workflows/native-publish.yml | 2 +- .github/workflows/rust-spike.yml | 16 +++++++-------- .github/workflows/watchkeeper.yml | 4 ++-- CHANGELOG.md | 20 ++++++++++++------- CONTRIBUTING.md | 4 ++-- Dockerfile | 2 +- README.md | 8 ++++---- .../decisions/adr-042-docs-site-hosting.md | 2 +- ...68-extension-sdk-and-brand-architecture.md | 4 ++-- .../decisions/adr-092-repository-topology.md | 2 +- .../adr-101-org-docs-site-and-topology.md | 8 ++++---- .../adr-115-shared-artifact-spec-registry.md | 4 ++-- ...engine-sanctioned-second-implementation.md | 2 +- decisions/designs/sdk-expansion-strategy.md | 2 +- decisions/designs/tool-benchmark-harness.md | 2 +- .../rac-artifact-completeness-study.md | 2 +- .../rac-decision-applies-to-scope.md | 6 +++--- .../requirements/rac-derived-index-cache.md | 2 +- .../rac-grounding-baseline-study.md | 2 +- .../requirements/rac-mcp-http-transport.md | 2 +- .../requirements/rac-path-decisions-lookup.md | 2 +- .../rac-shared-server-audit-identity.md | 2 +- decisions/roadmaps/agnostic-surfaces.md | 4 ++-- .../archive/repo-extraction-programme.md | 12 +++++------ decisions/roadmaps/artifact-family-factory.md | 2 +- decisions/roadmaps/atlassian/atlassian.md | 2 +- .../roadmaps/benchmarks/tool-benchmarks.md | 18 ++++++++--------- .../roadmaps/corpus-export-to-rag-backends.md | 2 +- decisions/roadmaps/corpus-federation.md | 2 +- decisions/roadmaps/corpus-sync.md | 2 +- .../roadmaps/decision-to-code-proximity.md | 4 ++-- decisions/roadmaps/decisions-on-pr.md | 6 +++--- .../roadmaps/freshness-and-drift-detection.md | 2 +- .../future/artifact-completeness-benchmark.md | 4 ++-- .../future/decision-grounding-paper.md | 4 ++-- .../future/external-benchmark-evidence.md | 2 +- .../roadmaps/future/ts-sdk-stable-release.md | 2 +- decisions/roadmaps/growth-programme.md | 2 +- decisions/roadmaps/ingest-sources.md | 4 ++-- .../roadmaps/integration-recipe-factory.md | 2 +- decisions/roadmaps/lean-context-delivery.md | 2 +- decisions/roadmaps/link-suggestions.md | 2 +- decisions/roadmaps/lore-at-team-scale.md | 4 ++-- decisions/roadmaps/oci-image.md | 6 +++--- decisions/roadmaps/org-grounding-plane.md | 4 ++-- decisions/roadmaps/rac-editors-buildout.md | 8 ++++---- decisions/roadmaps/rebuild-scale.md | 2 +- decisions/roadmaps/relationship-vocabulary.md | 2 +- decisions/roadmaps/relevance-ranking.md | 2 +- .../roadmaps/repo-topology/rac-benchmarks.md | 4 ++-- decisions/roadmaps/repo-topology/rac-ci.md | 8 ++++---- .../roadmaps/repo-topology/rac-connectors.md | 2 +- .../roadmaps/repo-topology/rac-editors.md | 6 +++--- decisions/roadmaps/repo-topology/rac-sdk.md | 14 ++++++------- .../repo-topology-convergence.md | 2 +- decisions/roadmaps/retrieval-diagnostics.md | 2 +- .../v0.22.3-ts-sdk-npm-publishable.md | 10 +++++----- .../v0.22.5-extract-typescript-stack.md | 6 +++--- decisions/roadmaps/warm-by-default.md | 2 +- docs/cli.md | 4 ++-- docs/context-cost.md | 2 +- docs/decisions-on-pr.md | 4 ++-- docs/ecosystem.md | 18 ++++++++--------- docs/examples/rac-validate.sarif.json | 2 +- docs/governance.md | 10 +++++----- docs/index.md | 8 ++++---- docs/integration-recipes.md | 6 +++--- docs/mcp.md | 12 +++++------ docs/okf-profile.md | 2 +- docs/org-grounding.md | 8 ++++---- docs/quickstart.md | 12 +++++------ docs/relationships.md | 4 ++-- docs/repo-workflow.md | 2 +- docs/scale.md | 14 ++++++------- docs/security.md | 2 +- docs/shared-server.md | 16 +++++++-------- docs/testing.md | 8 ++++---- docs/v0.22-housekeeping-runbook.md | 8 ++++---- docs/validation.md | 12 +++++------ docs/watchkeeper.md | 4 ++-- mkdocs.yml | 6 +++--- pr-gate-action/action.yml | 2 +- rac-localview/src/landing/LandingApp.tsx | 4 ++-- .../2026-07-enterprise-adoption-review.md | 2 +- rust/PARITY-REPORT.md | 6 +++--- rust/PORT-CONTRACT.d/05-relationships.md | 2 +- rust/PORT-CONTRACT.d/07-output-bytes.md | 2 +- .../09-walk-stats-export-review-schema.md | 2 +- rust/PORT-CONTRACT.d/14-closure-state.md | 2 +- .../assets/spec/artifact-specs.json | 2 +- rust/rac-engine/src/spec.rs | 4 ++-- rust/rac-engine/tests/vectors/pyjson.json | 6 +++--- rust/spec/closure-contracts.json | 2 +- rust/spec/sync_spec.py | 8 ++++---- rust/tools/conformance_certify.py | 14 ++++++------- rust/tools/live_corpus_invariants.py | 2 +- server.json | 4 ++-- validate-action/action.yml | 2 +- 100 files changed, 252 insertions(+), 246 deletions(-) diff --git a/.agent-context/GAPS_TRACEABILITY.md b/.agent-context/GAPS_TRACEABILITY.md index 29de65dc..9c2e7768 100644 --- a/.agent-context/GAPS_TRACEABILITY.md +++ b/.agent-context/GAPS_TRACEABILITY.md @@ -161,7 +161,7 @@ purpose (growth-programme success measure). The open/partial gaps are now promoted to the trusted corpus (the pattern set by `rac-traceability-self-relationships`): the `relationship-vocabulary` roadmap with -a requirement per gap, tracked under epic **itsthelore/rac-core#236**. +a requirement per gap, tracked under epic **itsthelore/asdecided-core#236**. | Gap(s) | Requirement | | --- | --- | diff --git a/.github/workflows/docs.yml b/.github/workflows/docs.yml index c97e593c..5f0f8a05 100644 --- a/.github/workflows/docs.yml +++ b/.github/workflows/docs.yml @@ -2,7 +2,7 @@ name: Docs # Build-only check for the docs/ MkDocs source. Strict mode turns broken # links and nav entries into build failures. This no longer deploys to -# GitHub Pages (ADR-101): itsthelore.github.io/rac-core/ is now served by +# GitHub Pages (ADR-101): itsthelore.github.io/asdecided-core/ is now served by # the itsthelore/itsthelore.github.io umbrella site, which vendors docs/ at # build time. Once that repo's site is live, disable Pages on this repo # (Settings -> Pages -> Source) so its own project-page deployment stops diff --git a/.github/workflows/native-publish.yml b/.github/workflows/native-publish.yml index 714a10f0..db3c5fda 100644 --- a/.github/workflows/native-publish.yml +++ b/.github/workflows/native-publish.yml @@ -64,7 +64,7 @@ jobs: contents: read packages: write env: - IMAGE: ghcr.io/itsthelore/rac + IMAGE: ghcr.io/itsthelore/asdecided-core TAG: ${{ github.event.release.tag_name }} steps: - uses: actions/checkout@v5 diff --git a/.github/workflows/rust-spike.yml b/.github/workflows/rust-spike.yml index 2856633b..4995fe3b 100644 --- a/.github/workflows/rust-spike.yml +++ b/.github/workflows/rust-spike.yml @@ -1,4 +1,4 @@ -# Native Rust CI. Contract bytes are owned by rac-spec; the evolving RAC +# Native Rust CI. Contract bytes are owned by asdecided-spec; the evolving RAC # repository corpus is exercised through invariants rather than snapshots. name: rust-spike @@ -71,21 +71,21 @@ jobs: working-directory: rust run: cargo clippy --release --no-deps -- -D warnings - - name: Checkout authoritative rac-spec fixtures + - name: Checkout authoritative asdecided-spec fixtures uses: actions/checkout@v4 with: - repository: itsthelore/rac-spec - path: rac-spec + repository: itsthelore/asdecided-spec + path: asdecided-spec - - name: Guard 1 — vendored registry matches rac-spec + - name: Guard 1 — vendored registry matches asdecided-spec env: - DECIDED_SPEC_DIR: ${{ github.workspace }}/rac-spec + DECIDED_SPEC_DIR: ${{ github.workspace }}/asdecided-spec run: python rust/spec/sync_spec.py - - name: Guard 2 — Rust reproduces rac-spec contract bytes + - name: Guard 2 — Rust reproduces asdecided-spec contract bytes run: | python rust/tools/conformance_certify.py \ - --spec-dir "${{ github.workspace }}/rac-spec" \ + --spec-dir "${{ github.workspace }}/asdecided-spec" \ --engine "rust=${{ github.workspace }}/rust/target/release/decided" - name: Live RAC corpus invariants diff --git a/.github/workflows/watchkeeper.yml b/.github/workflows/watchkeeper.yml index 3b7b2df5..0360437a 100644 --- a/.github/workflows/watchkeeper.yml +++ b/.github/workflows/watchkeeper.yml @@ -5,7 +5,7 @@ # # jobs: # watchkeeper: -# uses: itsthelore/rac-core/.github/workflows/watchkeeper.yml@ +# uses: itsthelore/asdecided-core/.github/workflows/watchkeeper.yml@ # with: # path: decisions # @@ -52,7 +52,7 @@ jobs: # Reusable workflows run in the caller's repository, so the action is # referenced by full path. Update this ref when cutting a release tag; # until the first v0.12.x release it tracks main. - - uses: itsthelore/rac-core@main + - uses: itsthelore/asdecided-core@main with: path: ${{ inputs.path }} base: ${{ inputs.base }} diff --git a/CHANGELOG.md b/CHANGELOG.md index be1c12d3..21289881 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -6,6 +6,12 @@ details, release history over commit history. ## Unreleased +- Renamed the native engine repository to `itsthelore/asdecided-core`, the + language-neutral contract repository to `itsthelore/asdecided-spec`, and the + CI delivery repository to `itsthelore/asdecided-ci`. Active documentation, + release metadata, CI checkouts, and OCI publication now use the canonical + AsDecided repository names. Stable `RAC-*` artifact IDs remain unchanged. + ## v0.23.1 — 2026-07-24 - Fixed native Windows compilation by using portable filesystem metadata, @@ -25,7 +31,7 @@ published machine-schema keys remain unchanged. Rust is the normal product engine, Explorer is retired, and ingest leaves core as an ancillary connector. The Python engine, package, PyPI release path, compatibility oracle, Explorer, and ingest implementation have been removed from `rac-core`. Python API access -belongs in `itsthelore/rac-sdk`; the final former engine remains available only +belongs in `itsthelore/asdecided-sdk`; the final former engine remains available only at the immutable `python-engine-final` Git tag for historical review. **Decisions on pull requests — the Herald action** @@ -37,9 +43,9 @@ a merge gate (ADR-034/067): the check never fails on findings, and on forks the comment degrades to the step summary. A thin client over `rac decisions-for --json` (ADR-063) with no engine change; the action ships in the CI delivery repo as -`itsthelore/rac-ci/herald/github` beside Watchkeeper, Gatekeeper, and +`itsthelore/asdecided-ci/herald/github` beside Watchkeeper, Gatekeeper, and Registrar, and is documented on the new -[Decisions on PRs](https://itsthelore.github.io/rac-core/decisions-on-pr/) +[Decisions on PRs](https://itsthelore.github.io/asdecided-core/decisions-on-pr/) page. **The org grounding plane** (ADR-117). One org-standards corpus behind the @@ -49,7 +55,7 @@ wires a repository to it: the `lore-org` streamable-HTTP entry is ensured in `.mcp.json` and `.cursor/mcp.json`, on fresh **and** already-initialized repositories, merging into existing files (only the `lore-org` key is touched, nothing you wrote is removed) and writing nothing on an unchanged -re-run. The new [Org Grounding](https://itsthelore.github.io/rac-core/org-grounding/) +re-run. The new [Org Grounding](https://itsthelore.github.io/asdecided-core/org-grounding/) page is the operator runbook: the org corpus, the shared-server recipe, fleet wiring, boundaries, and the federation handoff (ADR-089 stays untouched — no cross-corpus resolution enters the engine). The `rac init --json` contract @@ -178,7 +184,7 @@ as candidate relationships. shared HTTP serving blocks a call if the audit sink write fails (ADR-098). stdio behaviour is unchanged. - **Operator guide for the shared server.** A new - [Shared Server](https://itsthelore.github.io/rac-core/shared-server/) doc + [Shared Server](https://itsthelore.github.io/asdecided-core/shared-server/) doc covers when to run one, the container and authenticating-proxy recipe, keeping the checkout current with `main`, and where observability lives — the whole topology is deployment wrapper around an unchanged, database-free engine. @@ -373,8 +379,8 @@ why this release now carries a `vX.Y.Z` number; compatibility stays on ### Changed - The TypeScript stack moved out of this repository (v0.22.5). The client SDK - now lives in `itsthelore/rac-sdk-ts`, published to npm as - `@itsthelore/rac-sdk`, and the VS Code extension in `itsthelore/lore-vscode`, + now lives in `itsthelore/asdecided-sdk-ts`, published to npm as + `@itsthelore/asdecided-sdk`, and the VS Code extension in `itsthelore/lore-vscode`, consuming that published package instead of the former in-repo `file:../rac-sdk` path. The in-repo `typescript/` directory and its CI (`typescript.yml`, `sdk-release.yml`, `extension-release.yml`) are removed. diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index a0112901..b02e4165 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -5,7 +5,7 @@ The toolchain is pinned by `rust/rust-toolchain.toml`. ```bash -git clone https://github.com/itsthelore/rac-core.git +git clone https://github.com/itsthelore/asdecided-core.git cd rac-core/rust rustup show cargo build --workspace --locked @@ -26,7 +26,7 @@ target/release/decided relationships ../decisions/ --validate The small Python programs under `rust/tools/` and `rust/spec/` are repository verification utilities. They are not a Python product engine or installable SDK. Cross-repository compatibility is certified against -[`rac-spec`](https://github.com/itsthelore/rac-spec). +[`asdecided-spec`](https://github.com/itsthelore/asdecided-spec). ## Documentation expectations diff --git a/Dockerfile b/Dockerfile index d00f4389..79badac9 100644 --- a/Dockerfile +++ b/Dockerfile @@ -14,7 +14,7 @@ FROM debian:bookworm-slim ARG DECIDED_VERSION=dev LABEL org.opencontainers.image.title="rac" \ org.opencontainers.image.description="RAC (Lore) requirements-as-code CLI" \ - org.opencontainers.image.source="https://github.com/itsthelore/rac-core" \ + org.opencontainers.image.source="https://github.com/itsthelore/asdecided-core" \ org.opencontainers.image.licenses="Apache-2.0" \ org.opencontainers.image.version="${DECIDED_VERSION}" diff --git a/README.md b/README.md index 56610c11..040a5643 100644 --- a/README.md +++ b/README.md @@ -19,10 +19,10 @@ brew install itsthelore/tap/rac-full ``` Native `decided` and `decided-mcp` archives are also published on -[GitHub Releases](https://github.com/itsthelore/rac-core/releases). +[GitHub Releases](https://github.com/itsthelore/asdecided-core/releases). `rac-core` is no longer distributed through PyPI. Python API consumers should -use [`itsthelore/rac-sdk`](https://github.com/itsthelore/rac-sdk), which is a +use [`itsthelore/asdecided-sdk`](https://github.com/itsthelore/asdecided-sdk), which is a client SDK rather than a second engine implementation. ## Start a repository @@ -72,13 +72,13 @@ refuses to overwrite either destination. Rust is the product engine and the only CLI/MCP runtime in this repository. The authoritative language-neutral compatibility fixtures live in -[`rac-spec`](https://github.com/itsthelore/rac-spec). Live-corpus validation is +[`asdecided-spec`](https://github.com/itsthelore/asdecided-spec). Live-corpus validation is based on validity, determinism, freshness, and cache/no-cache equality. Document ingestion remains an ancillary Python connector rather than part of the core engine. The retired Python engine is preserved for historical review at the immutable -[`python-engine-final`](https://github.com/itsthelore/rac-core/tree/python-engine-final) +[`python-engine-final`](https://github.com/itsthelore/asdecided-core/tree/python-engine-final) tag; it is not maintained or run in normal CI. ## License diff --git a/decisions/decisions/adr-042-docs-site-hosting.md b/decisions/decisions/adr-042-docs-site-hosting.md index 506e4104..330dca3b 100644 --- a/decisions/decisions/adr-042-docs-site-hosting.md +++ b/decisions/decisions/adr-042-docs-site-hosting.md @@ -16,7 +16,7 @@ Product ## Context > **Amended by ADR-101.** This ADR's project-page hosting model — `rac-core` -> publishing its own `docs/` to `itsthelore.github.io/rac-core/` via its own +> publishing its own `docs/` to `itsthelore.github.io/asdecided-core/` via its own > `docs.yml` — is retired in favor of an org-wide umbrella site > (`itsthelore.github.io`) that vendors `docs/` from each product repo at > build time. ADR-101 governs where the two differ (the publishing repo and diff --git a/decisions/decisions/adr-068-extension-sdk-and-brand-architecture.md b/decisions/decisions/adr-068-extension-sdk-and-brand-architecture.md index 7778e786..613fa14a 100644 --- a/decisions/decisions/adr-068-extension-sdk-and-brand-architecture.md +++ b/decisions/decisions/adr-068-extension-sdk-and-brand-architecture.md @@ -82,7 +82,7 @@ ADR-039): PyPI `requirements-as-code`, CLI `rac`, import `rac`, server `lore`. | --- | --- | --- | | `rac-core` | The engine `src/rac/` (incl. the Python SDK surface, ADR-062), the dogfood corpus `rac/`, `examples/`, and the vendored viewer dir `rac-localview/` | The engine and its build-coupled internals. PyPI name stays `requirements-as-code` (ADR-036). | | `rac-localview` | The local Portal / graph viewer, vendored into the engine via a build script + drift-guard | Build-coupled internal of the engine; not separately installed while vendored. | -| `rac-sdk-ts` | The TypeScript client `@rac/sdk`, published to npm as `@itsthelore/rac-sdk` | A typed client mirroring the engine contract (ADR-063). | +| `rac-sdk-ts` | The TypeScript client `@rac/sdk`, published to npm as `@itsthelore/asdecided-sdk` | A typed client mirroring the engine contract (ADR-063). | | `lore-vscode` | The VS Code extension — one VSIX to Marketplace + OpenVSX; runs in VS Code and, as a fork, Cursor | A surface a user installs (the first per-client repo). | | `lore-watchkeeper` | The Watchkeeper action (root `action.yml`) | A surface a team installs into CI. | | `lore-gatekeeper` | The gate action = `pr-gate-action` (`rac gate`); the older `validate-action` is folded in / deprecated by it (ADR-058 moves with the gate) | A surface a team installs into CI; the real enforcement gate (ADR-049). | @@ -98,7 +98,7 @@ per-client repositories. ### Per-client integration repositories Each client integration is **its own `lore-` repository**, consuming the -published `@itsthelore/rac-sdk` — never engine internals (ADR-063). One repo per +published `@itsthelore/asdecided-sdk` — never engine internals (ADR-063). One repo per client is the model; a single `lore-extensions` container is rejected (it fights independent per-client cadence and ownership). Today there is exactly one: `lore-vscode`. Planned siblings — created when each is built, and **not part of diff --git a/decisions/decisions/adr-092-repository-topology.md b/decisions/decisions/adr-092-repository-topology.md index a715a3f6..dc8d2cd4 100644 --- a/decisions/decisions/adr-092-repository-topology.md +++ b/decisions/decisions/adr-092-repository-topology.md @@ -107,7 +107,7 @@ maintainer-run org actions, sequenced in the deferred roadmap rewrite. by platform, so the ADR-090 "capability-first" intent holds; `lore-pipelines` is not created. Accepted tradeoffs: coupled version tags (one suite version, which is simpler for consumers) and no per-action Marketplace listing (consumed via - `uses: itsthelore/rac-ci/@`). + `uses: itsthelore/asdecided-ci/@`). - **`rac-connectors` is one repo** covering inbound (`rac ingest`) + outbound (`rac export`) + provider suites; **Atlassian is a subdir**, not its own repo — deployment and multi-direction do not force a repo boundary. diff --git a/decisions/decisions/adr-101-org-docs-site-and-topology.md b/decisions/decisions/adr-101-org-docs-site-and-topology.md index 3e088624..4597284c 100644 --- a/decisions/decisions/adr-101-org-docs-site-and-topology.md +++ b/decisions/decisions/adr-101-org-docs-site-and-topology.md @@ -17,7 +17,7 @@ Product ## Context ADR-042 hosts `rac-core`'s user documentation at -`https://itsthelore.github.io/rac-core/` — a GitHub Pages *project* page built +`https://itsthelore.github.io/asdecided-core/` — a GitHub Pages *project* page built by `rac-core`'s own `docs.yml` workflow from that repository's `docs/` with MkDocs (Material theme). That scope was correct when `rac-core` was the only public surface, but ADR-092 now names a small constellation of `rac-*` @@ -70,7 +70,7 @@ than linking out to per-repo project pages. the site, in `rac-core` or any other member repo. - `rac-core`'s project-page deployment is **retired**: `docs.yml`'s Pages publish step is removed once the umbrella site's `/rac-core/` section is - live, so `itsthelore.github.io/rac-core/` is served by the umbrella + live, so `itsthelore.github.io/asdecided-core/` is served by the umbrella deployment instead of `rac-core`'s own. `rac-core` keeps its `docs/` directory and MkDocs config for local `mkdocs serve` authoring; it stops being a second published surface at that URL. Disabling the old Pages @@ -103,7 +103,7 @@ than linking out to per-repo project pages. build time; a broken or unreachable source repo can fail the umbrella build even though `itsthelore.github.io` itself has not changed. - Retiring `rac-core`'s project-page deployment is a breaking change for - anyone who bookmarked or linked `itsthelore.github.io/rac-core/` expecting + anyone who bookmarked or linked `itsthelore.github.io/asdecided-core/` expecting `rac-core`'s own MkDocs build; the URL keeps working but the rendering engine and look change underneath it. - One more repository (`itsthelore.github.io`) with its own build pipeline @@ -148,7 +148,7 @@ Aggregate other repos into the umbrella site but leave `rac-core`'s own #### Advantages -- No breaking change to the existing `itsthelore.github.io/rac-core/` URL's +- No breaking change to the existing `itsthelore.github.io/asdecided-core/` URL's rendering engine. #### Disadvantages diff --git a/decisions/decisions/adr-115-shared-artifact-spec-registry.md b/decisions/decisions/adr-115-shared-artifact-spec-registry.md index 9f871f36..b91cfadb 100644 --- a/decisions/decisions/adr-115-shared-artifact-spec-registry.md +++ b/decisions/decisions/adr-115-shared-artifact-spec-registry.md @@ -25,7 +25,7 @@ lockstep by a regeneration script — precisely the drift surface Guard 1 exists remove. The file was also derived *from* Python, so Python, not the file, was the source of truth; "both engines read one shared file" was not true. -The neutral cross-repo home for RAC's contracts is `itsthelore/rac-spec` +The neutral cross-repo home for RAC's contracts is `itsthelore/asdecided-spec` (ADR-064, ADR-092), which today carries the prose specification, a structural JSON Schema, and vocabulary — but not the complete machine-readable registry (section sets, metadata enums, descriptions, guidance, synonyms, starter bodies) @@ -47,7 +47,7 @@ source of truth that **both** engines read. - The Rust engine embeds the **same bytes** of the same file via `include_str!`. - The two engines therefore read one artifact and cannot drift by construction: a section, enum, synonym, or ordering added once is reflected in both. -- The upstream source of truth is `itsthelore/rac-spec`; the in-repo +- The upstream source of truth is `itsthelore/asdecided-spec`; the in-repo `src/rac/spec/artifact-specs.json` is the vendored copy both in-tree engines embed, kept byte-identical to the upstream by a sync gate. (In-tree engines can only read an in-tree file at build/runtime, so a vendored copy plus an equality diff --git a/decisions/decisions/adr-116-native-engine-sanctioned-second-implementation.md b/decisions/decisions/adr-116-native-engine-sanctioned-second-implementation.md index 133c1c41..5965b9e0 100644 --- a/decisions/decisions/adr-116-native-engine-sanctioned-second-implementation.md +++ b/decisions/decisions/adr-116-native-engine-sanctioned-second-implementation.md @@ -44,7 +44,7 @@ Crucially, ADR-063's two guards are now **closed**, with evidence on this branch - **Guard 1 — shared spec (closed).** One language-neutral registry is the single source of truth both engines read: the Python engine loads `ARTIFACT_SPECS` from `src/rac/spec/artifact-specs.json` and the Rust engine - embeds the same bytes; itsthelore/rac-spec hosts the canonical + embeds the same bytes; itsthelore/asdecided-spec hosts the canonical `schema/artifact-specs.json` upstream and rac-core vendors it, with a sync gate enforcing equality. Recorded in ADR-115; landed at commit `bdd369c`, sync gate at `40557f2`, proven behavior-neutral (full Python suite green, every diff --git a/decisions/designs/sdk-expansion-strategy.md b/decisions/designs/sdk-expansion-strategy.md index 109556dd..2f7f0808 100644 --- a/decisions/designs/sdk-expansion-strategy.md +++ b/decisions/designs/sdk-expansion-strategy.md @@ -21,7 +21,7 @@ not slideware completeness. ## Context The only non-Python SDK today is the TypeScript thin client -(`rac-sdk/ts/`, npm `@itsthelore/rac-sdk`, pre-1.0). ADR-063 fixes *how* +(`rac-sdk/ts/`, npm `@itsthelore/asdecided-sdk`, pre-1.0). ADR-063 fixes *how* any further client is built — a thin client over the stable contract (`--json` outputs, `rac export` payloads, exit codes, MCP), shelling out to the installed `rac` binary, never a native engine port without the two diff --git a/decisions/designs/tool-benchmark-harness.md b/decisions/designs/tool-benchmark-harness.md index f8d23718..104cd9e6 100644 --- a/decisions/designs/tool-benchmark-harness.md +++ b/decisions/designs/tool-benchmark-harness.md @@ -8,7 +8,7 @@ type: design ## Context The `tool-benchmarks` roadmap builds one benchmark per Lore MCP tool in -`itsthelore/rac-benchmarks` (subdir per benchmark, ADR-092). The non-trivial +`itsthelore/asdecided-benchmarks` (subdir per benchmark, ADR-092). The non-trivial structure worth recording — sibling to `grounding-eval-scorecard` — is the shared harness those subdirs consume and the scorecard/gate shapes it emits, so five benchmarks stay one design rather than five drifting ones. Scoring diff --git a/decisions/requirements/rac-artifact-completeness-study.md b/decisions/requirements/rac-artifact-completeness-study.md index 81a4c4ea..3b3921e4 100644 --- a/decisions/requirements/rac-artifact-completeness-study.md +++ b/decisions/requirements/rac-artifact-completeness-study.md @@ -12,7 +12,7 @@ Proposed Classification: `[internal]` — the testable contract for **SWE-CompletenessBench**. Initiative 2 of the `artifact-completeness-benchmark` roadmap; the harness executes in -`itsthelore/rac-benchmarks` (ADR-092), never in `rac-core`. Referenced in +`itsthelore/asdecided-benchmarks` (ADR-092), never in `rac-core`. Referenced in prose because there is no relationship type for an external-repository artifact. diff --git a/decisions/requirements/rac-decision-applies-to-scope.md b/decisions/requirements/rac-decision-applies-to-scope.md index 24695b2c..fc6d4b19 100644 --- a/decisions/requirements/rac-decision-applies-to-scope.md +++ b/decisions/requirements/rac-decision-applies-to-scope.md @@ -10,12 +10,12 @@ type: requirement Accepted Delivered as Initiative 1 of the `decision-to-code-proximity` roadmap -(itsthelore/rac-core#274): the optional `## Applies To` section on decisions, +(itsthelore/asdecided-core#274): the optional `## Applies To` section on decisions, with path entries existence-checked by `rac relationships --validate` and the scope surfaced as a filesystem-scoped edge via `get_related`. This also closes -the decision-scope box on the traceability epic (itsthelore/rac-core#236). The +the decision-scope box on the traceability epic (itsthelore/asdecided-core#236). The path→decisions lookup that queries this vocabulary is a separate requirement -(`rac-path-decisions-lookup`, itsthelore/rac-core#275). +(`rac-path-decisions-lookup`, itsthelore/asdecided-core#275). ## Problem diff --git a/decisions/requirements/rac-derived-index-cache.md b/decisions/requirements/rac-derived-index-cache.md index e1c127f6..d418b509 100644 --- a/decisions/requirements/rac-derived-index-cache.md +++ b/decisions/requirements/rac-derived-index-cache.md @@ -12,7 +12,7 @@ Accepted Classification: `[internal]` — per-call work stops scaling with corpus size. Initiative 2 of the `lore-at-team-scale` roadmap: a content-addressed, rebuild-on-change cache behind the ADR-032 seam, -shipped under its own ADR. Delivered (itsthelore/rac-core#264): the +shipped under its own ADR. Delivered (itsthelore/asdecided-core#264): the `DerivedIndexCache` persists the repository index, resolved relationship graph, and tokenised field vectors keyed on `corpus_content_hash`, enabled opt-in via `rac mcp --cache`, byte-identical to the uncached path — under diff --git a/decisions/requirements/rac-grounding-baseline-study.md b/decisions/requirements/rac-grounding-baseline-study.md index dbe06bb5..d46da7ff 100644 --- a/decisions/requirements/rac-grounding-baseline-study.md +++ b/decisions/requirements/rac-grounding-baseline-study.md @@ -12,7 +12,7 @@ Proposed Classification: `[internal]` — the publication-grade evidence the paper needs. Initiative 2 of the `decision-grounding-paper` roadmap. The multi-arm head-to-head already exists as the `decisiongrounding` implementation in -`itsthelore/rac-benchmarks` (ADR-092), whose published dataset/paper identity +`itsthelore/asdecided-benchmarks` (ADR-092), whose published dataset/paper identity is **SWE-DecisionBench** (the name already recorded in `external-benchmark-evidence`). This requirement scopes the deltas that take it from a working benchmark to a citable SWE-family study; it does not build a diff --git a/decisions/requirements/rac-mcp-http-transport.md b/decisions/requirements/rac-mcp-http-transport.md index 30ab8f7c..32d91cc4 100644 --- a/decisions/requirements/rac-mcp-http-transport.md +++ b/decisions/requirements/rac-mcp-http-transport.md @@ -12,7 +12,7 @@ Accepted Classification: `[internal]` — one always-current endpoint for the whole team. Initiative 1 of the `lore-at-team-scale` roadmap: an HTTP transport for `rac mcp`, shipped under its own serving ADR. Delivered -(itsthelore/rac-core#263): `rac mcp --transport http` serves the five tools +(itsthelore/asdecided-core#263): `rac mcp --transport http` serves the five tools statelessly over streamable HTTP, payload-identical to stdio, mandatory audit-on, with authentication delegated to the deployment proxy — under ADR-098, which resolves the ADR-091 stdio-only premise against ADR-080's diff --git a/decisions/requirements/rac-path-decisions-lookup.md b/decisions/requirements/rac-path-decisions-lookup.md index 7b16d48f..9324d2d0 100644 --- a/decisions/requirements/rac-path-decisions-lookup.md +++ b/decisions/requirements/rac-path-decisions-lookup.md @@ -11,7 +11,7 @@ Accepted Classification: `[internal]` — the decisions binding a file, in one call. Delivered as Initiative 2 of the `decision-to-code-proximity` roadmap -(itsthelore/rac-core#275): the `rac decisions-for` CLI subcommand and the +(itsthelore/asdecided-core#275): the `rac decisions-for` CLI subcommand and the additive `path` argument on the `find_decisions` MCP tool, over one shared core, consuming the `## Applies To` vocabulary of `rac-decision-applies-to-scope`. diff --git a/decisions/requirements/rac-shared-server-audit-identity.md b/decisions/requirements/rac-shared-server-audit-identity.md index 9b83fd97..5beee72a 100644 --- a/decisions/requirements/rac-shared-server-audit-identity.md +++ b/decisions/requirements/rac-shared-server-audit-identity.md @@ -13,7 +13,7 @@ Classification: `[internal]` — every caller on a shared endpoint is attributable. Initiative 3 of the `lore-at-team-scale` roadmap: per-request principal resolution in the audit recorder, with mandatory audit-on as the shared-deployment entry condition. Delivered -(itsthelore/rac-core#265): the audit recorder resolves a per-request +(itsthelore/asdecided-core#265): the audit recorder resolves a per-request principal from the `X-Lore-Principal` header (the carrier ADR-098 fixes), with precedence assertion > env override > git (skipped on the shared transport) > unattributed; records grow additive `transport` and diff --git a/decisions/roadmaps/agnostic-surfaces.md b/decisions/roadmaps/agnostic-surfaces.md index 03f23d40..c3cd4b87 100644 --- a/decisions/roadmaps/agnostic-surfaces.md +++ b/decisions/roadmaps/agnostic-surfaces.md @@ -48,7 +48,7 @@ graduates to execution with a GitHub issue per ADR-093. - Track 1 — Distribution and CI reach: - Official OCI image (`oci-image`): one published image bundling the CLI; the single artifact that unlocks every docker-native CI - platform with zero wrapper code. Shipped (`ghcr.io/itsthelore/rac`, + platform with zero wrapper code. Shipped (`ghcr.io/itsthelore/asdecided-core`, quickstart-documented); its artifact is now Achieved and lives top-level, no longer under `future/`. - CI report formats (`ci-report-formats`): GitLab code-quality JSON @@ -146,4 +146,4 @@ graduates to execution with a GitHub issue per ADR-093. ## Related Tickets -- itsthelore/rac-core#280 +- itsthelore/asdecided-core#280 diff --git a/decisions/roadmaps/archive/repo-extraction-programme.md b/decisions/roadmaps/archive/repo-extraction-programme.md index b2c34172..67a757b6 100644 --- a/decisions/roadmaps/archive/repo-extraction-programme.md +++ b/decisions/roadmaps/archive/repo-extraction-programme.md @@ -24,7 +24,7 @@ Planned ADR-064 records the decision to adopt a small multi-repo topology under the `itsthelore` organisation: extract the standalone components and keep the -engine, its shipped resources, and its governing corpus in `itsthelore/rac-core` +engine, its shipped resources, and its governing corpus in `itsthelore/asdecided-core` (the renamed `requirements-as-code` repository). ADR-068 extends that topology for the surfaces that post-date ADR-064 — the editor extension and the TypeScript SDK — and sharpens the Actions picture. This programme sequences the @@ -86,8 +86,8 @@ leave a deprecation note for the old paths, and repoint this repository's own The surfaces that post-date ADR-064. The TypeScript SDK (`@rac/sdk`) is a typed thin client over the engine contract (ADR-063), so it takes the `rac-*` prefix -and moves to `itsthelore/rac-sdk-ts`, **published to npm** as -`@itsthelore/rac-sdk`. The VS Code / Cursor extension is a surface a user +and moves to `itsthelore/asdecided-sdk-ts`, **published to npm** as +`@itsthelore/asdecided-sdk`. The VS Code / Cursor extension is a surface a user installs, so it takes the `lore-*` prefix and moves to `itsthelore/lore-vscode` (one VSIX to Marketplace + OpenVSX). Sequencing: publish the SDK first, then repoint the extension from `file:../rac-sdk` to the @@ -157,9 +157,9 @@ git remote add origin && git push -u origin main root `action.yml` into `lore-watchkeeper`. ADR-058 moves with the gatekeeper. Add a README documenting the new `uses:` references, tag each `v1`, and push. -**Seed the TypeScript repos** (`itsthelore/rac-sdk-ts`, +**Seed the TypeScript repos** (`itsthelore/asdecided-sdk-ts`, `itsthelore/lore-vscode`) after the SDK is npm-publishable (v0.22.3): publish -`@itsthelore/rac-sdk` from `rac-sdk-ts`, then seed `lore-vscode` and repoint +`@itsthelore/asdecided-sdk` from `rac-sdk-ts`, then seed `lore-vscode` and repoint it to the published package. **Removal + rewire PRs on `rac-core`**: remove `decisiongrounding/`, the @@ -195,7 +195,7 @@ and `pytest` passes. - The extracted actions consume only the public `rac` CLI, not engine internals, so they run from any repo once published. - The extracted TypeScript SDK and extension consume the published - `@itsthelore/rac-sdk` and the public CLI, never engine internals. + `@itsthelore/asdecided-sdk` and the public CLI, never engine internals. - `rac-localview` (the renamed `lore-web`) stays in this repository until its vendoring contract exists, so no Portal-shell drift-guard breaks during this programme. diff --git a/decisions/roadmaps/artifact-family-factory.md b/decisions/roadmaps/artifact-family-factory.md index 2ea0d180..d707542e 100644 --- a/decisions/roadmaps/artifact-family-factory.md +++ b/decisions/roadmaps/artifact-family-factory.md @@ -173,4 +173,4 @@ part of the contract every future family repeats. ## Related Tickets -- itsthelore/rac-core#248 +- itsthelore/asdecided-core#248 diff --git a/decisions/roadmaps/atlassian/atlassian.md b/decisions/roadmaps/atlassian/atlassian.md index 33b47bd7..e21a44ac 100644 --- a/decisions/roadmaps/atlassian/atlassian.md +++ b/decisions/roadmaps/atlassian/atlassian.md @@ -97,4 +97,4 @@ consumers (ADR-073). ## Related Tickets -- itsthelore/rac-connectors#4 +- itsthelore/asdecided-connectors#4 diff --git a/decisions/roadmaps/benchmarks/tool-benchmarks.md b/decisions/roadmaps/benchmarks/tool-benchmarks.md index 78532ed7..cce9fd36 100644 --- a/decisions/roadmaps/benchmarks/tool-benchmarks.md +++ b/decisions/roadmaps/benchmarks/tool-benchmarks.md @@ -18,7 +18,7 @@ was top-5 while `search_artifacts` serves the full match list; the P@1 / R@5 gate was blind to ordering within ranks 2–5; `get_related`'s outgoing direction was unscored; and the eval scores pre-budget output while agents receive ADR-033 budget-truncated responses. This roadmap builds one benchmark -per Lore MCP tool in `itsthelore/rac-benchmarks` (subdir per benchmark, +per Lore MCP tool in `itsthelore/asdecided-benchmarks` (subdir per benchmark, ADR-092) on a shared harness, under the family contract of ADR-097. Known corpus inconsistencies observed during the stress-test, flagged here @@ -108,11 +108,11 @@ gating CI. ## Related Tickets -- itsthelore/rac-benchmarks#2 -- itsthelore/rac-benchmarks#3 -- itsthelore/rac-benchmarks#4 -- itsthelore/rac-benchmarks#5 -- itsthelore/rac-benchmarks#6 -- itsthelore/rac-benchmarks#7 -- itsthelore/rac-benchmarks#8 -- itsthelore/rac-benchmarks#9 +- itsthelore/asdecided-benchmarks#2 +- itsthelore/asdecided-benchmarks#3 +- itsthelore/asdecided-benchmarks#4 +- itsthelore/asdecided-benchmarks#5 +- itsthelore/asdecided-benchmarks#6 +- itsthelore/asdecided-benchmarks#7 +- itsthelore/asdecided-benchmarks#8 +- itsthelore/asdecided-benchmarks#9 diff --git a/decisions/roadmaps/corpus-export-to-rag-backends.md b/decisions/roadmaps/corpus-export-to-rag-backends.md index 3768e83b..339ffce6 100644 --- a/decisions/roadmaps/corpus-export-to-rag-backends.md +++ b/decisions/roadmaps/corpus-export-to-rag-backends.md @@ -16,7 +16,7 @@ companion (ADR-095) with cognee, letta, mem0, neo4j (self-hostable), supermemory, and zep modules. The residual Initiative-3 deliverable — the documentation page naming targets and the verify-in-Lore loop — is absorbed into the `corpus-sync` programme's contracts-documentation work -(itsthelore/rac-core#255, itsthelore/rac-core#256). Consumption-plane +(itsthelore/asdecided-core#255, itsthelore/asdecided-core#256). Consumption-plane evolution continues under `corpus-sync`; this artifact remains the durable record of the original intent. diff --git a/decisions/roadmaps/corpus-federation.md b/decisions/roadmaps/corpus-federation.md index 385d057e..5de0b71e 100644 --- a/decisions/roadmaps/corpus-federation.md +++ b/decisions/roadmaps/corpus-federation.md @@ -197,4 +197,4 @@ by PR (ADR-065). ## Related Tickets -- itsthelore/rac-core#267 +- itsthelore/asdecided-core#267 diff --git a/decisions/roadmaps/corpus-sync.md b/decisions/roadmaps/corpus-sync.md index 74cad44e..81480f5e 100644 --- a/decisions/roadmaps/corpus-sync.md +++ b/decisions/roadmaps/corpus-sync.md @@ -257,4 +257,4 @@ rather than duplicating them. ## Related Tickets -- itsthelore/rac-core#255 +- itsthelore/asdecided-core#255 diff --git a/decisions/roadmaps/decision-to-code-proximity.md b/decisions/roadmaps/decision-to-code-proximity.md index a98ebbb6..402b1e9a 100644 --- a/decisions/roadmaps/decision-to-code-proximity.md +++ b/decisions/roadmaps/decision-to-code-proximity.md @@ -9,7 +9,7 @@ type: roadmap Achieved -Delivered across all three initiatives (epic itsthelore/rac-core#273): +Delivered across all three initiatives (epic itsthelore/asdecided-core#273): decisions declare validated code scope via `## Applies To` (#274); a deterministic path→decisions lookup answers over the `rac decisions-for` CLI and the additive `find_decisions` MCP `path` argument (#275); and the Explorer @@ -212,4 +212,4 @@ everywhere. ## Related Tickets -- itsthelore/rac-core#273 +- itsthelore/asdecided-core#273 diff --git a/decisions/roadmaps/decisions-on-pr.md b/decisions/roadmaps/decisions-on-pr.md index e8ddac07..0929e8f8 100644 --- a/decisions/roadmaps/decisions-on-pr.md +++ b/decisions/roadmaps/decisions-on-pr.md @@ -9,9 +9,9 @@ type: roadmap Achieved -Delivered (epic itsthelore/rac-core#351; itsthelore/rac-ci#3 merged) under +Delivered (epic itsthelore/asdecided-core#351; itsthelore/asdecided-ci#3 merged) under the `pr-decision-surfacing` design's contract. The **Herald** capability — -`itsthelore/rac-ci/herald/github` — computes the merge-base diff, runs +`itsthelore/asdecided-ci/herald/github` — computes the merge-base diff, runs `rac decisions-for --json` per changed path (thin client, ADR-063; the engine owns matching and liveness), and posts one deterministic advisory comment: id, title, matched `## Applies To` scope, and a head-pinned link @@ -147,4 +147,4 @@ a governed decision that is also suspect can be noted. ## Related Tickets -- itsthelore/rac-core#351 +- itsthelore/asdecided-core#351 diff --git a/decisions/roadmaps/freshness-and-drift-detection.md b/decisions/roadmaps/freshness-and-drift-detection.md index 105328a3..7b09c89d 100644 --- a/decisions/roadmaps/freshness-and-drift-detection.md +++ b/decisions/roadmaps/freshness-and-drift-detection.md @@ -207,4 +207,4 @@ benchmark evidence, not phase 1. No requirement is minted yet. ## Related Tickets -- itsthelore/rac-core#277 +- itsthelore/asdecided-core#277 diff --git a/decisions/roadmaps/future/artifact-completeness-benchmark.md b/decisions/roadmaps/future/artifact-completeness-benchmark.md index c718f766..91959ba2 100644 --- a/decisions/roadmaps/future/artifact-completeness-benchmark.md +++ b/decisions/roadmaps/future/artifact-completeness-benchmark.md @@ -15,7 +15,7 @@ measures how completely a recorded corpus specifies a system: an external agent reconstructs a target component from its Lore artifacts alone, and the *residual* — the fraction that cannot be recovered from the record — is the reported result. Sibling to SWE-DecisionBench (`decisiongrounding`); the -harness executes in `itsthelore/rac-benchmarks` (ADR-092), never in +harness executes in `itsthelore/asdecided-benchmarks` (ADR-092), never in `rac-core`. Framed as a completeness diagnostic, not a reconstruction scoreboard, so it stays clear of the spec-as-source line the corpus refuses (ADR-081: "Lore is not an SDD/codegen tool"). @@ -156,4 +156,4 @@ honestly whichever way it falls. ## Related Tickets -- itsthelore/rac-core#299 +- itsthelore/asdecided-core#299 diff --git a/decisions/roadmaps/future/decision-grounding-paper.md b/decisions/roadmaps/future/decision-grounding-paper.md index 2138754d..50d9e7a1 100644 --- a/decisions/roadmaps/future/decision-grounding-paper.md +++ b/decisions/roadmaps/future/decision-grounding-paper.md @@ -20,7 +20,7 @@ ADR-081; it does not alter it. Initiative 1 is complete: the `decision-grounding-thesis` design is Accepted with its open questions resolved. Initiative 2 is run-ready in -`itsthelore/rac-benchmarks`: the paired-significance statistics, the +`itsthelore/asdecided-benchmarks`: the paired-significance statistics, the GitChameleon executable co-primary pipeline, the 49-scenario study-grade roster, and the frozen analysis-plan amendment are landed; only the funded model runs remain (the refreshed funded-run handoff covers both co-primary @@ -166,4 +166,4 @@ call at pickup. ## Related Tickets -- itsthelore/rac-core#293 +- itsthelore/asdecided-core#293 diff --git a/decisions/roadmaps/future/external-benchmark-evidence.md b/decisions/roadmaps/future/external-benchmark-evidence.md index b1a7fc6a..ca0b471b 100644 --- a/decisions/roadmaps/future/external-benchmark-evidence.md +++ b/decisions/roadmaps/future/external-benchmark-evidence.md @@ -121,4 +121,4 @@ candidates and a tracked tier: ## Related Tickets -- itsthelore/rac-benchmarks#10 +- itsthelore/asdecided-benchmarks#10 diff --git a/decisions/roadmaps/future/ts-sdk-stable-release.md b/decisions/roadmaps/future/ts-sdk-stable-release.md index a8bdfffd..322d7239 100644 --- a/decisions/roadmaps/future/ts-sdk-stable-release.md +++ b/decisions/roadmaps/future/ts-sdk-stable-release.md @@ -18,7 +18,7 @@ recorded here. ## Outcomes -- `@itsthelore/rac-sdk` publishes 1.0: a stated stable surface with a +- `@itsthelore/asdecided-sdk` publishes 1.0: a stated stable surface with a semver policy, so consumers (the VS Code extension first) can depend on it without tracking pre-1.0 churn. - The documented API and the actual client surface are the same thing: diff --git a/decisions/roadmaps/growth-programme.md b/decisions/roadmaps/growth-programme.md index f3e316b9..bf802761 100644 --- a/decisions/roadmaps/growth-programme.md +++ b/decisions/roadmaps/growth-programme.md @@ -96,4 +96,4 @@ traceability work from real corpus usage. ## Related Tickets -- itsthelore/rac-core#230 +- itsthelore/asdecided-core#230 diff --git a/decisions/roadmaps/ingest-sources.md b/decisions/roadmaps/ingest-sources.md index 0dce3f56..8fb9c6ce 100644 --- a/decisions/roadmaps/ingest-sources.md +++ b/decisions/roadmaps/ingest-sources.md @@ -9,7 +9,7 @@ type: roadmap Achieved -Delivered across all four initiatives (itsthelore/rac-core#227). `rac ingest` +Delivered across all four initiatives (itsthelore/asdecided-core#227). `rac ingest` now imports note-tool exports by normalisation through the ADR-072 registry (ADR-079): Obsidian vaults (#292), Logseq graphs (#297), Notion "Markdown & CSV" exports (#298), and Roam JSON graphs (#303). Each note becomes a reviewable @@ -134,4 +134,4 @@ the candidate-link review step. ## Related Tickets -- itsthelore/rac-core#227 +- itsthelore/asdecided-core#227 diff --git a/decisions/roadmaps/integration-recipe-factory.md b/decisions/roadmaps/integration-recipe-factory.md index bbd6ba23..5792af4b 100644 --- a/decisions/roadmaps/integration-recipe-factory.md +++ b/decisions/roadmaps/integration-recipe-factory.md @@ -141,4 +141,4 @@ between "documented" and "verified" explicit. ## Related Tickets -- itsthelore/rac-core#248 +- itsthelore/asdecided-core#248 diff --git a/decisions/roadmaps/lean-context-delivery.md b/decisions/roadmaps/lean-context-delivery.md index 052b9bc3..b4ff209b 100644 --- a/decisions/roadmaps/lean-context-delivery.md +++ b/decisions/roadmaps/lean-context-delivery.md @@ -125,4 +125,4 @@ it. ## Related Tickets -- itsthelore/rac-core#248 +- itsthelore/asdecided-core#248 diff --git a/decisions/roadmaps/link-suggestions.md b/decisions/roadmaps/link-suggestions.md index 3a90ffc9..29e840d7 100644 --- a/decisions/roadmaps/link-suggestions.md +++ b/decisions/roadmaps/link-suggestions.md @@ -129,4 +129,4 @@ is advisory, and how to promote a suggestion to a declared edge. ## Related Tickets -- itsthelore/rac-core#225 +- itsthelore/asdecided-core#225 diff --git a/decisions/roadmaps/lore-at-team-scale.md b/decisions/roadmaps/lore-at-team-scale.md index 1c839f00..40b5ffd2 100644 --- a/decisions/roadmaps/lore-at-team-scale.md +++ b/decisions/roadmaps/lore-at-team-scale.md @@ -9,7 +9,7 @@ type: roadmap Achieved -Delivered across all four initiatives (epic itsthelore/rac-core#262). `rac mcp` +Delivered across all four initiatives (epic itsthelore/asdecided-core#262). `rac mcp` gained a streamable HTTP transport so a team points every agent at one always-current `main`-backed endpoint (#263, under the serving decision ADR-098); an opt-in, content-addressed derived-index cache keeps per-call latency flat as @@ -224,4 +224,4 @@ engine. ## Related Tickets -- itsthelore/rac-core#262 +- itsthelore/asdecided-core#262 diff --git a/decisions/roadmaps/oci-image.md b/decisions/roadmaps/oci-image.md index d3ef6fd5..21d58046 100644 --- a/decisions/roadmaps/oci-image.md +++ b/decisions/roadmaps/oci-image.md @@ -11,7 +11,7 @@ Achieved Delivered as recorded (ADR-061 terminal lifecycle): the root `Dockerfile` installs the released `rac-core` on a minimal Python base with `rac` as the -entrypoint, and the official image publishes to `ghcr.io/itsthelore/rac`, +entrypoint, and the official image publishes to `ghcr.io/itsthelore/asdecided-core`, CalVer- and digest-pinned in the quickstart with GitLab CI, Bitbucket, and Jenkins usage snippets — matching this item's recorded scope. A member of the `agnostic-surfaces` programme, Track 1 (distribution and CI reach), named by @@ -40,7 +40,7 @@ consume the image rather than re-solving installation. - Add a publish workflow that builds and pushes the image on the same release tags as the PyPI publish, tagging both the CalVer version and `latest`, to an official registry home (for example - `ghcr.io/itsthelore/rac`; final home decided at pickup). + `ghcr.io/itsthelore/asdecided-core`; final home decided at pickup). - Document the image on the install page: pull, pin-by-digest, and usage snippets for GitLab CI, Bitbucket Pipelines, and Jenkins docker agents running `rac validate` / `rac gate`. @@ -96,4 +96,4 @@ consume the image rather than re-solving installation. ## Related Tickets -- itsthelore/rac-core#280 +- itsthelore/asdecided-core#280 diff --git a/decisions/roadmaps/org-grounding-plane.md b/decisions/roadmaps/org-grounding-plane.md index d9894c84..32450804 100644 --- a/decisions/roadmaps/org-grounding-plane.md +++ b/decisions/roadmaps/org-grounding-plane.md @@ -9,7 +9,7 @@ type: roadmap Achieved -Delivered across all three initiatives (epic itsthelore/rac-core#348), under +Delivered across all three initiatives (epic itsthelore/asdecided-core#348), under the topology decision ADR-117: the recorded shape (one org-standards corpus served over the shipped ADR-098 HTTP endpoint, co-mounted as `lore-org` beside any local `lore` server); the fleet-wiring command (`rac init @@ -176,4 +176,4 @@ unresolved cross-references, and what changes when federation ships. ## Related Tickets -- itsthelore/rac-core#348 +- itsthelore/asdecided-core#348 diff --git a/decisions/roadmaps/rac-editors-buildout.md b/decisions/roadmaps/rac-editors-buildout.md index eba95e7f..2eb1fbd4 100644 --- a/decisions/roadmaps/rac-editors-buildout.md +++ b/decisions/roadmaps/rac-editors-buildout.md @@ -31,7 +31,7 @@ rewriting it. ## Outcomes - The extension source lives, builds, and tests in `rac-editors/vscode/`, - consuming the published `@itsthelore/rac-sdk` — a thin client over the + consuming the published `@itsthelore/asdecided-sdk` — a thin client over the contract, never engine internals (ADR-063). - rac-editors has a merge-gated CI battery (ADR-027, ADR-075) and a tag-triggered release pipeline in which publishing is the last step, @@ -48,7 +48,7 @@ rewriting it. Snapshot-import `typescript/rac-vscode` from rac-core `eed463e^` into `rac-editors/vscode/`, recording the source SHA in the commit body rather than replaying engine-scoped history onto the family trunk. Repoint the SDK -dependency from `file:../rac-sdk` to the published `@itsthelore/rac-sdk` +dependency from `file:../rac-sdk` to the published `@itsthelore/asdecided-sdk` (finishing the v0.22.5 repoint contract, which the removed tree never received). Prove the result: typecheck, test battery, and a packaged VSIX. @@ -92,7 +92,7 @@ once the publisher decision lands, and the first publish waits for it. ## Assumptions -- `@itsthelore/rac-sdk` is published on npm (verified: 0.1.0) and exposes the +- `@itsthelore/asdecided-sdk` is published on npm (verified: 0.1.0) and exposes the API surface the extension consumes; if not, the fix is a new SDK release via the v0.22.3 flow, never vendored SDK code (ADR-063). - The Explorer webview keeps consuming `rac export --html` output at runtime @@ -137,4 +137,4 @@ once the publisher decision lands, and the first publish waits for it. ## Related Tickets -- itsthelore/rac-editors#2 +- itsthelore/asdecided-editors#2 diff --git a/decisions/roadmaps/rebuild-scale.md b/decisions/roadmaps/rebuild-scale.md index aa185179..cb7cbc7c 100644 --- a/decisions/roadmaps/rebuild-scale.md +++ b/decisions/roadmaps/rebuild-scale.md @@ -46,7 +46,7 @@ traversal, and incremental recompute. ## Initiatives - Baseline and before-evidence: a deterministic scale-corpus generator and a - rerunnable performance harness in `itsthelore/rac-benchmarks` + rerunnable performance harness in `itsthelore/asdecided-benchmarks` (`scalecorpus/`), measuring the legacy engine across a 1k → 3M curve. - Examiner hardening: characterization tests for unpinned behavior and a performance gate asserting the scale target, both human-approved before diff --git a/decisions/roadmaps/relationship-vocabulary.md b/decisions/roadmaps/relationship-vocabulary.md index 2015cff8..c1b12ad2 100644 --- a/decisions/roadmaps/relationship-vocabulary.md +++ b/decisions/roadmaps/relationship-vocabulary.md @@ -94,4 +94,4 @@ requirement, designable independently. ## Related Tickets -- itsthelore/rac-core#236 +- itsthelore/asdecided-core#236 diff --git a/decisions/roadmaps/relevance-ranking.md b/decisions/roadmaps/relevance-ranking.md index 4c68ae39..f3cff2a6 100644 --- a/decisions/roadmaps/relevance-ranking.md +++ b/decisions/roadmaps/relevance-ranking.md @@ -128,4 +128,4 @@ the committed baseline before the ranking change ships. ## Related Tickets -- itsthelore/rac-core#226 +- itsthelore/asdecided-core#226 diff --git a/decisions/roadmaps/repo-topology/rac-benchmarks.md b/decisions/roadmaps/repo-topology/rac-benchmarks.md index b6336b51..72fbb6ef 100644 --- a/decisions/roadmaps/repo-topology/rac-benchmarks.md +++ b/decisions/roadmaps/repo-topology/rac-benchmarks.md @@ -22,7 +22,7 @@ repos. ## Outcomes -- `itsthelore/rac-benchmarks` exists with the grounding benchmark under +- `itsthelore/asdecided-benchmarks` exists with the grounding benchmark under `decisiongrounding/`; new benchmarks land as sibling subdirs. - The benchmark still consumes `rac` only as an external CLI on `PATH`, with no engine coupling and no change to its deterministic scoring (ADR-066). @@ -40,7 +40,7 @@ repos. ## Success Measures -- `itsthelore/rac-benchmarks` exists with `decisiongrounding/`; the standalone +- `itsthelore/asdecided-benchmarks` exists with `decisiongrounding/`; the standalone repo is archived with a redirect. - The benchmark runs unchanged against the published `rac` CLI; its determinism guarantees (ADR-066) are untouched. diff --git a/decisions/roadmaps/repo-topology/rac-ci.md b/decisions/roadmaps/repo-topology/rac-ci.md index 3d5e72d2..8030450f 100644 --- a/decisions/roadmaps/repo-topology/rac-ci.md +++ b/decisions/roadmaps/repo-topology/rac-ci.md @@ -27,8 +27,8 @@ GitHub→other-platform work is in the thin wrappers, not the engine. ## Outcomes -- A single `itsthelore/rac-ci` repository holds every CI wrapper, a subdir per - capability, consumed as `uses: itsthelore/rac-ci/@`. +- A single `itsthelore/asdecided-ci` repository holds every CI wrapper, a subdir per + capability, consumed as `uses: itsthelore/asdecided-ci/@`. - `rac-actions`, `lore-watchkeeper`, and `lore-gatekeeper` are consolidated into it and archived; the in-repo `action.yml`, `pr-gate-action/`, and `validate-action/` sources are removed from `rac-core` once `rac-ci` carries @@ -51,7 +51,7 @@ GitHub→other-platform work is in the thin wrappers, not the engine. ## Success Measures -- `itsthelore/rac-ci` exists with the capability subdirs and a pinnable suite +- `itsthelore/asdecided-ci` exists with the capability subdirs and a pinnable suite tag; the three predecessor action repos are archived with redirects. - No consumer reference traces to an in-repo action path or a `lore-*` action repo; `rac-core`'s dogfood CI is green against the new locations. @@ -63,7 +63,7 @@ GitHub→other-platform work is in the thin wrappers, not the engine. - The actions consume only the public `rac` CLI, never engine internals, so they run from any repo once published. - Coupled suite version tags (one `rac-ci` version) and consumption via - `uses: itsthelore/rac-ci/@` rather than per-action + `uses: itsthelore/asdecided-ci/@` rather than per-action Marketplace listings are acceptable (ADR-092). - The maintainer can create `rac-ci` and archive the predecessor repos. diff --git a/decisions/roadmaps/repo-topology/rac-connectors.md b/decisions/roadmaps/repo-topology/rac-connectors.md index ed8caa6d..3ae5c8d5 100644 --- a/decisions/roadmaps/repo-topology/rac-connectors.md +++ b/decisions/roadmaps/repo-topology/rac-connectors.md @@ -42,7 +42,7 @@ item applies the `rac-*` name and the wider remit. ## Success Measures -- `itsthelore/rac-connectors` exists with the subdir-per-integration layout; the +- `itsthelore/asdecided-connectors` exists with the subdir-per-integration layout; the old name redirects. - No `rac-core` doc or corpus reference points to `lore-connectors`. - Connectors still consume only the published export/ingest contracts and the diff --git a/decisions/roadmaps/repo-topology/rac-editors.md b/decisions/roadmaps/repo-topology/rac-editors.md index dbc70844..a16cb45b 100644 --- a/decisions/roadmaps/repo-topology/rac-editors.md +++ b/decisions/roadmaps/repo-topology/rac-editors.md @@ -21,7 +21,7 @@ lives at the marketplace listing, not the repository name (ADR-092). ## Outcomes -- `itsthelore/rac-editors` exists with the VS Code / Cursor extension under +- `itsthelore/asdecided-editors` exists with the VS Code / Cursor extension under `vscode/`; further IDE clients land as sibling subdirs. - The Marketplace / OpenVSX listing identity and the published extension id are unchanged, so installed users are unaffected — only the source repo moves. @@ -38,7 +38,7 @@ lives at the marketplace listing, not the repository name (ADR-092). ## Success Measures -- `itsthelore/rac-editors` exists with `vscode/`; `lore-vscode` is archived with +- `itsthelore/asdecided-editors` exists with `vscode/`; `lore-vscode` is archived with a redirect. - The extension continues to publish and update for existing users with no identity break. @@ -46,7 +46,7 @@ lives at the marketplace listing, not the repository name (ADR-092). ## Assumptions -- The extension consumes the published `@itsthelore/rac-sdk` and the public CLI, +- The extension consumes the published `@itsthelore/asdecided-sdk` and the public CLI, never engine internals (ADR-063), so the repo move needs no contract change. - A shared VSIX serves VS Code and its Cursor fork (ADR-068's surviving client decision), so `vscode/` covers both today. diff --git a/decisions/roadmaps/repo-topology/rac-sdk.md b/decisions/roadmaps/repo-topology/rac-sdk.md index 4b85851b..a3666499 100644 --- a/decisions/roadmaps/repo-topology/rac-sdk.md +++ b/decisions/roadmaps/repo-topology/rac-sdk.md @@ -14,7 +14,7 @@ Planned ADR-092 places the non-Python language SDKs in a single `rac-sdk` repository, subdir per language (`ts/`, `go/`, …). The existing `rac-sdk-ts` (extracted in -v0.22.5, published to npm as `@itsthelore/rac-sdk`) becomes `rac-sdk/ts/`. The +v0.22.5, published to npm as `@itsthelore/asdecided-sdk`) becomes `rac-sdk/ts/`. The **Python SDK stays in `rac-core`** — its public surface *is* `rac.__all__` shipped inside the engine package (ADR-062), and the engine plus its server are one package (ADR-029). Non-Python clients remain thin contract clients over the @@ -22,9 +22,9 @@ stable `--json` surface (ADR-063). ## Outcomes -- `itsthelore/rac-sdk` exists with `ts/` holding the former `rac-sdk-ts`; further +- `itsthelore/asdecided-sdk` exists with `ts/` holding the former `rac-sdk-ts`; further languages land as sibling subdirs. -- The published npm package name is unchanged (`@itsthelore/rac-sdk`), so no +- The published npm package name is unchanged (`@itsthelore/asdecided-sdk`), so no consumer break — only the source repository moves. - The Python SDK remains in `rac-core`; no Python SDK repo is created. @@ -32,7 +32,7 @@ stable `--json` surface (ADR-063). - **Seed `rac-sdk`** with the `rac-sdk-ts` history under `ts/`; archive `rac-sdk-ts` with a redirect note. -- **Preserve the npm identity**: continue publishing `@itsthelore/rac-sdk` from +- **Preserve the npm identity**: continue publishing `@itsthelore/asdecided-sdk` from `rac-sdk/ts/`, with per-subdir release tags (polyglot-monorepo cost accepted, ADR-092). - **Update references** in `rac-core` docs/corpus that point at `rac-sdk-ts` to @@ -40,9 +40,9 @@ stable `--json` surface (ADR-063). ## Success Measures -- `itsthelore/rac-sdk` exists with `ts/`; `rac-sdk-ts` is archived with a +- `itsthelore/asdecided-sdk` exists with `ts/`; `rac-sdk-ts` is archived with a redirect. -- `@itsthelore/rac-sdk` continues to publish and resolve for existing consumers +- `@itsthelore/asdecided-sdk` continues to publish and resolve for existing consumers with no version break. - The Python SDK surface (`rac.__all__`) stays in `rac-core`; no `rac-sdk-py` repo appears. @@ -59,7 +59,7 @@ stable `--json` surface (ADR-063). ## Risks - **npm-consumer break** if the package name or publish flow changes. Mitigation: - keep `@itsthelore/rac-sdk` exactly; move only the source repo, behind a GitHub + keep `@itsthelore/asdecided-sdk` exactly; move only the source repo, behind a GitHub redirect. - **Toolchain friction** across languages in one repo. Mitigation: isolate each language in its subdir with its own build and release tag. diff --git a/decisions/roadmaps/repo-topology/repo-topology-convergence.md b/decisions/roadmaps/repo-topology/repo-topology-convergence.md index 8faa1a0d..f2415edb 100644 --- a/decisions/roadmaps/repo-topology/repo-topology-convergence.md +++ b/decisions/roadmaps/repo-topology/repo-topology-convergence.md @@ -115,4 +115,4 @@ Each initiative is its own item in this series, executed independently: ## Related Tickets -- itsthelore/rac-core#228 +- itsthelore/asdecided-core#228 diff --git a/decisions/roadmaps/retrieval-diagnostics.md b/decisions/roadmaps/retrieval-diagnostics.md index ed0ce3dc..2452a769 100644 --- a/decisions/roadmaps/retrieval-diagnostics.md +++ b/decisions/roadmaps/retrieval-diagnostics.md @@ -128,4 +128,4 @@ behaviour. ## Related Tickets -- itsthelore/rac-core#248 +- itsthelore/asdecided-core#248 diff --git a/decisions/roadmaps/v0.22.x-housekeeping/v0.22.3-ts-sdk-npm-publishable.md b/decisions/roadmaps/v0.22.x-housekeeping/v0.22.3-ts-sdk-npm-publishable.md index cf7ffeeb..d91d52c5 100644 --- a/decisions/roadmaps/v0.22.x-housekeeping/v0.22.3-ts-sdk-npm-publishable.md +++ b/decisions/roadmaps/v0.22.x-housekeeping/v0.22.3-ts-sdk-npm-publishable.md @@ -13,7 +13,7 @@ Achieved ## Context ADR-068 makes the TypeScript client SDK its own repository, `rac-sdk-ts`, -published to npm as `@itsthelore/rac-sdk`. Today the extension consumes the SDK +published to npm as `@itsthelore/asdecided-sdk`. Today the extension consumes the SDK over a `file:../rac-sdk` relative path, which couples the two and blocks per-client repositories. This release makes `@rac/sdk` npm-publishable so the extension — and future per-client repos — consume the published package. It @@ -23,14 +23,14 @@ extension to the published package. ## Outcomes - `@rac/sdk` builds and publishes to npm under the scoped name - `@itsthelore/rac-sdk`, with a tag-driven publish workflow. + `@itsthelore/asdecided-sdk`, with a tag-driven publish workflow. - The extension can consume the published package instead of a relative path. ## Initiatives ### Initiative 1 — Package configuration -Set the scoped package name `@itsthelore/rac-sdk`, add `publishConfig` for +Set the scoped package name `@itsthelore/asdecided-sdk`, add `publishConfig` for public scoped publishing, and confirm the build output and `exports` map are correct for consumers. @@ -55,7 +55,7 @@ npm, matching the per-repo tag-driven release model (ADR-068). ## Implementation Contract -- `@rac/sdk` is named `@itsthelore/rac-sdk` with `publishConfig` and a verified +- `@rac/sdk` is named `@itsthelore/asdecided-sdk` with `publishConfig` and a verified build / `exports` map. - An `sdk-v*` publish workflow builds and publishes to npm. - The SDK's public API and the engine contract are unchanged; existing SDK @@ -63,7 +63,7 @@ npm, matching the per-repo tag-driven release model (ADR-068). ## Success Measures -- A dry-run (or first) publish under `@itsthelore/rac-sdk` succeeds from an +- A dry-run (or first) publish under `@itsthelore/asdecided-sdk` succeeds from an `sdk-v*` tag. - The published package exposes the same API the extension consumes today. diff --git a/decisions/roadmaps/v0.22.x-housekeeping/v0.22.5-extract-typescript-stack.md b/decisions/roadmaps/v0.22.x-housekeeping/v0.22.5-extract-typescript-stack.md index 49cb1e75..6eda3575 100644 --- a/decisions/roadmaps/v0.22.x-housekeeping/v0.22.5-extract-typescript-stack.md +++ b/decisions/roadmaps/v0.22.x-housekeeping/v0.22.5-extract-typescript-stack.md @@ -31,7 +31,7 @@ the SDK npm-publishable. After `lore-vscode` and `rac-sdk-ts` are seeded, repoint the extension's dependency from `file:../rac-sdk` to the published `@rac/sdk` -(`@itsthelore/rac-sdk`). +(`@itsthelore/asdecided-sdk`). ### Initiative 2 — Remove the in-repo stack and CI @@ -54,7 +54,7 @@ update docs that reference the in-repo stack. ## Implementation Contract -- The extension depends on `@itsthelore/rac-sdk` (published), not +- The extension depends on `@itsthelore/asdecided-sdk` (published), not `file:../rac-sdk`. - `typescript/rac-vscode` and `typescript/rac-sdk` are removed; the `extension-release.yml` and `typescript.yml` workflows and their CI batteries @@ -78,7 +78,7 @@ update docs that reference the in-repo stack. ## Assumptions -- v0.22.3 has published `@rac/sdk` as `@itsthelore/rac-sdk`. +- v0.22.3 has published `@rac/sdk` as `@itsthelore/asdecided-sdk`. - `lore-vscode` and `rac-sdk-ts` are seeded with preserved history before the engine-side removal. diff --git a/decisions/roadmaps/warm-by-default.md b/decisions/roadmaps/warm-by-default.md index 62b8fab2..52087df5 100644 --- a/decisions/roadmaps/warm-by-default.md +++ b/decisions/roadmaps/warm-by-default.md @@ -122,4 +122,4 @@ stat-rung part of it to scheduled work and flips the posture, per ADR-112. ## Related Tickets -- itsthelore/rac-core#340 +- itsthelore/asdecided-core#340 diff --git a/docs/cli.md b/docs/cli.md index 9731e05f..49cb7afe 100644 --- a/docs/cli.md +++ b/docs/cli.md @@ -131,8 +131,8 @@ Corpus references This is the engine seam the generated Claude Code pre-edit hook pipes proposed content into; see [Agent integration](governance.md#agent-integration-context-supply-and-enforcement). Validation stays in `rac` — the hook computes nothing -([ADR-067](https://github.com/itsthelore/rac-core/blob/main/decisions/decisions/adr-067-agent-integration-boundary.md), -[ADR-063](https://github.com/itsthelore/rac-core/blob/main/decisions/decisions/adr-063-non-python-clients-are-thin.md)). +([ADR-067](https://github.com/itsthelore/asdecided-core/blob/main/decisions/decisions/adr-067-agent-integration-boundary.md), +[ADR-063](https://github.com/itsthelore/asdecided-core/blob/main/decisions/decisions/adr-063-non-python-clients-are-thin.md)). --- diff --git a/docs/context-cost.md b/docs/context-cost.md index e3ce64c7..3705090f 100644 --- a/docs/context-cost.md +++ b/docs/context-cost.md @@ -24,7 +24,7 @@ schemas a client loads every session — is measured deterministically and offli measures ~915 tokens against a 1000 budget — roughly 25× under the ~23k figure the context-tax critique cited. A description or schema edit that inflates the surface fails CI rather than quietly taxing every session (see the -[`decided-mcp-surface-budget`](https://github.com/itsthelore/rac-core/blob/main/decisions/requirements/decided-mcp-surface-budget.md) +[`decided-mcp-surface-budget`](https://github.com/itsthelore/asdecided-core/blob/main/decisions/requirements/decided-mcp-surface-budget.md) requirement and `decisions/mcp/surface.py`). ## 2. Retrieval is selective and on-demand by default diff --git a/docs/decisions-on-pr.md b/docs/decisions-on-pr.md index 2a681ae9..86349f35 100644 --- a/docs/decisions-on-pr.md +++ b/docs/decisions-on-pr.md @@ -13,7 +13,7 @@ review. It never gates the merge, never fails the check on findings, and the human PR review stays the trust boundary. Herald ships in the CI delivery repo, -[`itsthelore/rac-ci`](https://github.com/itsthelore/rac-ci), beside the +[`itsthelore/asdecided-ci`](https://github.com/itsthelore/asdecided-ci), beside the Watchkeeper, Gatekeeper, and Registrar wrappers. ## 1. Wire it up @@ -35,7 +35,7 @@ jobs: with: fetch-depth: 0 # the diff needs the merge base - - uses: itsthelore/rac-ci/herald/github@main + - uses: itsthelore/asdecided-ci/herald/github@main with: path: rac ``` diff --git a/docs/ecosystem.md b/docs/ecosystem.md index c56f9bff..4658e9ea 100644 --- a/docs/ecosystem.md +++ b/docs/ecosystem.md @@ -7,14 +7,14 @@ planned or placeholder entries. | Name | What it is | Where | | --- | --- | --- | -| RAC dogfood corpus | This repository's own product knowledge — requirements, decisions, roadmaps, prompts, designs — validated in CI by the engine it specifies | [`decisions/`](https://github.com/itsthelore/rac-core/tree/main/decisions/) | -| `rac-artifacts` Claude Code skill | A project-level agent skill that teaches Claude Code to create, validate, and update RAC artifacts using the `rac` CLI | [`.claude/skills/rac-artifacts/`](https://github.com/itsthelore/rac-core/blob/main/.claude/skills/rac-artifacts/SKILL.md) | -| MCP grounding example | A runnable demo showing an agent connected to RAC Guide over MCP respecting a recorded decision that an unconnected agent violates | [`examples/guide/`](https://github.com/itsthelore/rac-core/blob/main/examples/guide/demo.md) | -| Amp setup | A worked setup connecting Sourcegraph's Amp to RAC — it reads the generated `AGENTS.md` natively and queries the `lore` MCP server | [`examples/amp/`](https://github.com/itsthelore/rac-core/blob/main/examples/amp/README.md) | -| Claude Code setup | A worked setup connecting Claude Code to RAC — the generated `CLAUDE.md`, the `lore` MCP server, the `rac-artifacts` skill, and the optional pre-edit veto hook | [`examples/claude-code/`](https://github.com/itsthelore/rac-core/blob/main/examples/claude-code/README.md) | -| Codex setup | A worked setup connecting OpenAI Codex to RAC — it reads the generated `AGENTS.md` and queries the `lore` MCP server via `config.toml` | [`examples/codex/`](https://github.com/itsthelore/rac-core/blob/main/examples/codex/README.md) | -| Cursor setup | A worked setup connecting Cursor to RAC — it reads the generated `AGENTS.md` and queries the `lore` MCP server via `.cursor/mcp.json` | [`examples/cursor/`](https://github.com/itsthelore/rac-core/blob/main/examples/cursor/README.md) | -| GitHub Copilot setup | A worked setup connecting Copilot in VS Code to RAC — the generated `.github/copilot-instructions.md` plus the `lore` MCP server in agent mode | [`examples/copilot/`](https://github.com/itsthelore/rac-core/blob/main/examples/copilot/README.md) | +| RAC dogfood corpus | This repository's own product knowledge — requirements, decisions, roadmaps, prompts, designs — validated in CI by the engine it specifies | [`decisions/`](https://github.com/itsthelore/asdecided-core/tree/main/decisions/) | +| `rac-artifacts` Claude Code skill | A project-level agent skill that teaches Claude Code to create, validate, and update RAC artifacts using the `rac` CLI | [`.claude/skills/rac-artifacts/`](https://github.com/itsthelore/asdecided-core/blob/main/.claude/skills/rac-artifacts/SKILL.md) | +| MCP grounding example | A runnable demo showing an agent connected to RAC Guide over MCP respecting a recorded decision that an unconnected agent violates | [`examples/guide/`](https://github.com/itsthelore/asdecided-core/blob/main/examples/guide/demo.md) | +| Amp setup | A worked setup connecting Sourcegraph's Amp to RAC — it reads the generated `AGENTS.md` natively and queries the `lore` MCP server | [`examples/amp/`](https://github.com/itsthelore/asdecided-core/blob/main/examples/amp/README.md) | +| Claude Code setup | A worked setup connecting Claude Code to RAC — the generated `CLAUDE.md`, the `lore` MCP server, the `rac-artifacts` skill, and the optional pre-edit veto hook | [`examples/claude-code/`](https://github.com/itsthelore/asdecided-core/blob/main/examples/claude-code/README.md) | +| Codex setup | A worked setup connecting OpenAI Codex to RAC — it reads the generated `AGENTS.md` and queries the `lore` MCP server via `config.toml` | [`examples/codex/`](https://github.com/itsthelore/asdecided-core/blob/main/examples/codex/README.md) | +| Cursor setup | A worked setup connecting Cursor to RAC — it reads the generated `AGENTS.md` and queries the `lore` MCP server via `.cursor/mcp.json` | [`examples/cursor/`](https://github.com/itsthelore/asdecided-core/blob/main/examples/cursor/README.md) | +| GitHub Copilot setup | A worked setup connecting Copilot in VS Code to RAC — the generated `.github/copilot-instructions.md` plus the `lore` MCP server in agent mode | [`examples/copilot/`](https://github.com/itsthelore/asdecided-core/blob/main/examples/copilot/README.md) | ## Adding an entry @@ -37,7 +37,7 @@ A harness integration (a worked `examples//` setup connecting a coding agent to RAC) follows a template and a verification gate — see the [integration recipes authoring guide](integration-recipes.md). A recipe is listed here **only after it is smoke-tested against a released engine -version** by running the grounding demo ([`examples/guide/`](https://github.com/itsthelore/rac-core/blob/main/examples/guide/demo.md)) +version** by running the grounding demo ([`examples/guide/`](https://github.com/itsthelore/asdecided-core/blob/main/examples/guide/demo.md)) with the harness connected. Until then it ships as documentation carrying a `verify against ` marker and stays off this table — the real-and-verified rule made a precondition of the row, not a courtesy. diff --git a/docs/examples/rac-validate.sarif.json b/docs/examples/rac-validate.sarif.json index 57827391..f37c590a 100644 --- a/docs/examples/rac-validate.sarif.json +++ b/docs/examples/rac-validate.sarif.json @@ -6,7 +6,7 @@ "tool": { "driver": { "name": "rac", - "informationUri": "https://github.com/itsthelore/rac-core", + "informationUri": "https://github.com/itsthelore/asdecided-core", "version": "0.15.2", "rules": [ { diff --git a/docs/governance.md b/docs/governance.md index b7575231..d2fa3425 100644 --- a/docs/governance.md +++ b/docs/governance.md @@ -10,9 +10,9 @@ The policy is governed, not hardcoded. A repository declares which finding classes block the gate in its committed `.decided/config.yaml`, so the same policy travels with the corpus and applies identically in the editor and in CI. The decisions behind this are -[ADR-049](https://github.com/itsthelore/rac-core/blob/main/decisions/decisions/adr-049-enforcement-is-the-product.md) +[ADR-049](https://github.com/itsthelore/asdecided-core/blob/main/decisions/decisions/adr-049-enforcement-is-the-product.md) (enforcement is the product) and -[ADR-063](https://github.com/itsthelore/rac-core/blob/main/decisions/decisions/adr-063-non-python-clients-are-thin.md) +[ADR-063](https://github.com/itsthelore/asdecided-core/blob/main/decisions/decisions/adr-063-non-python-clients-are-thin.md) (policy lives in the corpus, not in any consumer). ## Running the gate @@ -134,7 +134,7 @@ data in `.decided/config.yaml`, a team can standardise it across a fleet: - **Adopt warnings-first, then ratchet.** A new team can start with broad `advisory`/`off` entries to get the gate green on a legacy corpus, then move codes back to `blocking` one at a time as the corpus is cleaned up — the same - ratchet the severity overrides ([ADR-053](https://github.com/itsthelore/rac-core/blob/main/decisions/decisions/adr-053-validation-severity-overrides.md)) + ratchet the severity overrides ([ADR-053](https://github.com/itsthelore/asdecided-core/blob/main/decisions/decisions/adr-053-validation-severity-overrides.md)) offer for `decided validate`, now spanning the whole gate. Because the same file governs both the editor and the PR action, a fleet-wide @@ -146,7 +146,7 @@ AI coding agents are the place a settled decision is most likely to be quietly re-litigated, because the agent never sees the corpus. RAC integrates with agents through two deterministic, engine-owned channels and enforces with structural validation — **not** a semantic verdict and **not** a cross-platform interceptor -([ADR-067](https://github.com/itsthelore/rac-core/blob/main/decisions/decisions/adr-067-agent-integration-boundary.md)): +([ADR-067](https://github.com/itsthelore/asdecided-core/blob/main/decisions/decisions/adr-067-agent-integration-boundary.md)): - **Context supply.** `decided export --agent-rules` generates committed, drift-guarded rules files (`CLAUDE.md`, `AGENTS.md`, `.cursor/rules`, @@ -179,7 +179,7 @@ not itself the interceptor. The generated hook: It is **opt-in and Claude-Code-specific**. All validation stays in `rac` — the hook computes nothing -([ADR-063](https://github.com/itsthelore/rac-core/blob/main/decisions/decisions/adr-063-non-python-clients-are-thin.md)). +([ADR-063](https://github.com/itsthelore/asdecided-core/blob/main/decisions/decisions/adr-063-non-python-clients-are-thin.md)). Disabling it (**"RAC: Disable Claude Code pre-edit hook"**, or deleting the registration) falls back cleanly to the post-edit diagnostics above. RAC makes no claim of intercepting Copilot inline suggestions or Cursor agent edits — no diff --git a/docs/index.md b/docs/index.md index 1da4e7f9..bac884d5 100644 --- a/docs/index.md +++ b/docs/index.md @@ -24,7 +24,7 @@ The agent calls AsDecided, finds your soft-delete decision, cites it by ID, and The server exposes four read-only tools: `get_artifact`, `search_artifacts`, `get_related`, `get_summary`. It never writes to your repo. -▶ **Full walkthrough + runnable example: [examples/guide/](https://github.com/itsthelore/rac-core/tree/main/examples/guide)** +▶ **Full walkthrough + runnable example: [examples/guide/](https://github.com/itsthelore/asdecided-core/tree/main/examples/guide)** ## Why this works @@ -100,7 +100,7 @@ AsDecided asks you to trust it with your product knowledge, so it holds itself t - **The MCP server is read-only by construction.** It cannot create, modify, or delete files in your repo — enforced in code and verified by tests, not by convention. - **No AI in the core.** Retrieval is deterministic: the same repo state and the same query always return the same result. The reasoning is your agent's job; AsDecided's job is to hand it the facts. -- **It dogfoods itself.** AsDecided's own planning corpus under [`decisions/`](https://github.com/itsthelore/rac-core/tree/main/rac) is validated by RAC in CI — if the tool's rules break the tool's own artifacts, the build fails. +- **It dogfoods itself.** AsDecided's own planning corpus under [`decisions/`](https://github.com/itsthelore/asdecided-core/tree/main/rac) is validated by RAC in CI — if the tool's rules break the tool's own artifacts, the build fails. - **Output is a contract.** Golden tests pin CLI and MCP output; any change to what the tools return is reviewed as a product change. - **Telemetry is opt-in twice over.** Local recording needs an explicit `--telemetry` flag and never includes your arguments or repository content. Remote sharing is a separate, explicit consent (`decided telemetry on`, or one honest question at `decided init`): one anonymous daily ping — a random install id, the version, and an active-repo count — never paths, queries, or content. `decided telemetry status` shows exactly what is shared, the network surface is a single readable module, and ADR-041 records the decision. @@ -117,6 +117,6 @@ The JSON payload is a stable contract (artifacts with ids, aliases, status, rend --- -AsDecided is early and evolving quickly. The MCP server ships today; feedback from teams running agents in anger is exactly what shapes what comes next. Contributions, ideas, and experiments welcome — see [CONTRIBUTING.md](https://github.com/itsthelore/rac-core/blob/main/CONTRIBUTING.md). +AsDecided is early and evolving quickly. The MCP server ships today; feedback from teams running agents in anger is exactly what shapes what comes next. Contributions, ideas, and experiments welcome — see [CONTRIBUTING.md](https://github.com/itsthelore/asdecided-core/blob/main/CONTRIBUTING.md). -[GitHub repository](https://github.com/itsthelore/rac-core) · [MIT license](https://github.com/itsthelore/rac-core/blob/main/LICENSE) +[GitHub repository](https://github.com/itsthelore/asdecided-core) · [MIT license](https://github.com/itsthelore/asdecided-core/blob/main/LICENSE) diff --git a/docs/integration-recipes.md b/docs/integration-recipes.md index d0a8ba31..8486581c 100644 --- a/docs/integration-recipes.md +++ b/docs/integration-recipes.md @@ -10,7 +10,7 @@ This guide is the authoring contract for those recipes. The shapes recur — the `lore` invocation in three config dialects, the same push/pull/enforcement README structure, the same "verify with the grounding demo" close — so a new recipe is filling a template, not reverse-engineering an existing one. Every recipe adds -**zero `rac-core` engine diff**: it consumes only the two stable surfaces (the +**zero `asdecided-core` engine diff**: it consumes only the two stable surfaces (the export and the MCP server) as additive contracts (ADR-007, ADR-008, ADR-063), and stores and serves nothing new (ADR-024). @@ -94,7 +94,7 @@ every other recipe points readers there rather than describing a hook of its own - [ ] Section 3 is the fixed ADR-067 paragraph, client name swapped, nothing else changed — no pre-edit hook described. - [ ] The "Verify it" close points at [`examples/guide/`](../examples/guide/demo.md). -- [ ] The recipe adds **no** `rac-core` source diff (documentation only). +- [ ] The recipe adds **no** `asdecided-core` source diff (documentation only). - [ ] The recipe carries the `verify against ` marker and is **not** yet added to `docs/ecosystem.md` (see the verification gate below). @@ -108,7 +108,7 @@ reader can trust every harness [`docs/ecosystem.md`](ecosystem.md) lists. `verify against ` marker (the convention already used in [`docs/mcp.md`](mcp.md)) and **stays off** the `docs/ecosystem.md` table. It is useful documentation; it makes no verified-integration claim. -- **Verified.** Smoke-test the recipe against a **released** `rac-core` version by +- **Verified.** Smoke-test the recipe against a **released** `asdecided-core` version by running the grounding demo ([`examples/guide/`](../examples/guide/demo.md)) with the harness connected over the recipe's config — the same engine behaviour every recipe is proven against. Only then remove the marker and add a diff --git a/docs/mcp.md b/docs/mcp.md index a6c790e0..59abb5e1 100644 --- a/docs/mcp.md +++ b/docs/mcp.md @@ -99,7 +99,7 @@ tools: The tool travels with the agent definition, so it stays attached whichever harness Omnigent routes to. A worked setup — including pointing the agent's `instructions` at the generated `AGENTS.md` — is in -[`examples/omnigent/`](https://github.com/itsthelore/rac-core/blob/main/examples/omnigent/README.md). +[`examples/omnigent/`](https://github.com/itsthelore/asdecided-core/blob/main/examples/omnigent/README.md). @@ -319,7 +319,7 @@ nothing at all — `decided telemetry status` will say so. For regulated installs that must record *who consulted which decision, when, and which artifact IDs came back* — the audit trail telemetry deliberately does not keep — the server can append one JSON line per read-tool call to a local file -([ADR-084](https://github.com/itsthelore/rac-core/blob/main/decisions/decisions/adr-084-read-access-audit-recorder.md)). +([ADR-084](https://github.com/itsthelore/asdecided-core/blob/main/decisions/decisions/adr-084-read-access-audit-recorder.md)). It is **content-bearing by design and off by default**: with no `audit:` stanza nothing is written and responses are byte-identical to a server with no recorder. @@ -361,7 +361,7 @@ so a single construction-time principal would record every caller as the host. Each request instead asserts who it is with the **`X-AsDecided-Principal`** header, and the audit line records that per-request principal with `transport: http` and `attribution: asserted` -([ADR-098](https://github.com/itsthelore/rac-core/blob/main/decisions/decisions/adr-098-shared-http-mcp-serving.md)): +([ADR-098](https://github.com/itsthelore/asdecided-core/blob/main/decisions/decisions/adr-098-shared-http-mcp-serving.md)): ``` X-AsDecided-Principal: Alice Ng @@ -384,7 +384,7 @@ that developer's own checkout. At team scale you may instead want **one always-current endpoint** every agent points at, so reads come from a single `main`-backed source of truth rather than checkouts that lag between pulls. The server gains a streamable **HTTP transport** for exactly this -([ADR-098](https://github.com/itsthelore/rac-core/blob/main/decisions/decisions/adr-098-shared-http-mcp-serving.md)): +([ADR-098](https://github.com/itsthelore/asdecided-core/blob/main/decisions/decisions/adr-098-shared-http-mcp-serving.md)): ```bash decided-mcp --root /path/to/your/repo --transport http --host 127.0.0.1 --port 8000 --path /mcp @@ -422,7 +422,7 @@ container, authenticating proxy, keep-current step, and observability — is on By default the server reuses the derived structures — the repository index, the relationship graph, and the search token vectors — across calls, kept fresh by an event-sourced watcher -([ADR-099](https://github.com/itsthelore/rac-core/blob/main/decisions/decisions/adr-099-derived-index-cache.md), +([ADR-099](https://github.com/itsthelore/asdecided-core/blob/main/decisions/decisions/adr-099-derived-index-cache.md), default-on per ADR-112): ```bash @@ -487,4 +487,4 @@ the repository has not been initialized. See the troubleshooting steps above. - [CLI reference](cli.md) — every `rac` command including `decided-mcp` - [Artifact types](artifacts.md) — what requirements, decisions, designs, roadmaps, and prompts look like - [Repository workflow](repo-workflow.md) — how to organize a RAC repository -- [Examples corpus](https://github.com/itsthelore/rac-core/tree/main/examples/guide/) — the ready-made guide corpus +- [Examples corpus](https://github.com/itsthelore/asdecided-core/tree/main/examples/guide/) — the ready-made guide corpus diff --git a/docs/okf-profile.md b/docs/okf-profile.md index 14f38d55..8214ba30 100644 --- a/docs/okf-profile.md +++ b/docs/okf-profile.md @@ -7,7 +7,7 @@ does — a Git tree of Markdown files with YAML front matter. This page is RAC's presents itself as a conformant OKF bundle. It is a derived, interoperability view; RAC Core and `decided validate` remain the source of truth, and adopting this profile loosens none of RAC's guarantees. The decision behind it is -[ADR-048](https://github.com/itsthelore/rac-core/blob/main/decisions/decisions/adr-048-okf-carrier-profile.md), +[ADR-048](https://github.com/itsthelore/asdecided-core/blob/main/decisions/decisions/adr-048-okf-carrier-profile.md), scoped by the `rac-okf-carrier-profile` requirement. > The key words MUST, SHOULD, and MAY in this document are to be interpreted as diff --git a/docs/org-grounding.md b/docs/org-grounding.md index 92596245..1b61bcbe 100644 --- a/docs/org-grounding.md +++ b/docs/org-grounding.md @@ -5,7 +5,7 @@ by every engineer's agent — including in repositories that have no corpus of their own. This page is the recipe for standing that up on surfaces that already ship: an ordinary corpus, the [shared server](shared-server.md), and one line of client wiring -([ADR-117](https://github.com/itsthelore/rac-core/blob/main/decisions/decisions/adr-117-org-grounding-plane-topology.md)). +([ADR-117](https://github.com/itsthelore/asdecided-core/blob/main/decisions/decisions/adr-117-org-grounding-plane-topology.md)). It is a deployment topology, not a new engine capability: no cross-corpus resolution, no federation semantics, no authentication code. Those boundaries @@ -19,7 +19,7 @@ agents most need — platform standards, golden paths, firm-wide ADRs — are org-wide. A per-repository corpus gives those decisions a reach of one. Corpus federation -([ADR-089](https://github.com/itsthelore/rac-core/blob/main/decisions/decisions/adr-089-corpus-federation.md)) +([ADR-089](https://github.com/itsthelore/asdecided-core/blob/main/decisions/decisions/adr-089-corpus-federation.md)) is the eventual mechanism, and it is deliberately paced. The org grounding plane is the day-1 answer: put the firm-wide knowledge in **one** corpus, serve it from **one** endpoint, and point **every** agent at it. Rollout cost @@ -126,7 +126,7 @@ working: grounding at the agent, accountability at the endpoint. identity, or precedence: a repository's artifacts cannot yet cite an org ADR as a validated relationship, and duplicate ids across the two corpora are not detected. Those semantics arrive with the - [federation programme](https://github.com/itsthelore/rac-core/blob/main/decisions/roadmaps/corpus-federation.md), + [federation programme](https://github.com/itsthelore/asdecided-core/blob/main/decisions/roadmaps/corpus-federation.md), under its recorded constraints. - **Endpoint reach is corpus visibility.** Anyone the proxy admits can read the whole org corpus. Partition sensitive knowledge by corpus topology — @@ -142,6 +142,6 @@ When the ADR-089 mechanism ships, the org corpus you stood up here becomes the pinned, materialised **parent**: references resolve across the boundary, collisions surface as findings, overrides become explicit and attributable, and the enterprise profile gains its parent declaration -([ADR-088](https://github.com/itsthelore/rac-core/blob/main/decisions/decisions/adr-088-enterprise-profile-scaffold.md)). +([ADR-088](https://github.com/itsthelore/asdecided-core/blob/main/decisions/decisions/adr-088-enterprise-profile-scaffold.md)). Nothing about this topology needs to be undone — starting here is starting early, not starting over. diff --git a/docs/quickstart.md b/docs/quickstart.md index ae9a2ac9..1091bf62 100644 --- a/docs/quickstart.md +++ b/docs/quickstart.md @@ -23,15 +23,15 @@ decided --version Every release also publishes a native container image to GHCR: ```bash -docker run --rm -v "$PWD:/work" ghcr.io/itsthelore/rac:latest validate decisions/ +docker run --rm -v "$PWD:/work" ghcr.io/itsthelore/asdecided-core:latest validate decisions/ ``` In CI, pin a release tag rather than `latest`, or pin by digest for immutable builds (the release run prints the pushed digest in its summary): ```bash -docker pull ghcr.io/itsthelore/rac:2026.6.1 -docker pull ghcr.io/itsthelore/rac@sha256: +docker pull ghcr.io/itsthelore/asdecided-core:2026.6.1 +docker pull ghcr.io/itsthelore/asdecided-core@sha256: ``` The image is the CLI and nothing more, so it drops into any docker-native @@ -41,7 +41,7 @@ can run script steps): ```yaml rac-gate: image: - name: ghcr.io/itsthelore/rac:2026.6.1 + name: ghcr.io/itsthelore/asdecided-core:2026.6.1 entrypoint: [""] script: - decided gate decisions/ @@ -55,7 +55,7 @@ pipelines: '**': - step: name: decided gate - image: ghcr.io/itsthelore/rac:2026.6.1 + image: ghcr.io/itsthelore/asdecided-core:2026.6.1 script: - decided gate decisions/ ``` @@ -64,7 +64,7 @@ Jenkins (declarative pipeline, docker agent): ```groovy pipeline { - agent { docker { image 'ghcr.io/itsthelore/rac:2026.6.1' } } + agent { docker { image 'ghcr.io/itsthelore/asdecided-core:2026.6.1' } } stages { stage('decided gate') { steps { sh 'decided gate decisions/' } diff --git a/docs/relationships.md b/docs/relationships.md index 63037440..6a9314d6 100644 --- a/docs/relationships.md +++ b/docs/relationships.md @@ -71,7 +71,7 @@ Each entry is a provider-specific key or a full URL: The engine does **format-lint only, offline**: `decided validate` flags an entry that is not a well-formed key or URL for the configured provider (`malformed-ticket-reference`, overridable per -[ADR-053](https://github.com/itsthelore/rac-core/blob/main/decisions/decisions/adr-053-validation-severity-overrides.md)), +[ADR-053](https://github.com/itsthelore/asdecided-core/blob/main/decisions/decisions/adr-053-validation-severity-overrides.md)), and `decided relationships --validate` never reports a ticket as a broken reference. With no provider configured the section still works, simply unvalidated. Because the provider is named in config, shape-identical keys across trackers (Linear's @@ -92,7 +92,7 @@ only the external one is marked). A decision can declare the code paths or components it governs with an optional `## Applies To` section, so "which recorded decisions apply to the file I'm editing?" becomes corpus data rather than prose (ADR-019, -[decision-to-code-proximity](https://github.com/itsthelore/rac-core/blob/main/decisions/roadmaps/decision-to-code-proximity.md)). +[decision-to-code-proximity](https://github.com/itsthelore/asdecided-core/blob/main/decisions/roadmaps/decision-to-code-proximity.md)). The section is recognised on decisions only: ```markdown diff --git a/docs/repo-workflow.md b/docs/repo-workflow.md index 00a34d79..805f027e 100644 --- a/docs/repo-workflow.md +++ b/docs/repo-workflow.md @@ -26,7 +26,7 @@ easy to read. ### Three documentation layers RAC's own repository separates concerns into three layers -([ADR-022](https://github.com/itsthelore/rac-core/blob/main/decisions/decisions/adr-022-documentation-boundaries.md)): +([ADR-022](https://github.com/itsthelore/asdecided-core/blob/main/decisions/decisions/adr-022-documentation-boundaries.md)): - **`README.md`** — the front door: what RAC is and how to try it. - **`docs/`** — user-facing guides (this directory). diff --git a/docs/scale.md b/docs/scale.md index af93f2bf..2131c5d8 100644 --- a/docs/scale.md +++ b/docs/scale.md @@ -107,7 +107,7 @@ authoritative single-process path and discards partial results whole. Concrete latency and throughput figures — the before/after scale curve across a 1k → millions-of-artifacts corpus on a fixed reference node — live in the -[`rac-benchmarks`](https://github.com/itsthelore/rac-benchmarks) harness, which +[`rac-benchmarks`](https://github.com/itsthelore/asdecided-benchmarks) harness, which consumes `rac` strictly as an external CLI so the numbers survive engine rebuilds. The design target is a **flat** warm-retrieval curve as the corpus grows and a cold build that scales linearly and parallel; the harness reports @@ -117,9 +117,9 @@ levers here are single-node. ## Related decisions -- [ADR-104](https://github.com/itsthelore/rac-core/blob/main/decisions/decisions/adr-104-persistent-mmap-index-store.md) — persistent memory-mapped index store -- [ADR-105](https://github.com/itsthelore/rac-core/blob/main/decisions/decisions/adr-105-event-sourced-serving-freshness.md) — event-sourced serving freshness -- [ADR-106](https://github.com/itsthelore/rac-core/blob/main/decisions/decisions/adr-106-incremental-validation.md) — incremental directory validation -- [ADR-107](https://github.com/itsthelore/rac-core/blob/main/decisions/decisions/adr-107-parallel-cold-build.md) — parallel cold build -- [ADR-108](https://github.com/itsthelore/rac-core/blob/main/decisions/decisions/adr-108-term-range-partitioned-parallel-merge.md) — term-range-partitioned parallel merge -- [ADR-110](https://github.com/itsthelore/rac-core/blob/main/decisions/decisions/adr-110-one-shot-find-store-reuse.md) — one-shot `decided find` store reuse +- [ADR-104](https://github.com/itsthelore/asdecided-core/blob/main/decisions/decisions/adr-104-persistent-mmap-index-store.md) — persistent memory-mapped index store +- [ADR-105](https://github.com/itsthelore/asdecided-core/blob/main/decisions/decisions/adr-105-event-sourced-serving-freshness.md) — event-sourced serving freshness +- [ADR-106](https://github.com/itsthelore/asdecided-core/blob/main/decisions/decisions/adr-106-incremental-validation.md) — incremental directory validation +- [ADR-107](https://github.com/itsthelore/asdecided-core/blob/main/decisions/decisions/adr-107-parallel-cold-build.md) — parallel cold build +- [ADR-108](https://github.com/itsthelore/asdecided-core/blob/main/decisions/decisions/adr-108-term-range-partitioned-parallel-merge.md) — term-range-partitioned parallel merge +- [ADR-110](https://github.com/itsthelore/asdecided-core/blob/main/decisions/decisions/adr-110-one-shot-find-store-reuse.md) — one-shot `decided find` store reuse diff --git a/docs/security.md b/docs/security.md index d45738ec..225f5bd1 100644 --- a/docs/security.md +++ b/docs/security.md @@ -33,6 +33,6 @@ cargo test --workspace --release cargo clippy --workspace --all-targets -- -D warnings ``` -CI also runs contract certification against `rac-spec` and live-corpus +CI also runs contract certification against `asdecided-spec` and live-corpus invariants. This is a self-attested open-source security posture, not a third-party certification. diff --git a/docs/shared-server.md b/docs/shared-server.md index 34f8226e..7f977ccb 100644 --- a/docs/shared-server.md +++ b/docs/shared-server.md @@ -14,7 +14,7 @@ observability lives. It assumes you have read the [MCP Server](mcp.md) page. Everything here is deployment wrapper — containers, proxies, collectors — around an unchanged engine. AsDecided gains no hosted service, no database, and no authentication code; git stays the source of truth -([ADR-080](https://github.com/itsthelore/rac-core/blob/main/decisions/decisions/adr-080-single-source-of-truth-git-not-database.md)). +([ADR-080](https://github.com/itsthelore/asdecided-core/blob/main/decisions/decisions/adr-080-single-source-of-truth-git-not-database.md)). ## 1. Do you need it? @@ -61,7 +61,7 @@ as an explicit affirmation. ```bash docker run --rm --entrypoint decided-mcp -p 8000:8000 -v "$PWD:/corpus:ro" \ - ghcr.io/itsthelore/rac:latest \ + ghcr.io/itsthelore/asdecided-core:latest \ --root /corpus --transport http \ --host 0.0.0.0 --port 8000 ``` @@ -84,11 +84,11 @@ internet. ## 4. The authenticating proxy The engine does not authenticate — by design -([ADR-085](https://github.com/itsthelore/rac-core/blob/main/decisions/decisions/adr-085-enterprise-configuration-not-mode.md)). +([ADR-085](https://github.com/itsthelore/asdecided-core/blob/main/decisions/decisions/adr-085-enterprise-configuration-not-mode.md)). Put a reverse proxy in front to terminate TLS, authenticate the caller, and assert the caller's identity to the audit log via the **`X-AsDecided-Principal`** header. The engine records that header as the per-request principal -([ADR-098](https://github.com/itsthelore/rac-core/blob/main/decisions/decisions/adr-098-shared-http-mcp-serving.md)). +([ADR-098](https://github.com/itsthelore/asdecided-core/blob/main/decisions/decisions/adr-098-shared-http-mcp-serving.md)). ```nginx location /mcp { @@ -136,15 +136,15 @@ container: knowledge changes only by pull from `main`, never by the server. ## 6. Observability, and the engine boundary Observability for the shared server lives in the **wrapper**, not the engine -([ADR-091](https://github.com/itsthelore/rac-core/blob/main/decisions/decisions/adr-091-engine-observability-boundary.md)): +([ADR-091](https://github.com/itsthelore/asdecided-core/blob/main/decisions/decisions/adr-091-engine-observability-boundary.md)): - **Engine diagnostics go to stderr.** `decided-mcp` writes startup and operational notices to stderr (stdout is the protocol channel). Collect the container's stderr with your normal log pipeline. - **The audit log is your read-access record.** It is a local JSONL file by design; shipping it to Loki, S3, or Elastic is a collector's job, never the - engine's ([ADR-084](https://github.com/itsthelore/rac-core/blob/main/decisions/decisions/adr-084-read-access-audit-recorder.md), - [ADR-073](https://github.com/itsthelore/rac-core/blob/main/decisions/decisions/adr-073-backend-connectors-consolidate.md)). + engine's ([ADR-084](https://github.com/itsthelore/asdecided-core/blob/main/decisions/decisions/adr-084-read-access-audit-recorder.md), + [ADR-073](https://github.com/itsthelore/asdecided-core/blob/main/decisions/decisions/adr-073-backend-connectors-consolidate.md)). Tail the audit volume with a sidecar and forward it. - **A metrics scrape endpoint belongs to the wrapper, not the engine.** The engine ships no Prometheus `/metrics` surface. If you need scrape metrics, @@ -165,7 +165,7 @@ stand (ADR-085): - **No database or hosted multi-tenant service.** Git `main` is the single source of truth; the server is one reader of it (ADR-080). - **No write path.** Knowledge changes only by pull request to `main` behind - human review ([ADR-065](https://github.com/itsthelore/rac-core/blob/main/decisions/decisions/adr-065-artifact-content-untrusted.md)); + human review ([ADR-065](https://github.com/itsthelore/asdecided-core/blob/main/decisions/decisions/adr-065-artifact-content-untrusted.md)); no transport exposes a write. These are not limitations to work around — they are the properties that let one diff --git a/docs/testing.md b/docs/testing.md index b13665cc..d38c88b3 100644 --- a/docs/testing.md +++ b/docs/testing.md @@ -1,6 +1,6 @@ # Testing -`rac-core` is a native Rust workspace. The former Python engine and its pytest +`asdecided-core` is a native Rust workspace. The former Python engine and its pytest suite are archived at the `python-engine-final` tag and do not run in normal CI. ## Native checks @@ -14,12 +14,12 @@ cargo clippy --workspace --all-targets -- -D warnings The committed Rust fixtures cover deterministic command behavior. Contract compatibility is certified against the language-neutral fixtures in -[`rac-spec`](https://github.com/itsthelore/rac-spec): +[`asdecided-spec`](https://github.com/itsthelore/asdecided-spec): ```bash -DECIDED_SPEC_DIR=/path/to/rac-spec python rust/spec/sync_spec.py +DECIDED_SPEC_DIR=/path/to/asdecided-spec python rust/spec/sync_spec.py python rust/tools/conformance_certify.py \ - --spec-dir /path/to/rac-spec \ + --spec-dir /path/to/asdecided-spec \ --engine "rust=$PWD/rust/target/release/decided" ``` diff --git a/docs/v0.22-housekeeping-runbook.md b/docs/v0.22-housekeeping-runbook.md index 89f5ff67..d876f64a 100644 --- a/docs/v0.22-housekeeping-runbook.md +++ b/docs/v0.22-housekeeping-runbook.md @@ -61,9 +61,9 @@ Install `git-filter-repo` locally (`pip install git-filter-repo`). ### v0.22.3 — Publish the TS SDK to npm (`rac-sdk-ts` foundation) 1. Ensure the **npm scope + `NPM_TOKEN`** prerequisite is done. 2. Merge the engine PR that makes `@decisions/sdk` publishable (scoped name - `@itsthelore/rac-sdk`, `publishConfig`, `sdk-v*` workflow). + `@itsthelore/asdecided-sdk`, `publishConfig`, `sdk-v*` workflow). 3. **Publish:** push tag `sdk-v0.1.0` → the workflow publishes to npm. Verify the - package resolves: `npm view @itsthelore/rac-sdk`. + package resolves: `npm view @itsthelore/asdecided-sdk`. (Do this **before** v0.22.5, which repoints the extension to the published SDK.) ### v0.22.4 — Extract `decisiongrounding` (cleanest; do first) @@ -81,7 +81,7 @@ Install `git-filter-repo` locally (`pip install git-filter-repo`). ### v0.22.5 — Extract the TS stack 1. Confirm the SDK is **already published** (v0.22.3) and the Marketplace/OpenVSX prerequisites are done. -2. Create `itsthelore/lore-vscode` and `itsthelore/rac-sdk-ts`. +2. Create `itsthelore/lore-vscode` and `itsthelore/asdecided-sdk-ts`. 3. **Seed each with history:** ```bash # rac-sdk-ts @@ -94,7 +94,7 @@ Install `git-filter-repo` locally (`pip install git-filter-repo`). git remote add origin && git push -u origin main ``` 4. In `lore-vscode`, repoint `package.json` from `"@decisions/sdk": "file:../rac-sdk"` - to the published `"@itsthelore/rac-sdk": "^"`; move + to the published `"@itsthelore/asdecided-sdk": "^"`; move `extension-release.yml`; add `VSCE_PAT` + `OVSX_PAT` secrets. 5. **Then** merge the engine PR that removes `typescript/` and its workflows. 6. **Publish the extension:** push tag `vscode-v0.1.0` in `lore-vscode` → diff --git a/docs/validation.md b/docs/validation.md index 5027d554..901d66e2 100644 --- a/docs/validation.md +++ b/docs/validation.md @@ -29,7 +29,7 @@ Pointing `decided validate` at a legacy corpus for the first time can surface ma pre-existing findings at once. Rather than fail the build on all of them, a repository can downgrade or silence specific findings in its committed `.decided/config.yaml`, then tighten the gate over time. The decision behind this is -[ADR-053](https://github.com/itsthelore/rac-core/blob/main/decisions/decisions/adr-053-validation-severity-overrides.md). +[ADR-053](https://github.com/itsthelore/asdecided-core/blob/main/decisions/decisions/adr-053-validation-severity-overrides.md). Overrides are **repository-wide**: a downgrade applies to `decided review`, `decided watchkeeper`, and `decided portfolio` as well as `decided validate`. @@ -74,7 +74,7 @@ cleaned up. document covering core validation findings and OKF conformance findings, so a CI job can upload it and have GitHub Code Scanning annotate findings inline on a pull request. The decision behind this is -[ADR-054](https://github.com/itsthelore/rac-core/blob/main/decisions/decisions/adr-054-sarif-validation-output.md). +[ADR-054](https://github.com/itsthelore/asdecided-core/blob/main/decisions/decisions/adr-054-sarif-validation-output.md). ```bash decided validate decisions/ --sarif > rac.sarif @@ -121,7 +121,7 @@ decided review decisions/ --sarif > review.sarif A composite GitHub Action wraps `decided validate --sarif` and uploads the result to GitHub Code Scanning, so findings annotate the pull request inline. The decision behind it is -[ADR-058](https://github.com/itsthelore/rac-core/blob/main/decisions/decisions/adr-058-validation-github-action.md); +[ADR-058](https://github.com/itsthelore/asdecided-core/blob/main/decisions/decisions/adr-058-validation-github-action.md); it is a thin wrapper — the `rac` CLI stays the source of truth. ```yaml @@ -136,7 +136,7 @@ jobs: runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - - uses: itsthelore/rac-core/validate-action@v0 + - uses: itsthelore/asdecided-core/validate-action@v0 with: path: decisions/ ``` @@ -163,7 +163,7 @@ under the corpus **enforcement policy**, and emits one combined SARIF document (v0.21.14). The `pr-gate-action` runs it and uploads that single SARIF to Code Scanning under one category (`rac-gate`), failing when any finding is *blocking*. It is the same thin wrapper — the engine decides what is blocking, the action -computes nothing ([ADR-063](https://github.com/itsthelore/rac-core/blob/main/decisions/decisions/adr-063-non-python-clients-are-thin.md)): +computes nothing ([ADR-063](https://github.com/itsthelore/asdecided-core/blob/main/decisions/decisions/adr-063-non-python-clients-are-thin.md)): ```yaml # .github/workflows/rac.yml @@ -177,7 +177,7 @@ jobs: runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - - uses: itsthelore/rac-core/pr-gate-action@v0 + - uses: itsthelore/asdecided-core/pr-gate-action@v0 with: path: decisions/ ``` diff --git a/docs/watchkeeper.md b/docs/watchkeeper.md index e982d8fe..6e14852c 100644 --- a/docs/watchkeeper.md +++ b/docs/watchkeeper.md @@ -45,7 +45,7 @@ jobs: - uses: actions/checkout@v4 with: fetch-depth: 0 - - uses: itsthelore/rac-core@ + - uses: itsthelore/asdecided-core@ ``` On every pull request that touches your corpus you get: @@ -75,7 +75,7 @@ Prefer calling a workflow instead of composing steps: ```yaml jobs: watchkeeper: - uses: itsthelore/rac-core/.github/workflows/watchkeeper.yml@ + uses: itsthelore/asdecided-core/.github/workflows/watchkeeper.yml@ with: path: rac ``` diff --git a/mkdocs.yml b/mkdocs.yml index 4322043d..10e8ef3d 100644 --- a/mkdocs.yml +++ b/mkdocs.yml @@ -2,9 +2,9 @@ site_name: AsDecided site_description: >- Give your coding agent the decisions your team already made — typed Markdown artifacts in your repo, served over MCP. -site_url: https://itsthelore.github.io/rac-core/ -repo_url: https://github.com/itsthelore/rac-core -repo_name: itsthelore/rac-core +site_url: https://itsthelore.github.io/asdecided-core/ +repo_url: https://github.com/itsthelore/asdecided-core +repo_name: itsthelore/asdecided-core theme: name: material diff --git a/pr-gate-action/action.yml b/pr-gate-action/action.yml index af3a09d9..a53d9b39 100644 --- a/pr-gate-action/action.yml +++ b/pr-gate-action/action.yml @@ -11,7 +11,7 @@ # # The Watchkeeper action lives at the repository root and the single-command # validate action at `validate-action/`; this gate is referenced as -# `uses: itsthelore/rac-core/pr-gate-action@`. +# `uses: itsthelore/asdecided-core/pr-gate-action@`. name: "AsDecided PR gate" description: >- Enforce an AsDecided corpus on a pull request with a single `decided gate` diff --git a/rac-localview/src/landing/LandingApp.tsx b/rac-localview/src/landing/LandingApp.tsx index 3fda9147..0d31ffca 100644 --- a/rac-localview/src/landing/LandingApp.tsx +++ b/rac-localview/src/landing/LandingApp.tsx @@ -12,7 +12,7 @@ import demoUrl from './assets/demo.svg'; import { CopyCommand } from './CopyCommand'; import './landing.css'; -const REPO_URL = 'https://github.com/itsthelore/rac-core'; +const REPO_URL = 'https://github.com/itsthelore/asdecided-core'; const DEMO_ALT = 'Recorded terminal session: brew install itsthelore/tap/rac-full, ' + @@ -236,7 +236,7 @@ export function LandingApp() { Lore is built on RAC — Requirements as Code — the open-source engine underneath; for now the package, CLI and MCP server ship under the rac name. Source:{' '} - github.com/itsthelore/rac-core + github.com/itsthelore/asdecided-core

diff --git a/research/2026-07-enterprise-adoption-review.md b/research/2026-07-enterprise-adoption-review.md index fd35b6e5..04757beb 100644 --- a/research/2026-07-enterprise-adoption-review.md +++ b/research/2026-07-enterprise-adoption-review.md @@ -46,7 +46,7 @@ with no implementation in `src/`. | **Cold start / supply** | `rac ingest`: DOCX/PDF/PPTX/XLSX/HTML via markitdown (ADR-072) + Obsidian/Logseq/Notion/Roam normalisation (ADR-079) → reviewable drafts; `rac quickstart`; import/capture/ingest agent skills; enterprise profile scaffold (config-only, ADR-088) | Confluence **inbound** ingest explicitly deferred behind outbound publish/verify (`atlassian` roadmap); mega-doc split + setup conventions (`corpus-setup-guidance`, which itself records the ~2,500-person org's inconsistent-setup problem); no scaled curation path | | **Write path** | `rac new`/`quickstart` scaffolds; `rac-capture` skill; two-gate PR model (ADR-077) | ADR-113 capture sibling surface (draft-only `propose_artifact`): decided days ago, **zero code**; Slack bot / overlay are future items | | **Governance** | Supersession + status-consistency + edge-legality enforcement (`rac-cross-artifact-enforcement`); git-derived recency (ADR-045); stale-corpus advisory in `review` | Ownership model: none (no owner field, no CODEOWNERS story); drift "suspect" findings, freshness on read surfaces — planned | -| **Deployment & security review** | `docs/security.md` (no-egress test, committed SBOM, 3 runtime deps); telemetry hard-lock `rac telemetry off --enterprise` (ADR-086); audit JSONL with per-request `X-Lore-Principal` (ADR-084/098); `docs/shared-server.md` nginx recipe; OCI image `ghcr.io/itsthelore/rac` | Audit sink shippers (Loki/S3/Elastic — `rac-ci/audit/` satellite), Helm/compose, Bitbucket/Jenkins/GitLab CI wrappers (ADR-090, `agnostic-surfaces`) — all planned-only | +| **Deployment & security review** | `docs/security.md` (no-egress test, committed SBOM, 3 runtime deps); telemetry hard-lock `rac telemetry off --enterprise` (ADR-086); audit JSONL with per-request `X-Lore-Principal` (ADR-084/098); `docs/shared-server.md` nginx recipe; OCI image `ghcr.io/itsthelore/asdecided-core` | Audit sink shippers (Loki/S3/Elastic — `rac-ci/audit/` satellite), Helm/compose, Bitbucket/Jenkins/GitLab CI wrappers (ADR-090, `agnostic-surfaces`) — all planned-only | | **Integrations** | GitHub Actions ×3 (watchkeeper, validate→SARIF, pr-gate); typed `--graph`/`--documents`/`--okf`/`--html` exports; external Jira edges format-linted + marked in graph (ADR-087) | `rac-connect atlassian verify/publish` (rac-connectors#4); export schemas, `--at`, `--since` change feed, source identity (`corpus-sync` — all planned) | | **Agent-fleet coverage** | MCP (Claude Code/Desktop, Cursor); `rac export --agent-rules` managed blocks for CLAUDE.md/AGENTS.md/Cursor/Copilot; client recipes in `examples/` for codex, cline, copilot, windsurf, zed, amp, opencode; CLI-first path documented (`lean-context-delivery` Achieved) | Nothing verifies non-MCP agents actually consume the blocks; TS SDK still requires the Python CLI (ADR-063) | | **Proof of value** | `rac eval`: deterministic P@k/R@k + hard-negative gate (ADR-066), CI-gated; obey-demo with measurement protocol | Eval is 12 queries scoring a non-discriminating 1.0 (admitted in `corpus-sync`); no violation/usage reporting over the audit log; paraphrase gap is real — I reproduced it: `rac find "who decided we don't use embeddings"` misses ADR-066 entirely (`paraphrase-recall-response` design owns it) | diff --git a/rust/PARITY-REPORT.md b/rust/PARITY-REPORT.md index fe983da7..80d8da07 100644 --- a/rust/PARITY-REPORT.md +++ b/rust/PARITY-REPORT.md @@ -90,9 +90,9 @@ argparse choices list gains `retrieve`) is deliberately not adopted until the branch merges. With this, every command the six-tool Lore MCP surface depends on has a parity-proven Rust implementation. -## rac-spec acceptance suite +## asdecided-spec acceptance suite -The public specification repo (itsthelore/rac-spec, v0.1.0) ships an +The public specification repo (itsthelore/asdecided-spec, v0.1.0) ships an executable acceptance suite (`examples/manifest.json`: 2 valid corpora + 16 invalid cases with expected blocking finding codes). Both engines were run over all 18 cases with identical argv/env: **18/18 byte-identical @@ -100,7 +100,7 @@ stdout and exit codes**, every exit matching the manifest's expectation. This is the first second implementation of the spec, and it makes the spec's implementation-neutrality claim ("any conformant implementation must agree") a demonstrated property rather than an intention. At -mainline, the Rust engine should be certified against rac-spec's +mainline, the Rust engine should be certified against asdecided-spec's `schema/` and `vocabulary/` directly, retiring this spike's derived `rust/spec/artifact-specs.json` extraction. diff --git a/rust/PORT-CONTRACT.d/05-relationships.md b/rust/PORT-CONTRACT.d/05-relationships.md index 7cf404a4..c825ce01 100644 --- a/rust/PORT-CONTRACT.d/05-relationships.md +++ b/rust/PORT-CONTRACT.d/05-relationships.md @@ -646,7 +646,7 @@ human). Message + uri per code: ```json {"version":"2.1.0","$schema":"https://json.schemastore.org/sarif-2.1.0.json", "runs":[{"tool":{"driver":{"name":"rac", - "informationUri":"https://github.com/itsthelore/rac-core", + "informationUri":"https://github.com/itsthelore/asdecided-core", "version":<__version__>,"rules":[…]}},"results":[…]}]} ``` diff --git a/rust/PORT-CONTRACT.d/07-output-bytes.md b/rust/PORT-CONTRACT.d/07-output-bytes.md index 9b549975..fa370bc9 100644 --- a/rust/PORT-CONTRACT.d/07-output-bytes.md +++ b/rust/PORT-CONTRACT.d/07-output-bytes.md @@ -314,7 +314,7 @@ trailing `\n`. Document shape: { "tool": { "driver": { "name": "rac", - "informationUri": "https://github.com/itsthelore/rac-core", + "informationUri": "https://github.com/itsthelore/asdecided-core", "version": , "rules": [ {"id": }, ... ] }}, diff --git a/rust/PORT-CONTRACT.d/09-walk-stats-export-review-schema.md b/rust/PORT-CONTRACT.d/09-walk-stats-export-review-schema.md index fa0eaf9b..4390dfd1 100644 --- a/rust/PORT-CONTRACT.d/09-walk-stats-export-review-schema.md +++ b/rust/PORT-CONTRACT.d/09-walk-stats-export-review-schema.md @@ -597,7 +597,7 @@ append `` + `No artifacts yet — create your first with: rac quickstart` - `_document`: results sorted by `(uri, startLine|0, ruleId, message.text)`. `rules` = `[{"id": code} for code in sorted(set(ruleIds))]` (unique codes, sorted). Top document: `{version:"2.1.0", $schema:, runs:[{tool.driver:{name:"rac", - informationUri:"https://github.com/itsthelore/rac-core", version:__version__, rules}, results}]}`. + informationUri:"https://github.com/itsthelore/asdecided-core", version:__version__, rules}, results}]}`. `json.dumps(indent=2)` (ensure_ascii=True). `driver.version` = env version. --- diff --git a/rust/PORT-CONTRACT.d/14-closure-state.md b/rust/PORT-CONTRACT.d/14-closure-state.md index f02368bf..687c00cf 100644 --- a/rust/PORT-CONTRACT.d/14-closure-state.md +++ b/rust/PORT-CONTRACT.d/14-closure-state.md @@ -68,7 +68,7 @@ mcp-stats' summary (§2.2), path included. {schema_version,total,sessions,commands[],recent{}}, guide: }`. The guide dict is always full (never `{}`), including nulls for `first_ts`/`last_ts` when empty. -- SHARE: one line, `https://github.com/itsthelore/rac-core/issues/new? +- SHARE: one line, `https://github.com/itsthelore/asdecided-core/issues/new? template=guide-usage-report.yml&report=`. The report INCLUDES `guide.path` — usage does not strip the path; mcp-stats does (§2.3). Do not copy the strip across. diff --git a/rust/rac-engine/assets/spec/artifact-specs.json b/rust/rac-engine/assets/spec/artifact-specs.json index d706de21..048e16a2 100644 --- a/rust/rac-engine/assets/spec/artifact-specs.json +++ b/rust/rac-engine/assets/spec/artifact-specs.json @@ -1,7 +1,7 @@ { "_meta": { "role": "Canonical machine-readable artifact-spec registry: the ordered ARTIFACT_SPECS (requirement, decision, roadmap, prompt, design) and relationship-section descriptions, read by BOTH RAC engines — the Python engine (rac.core.artifacts) and the Rust engine (rac-engine::spec). ADR-063 Guard 1: one shared, language-neutral source of truth, so classification/validation cannot drift between engines.", - "canonical": "This file, in itsthelore/rac-spec, is the upstream source of truth. Implementations vendor it (rac-core: src/rac/spec/artifact-specs.json) and a sync gate keeps each vendored copy's artifact_specs and relationship_descriptions payloads identical to this file's. Edit here; downstream copies re-sync — never the reverse.", + "canonical": "This file, in itsthelore/asdecided-spec, is the upstream source of truth. Implementations vendor it (rac-core: src/rac/spec/artifact-specs.json) and a sync gate keeps each vendored copy's artifact_specs and relationship_descriptions payloads identical to this file's. Edit here; downstream copies re-sync — never the reverse.", "consumers": [ "rac.core.artifacts (Python)", "rac-engine::spec (Rust, include_str!)" diff --git a/rust/rac-engine/src/spec.rs b/rust/rac-engine/src/spec.rs index cdb17431..93b15525 100644 --- a/rust/rac-engine/src/spec.rs +++ b/rust/rac-engine/src/spec.rs @@ -1,4 +1,4 @@ -//! Artifact specs, loaded from the vendored, language-neutral rac-spec registry +//! Artifact specs, loaded from the vendored, language-neutral asdecided-spec registry //! embedded at build time. Field, section, and map order are preserved //! everywhere (PORT-CONTRACT.d/04 §1, PORT-CONTRACT.d/09, PORT-CONTRACT.d/05 §3.1). //! @@ -12,7 +12,7 @@ use std::sync::OnceLock; use serde_json::Value; -/// Embedded spec data synced from `itsthelore/rac-spec`. +/// Embedded spec data synced from `itsthelore/asdecided-spec`. const SPEC_JSON: &str = include_str!("../assets/spec/artifact-specs.json"); /// One artifact type's schema. Field names/order mirror the Python dataclass. diff --git a/rust/rac-engine/tests/vectors/pyjson.json b/rust/rac-engine/tests/vectors/pyjson.json index dc032dde..1c88e23c 100644 --- a/rust/rac-engine/tests/vectors/pyjson.json +++ b/rust/rac-engine/tests/vectors/pyjson.json @@ -436,7 +436,7 @@ "tool": { "driver": { "name": "rac", - "informationUri": "https://github.com/itsthelore/rac-core", + "informationUri": "https://github.com/itsthelore/asdecided-core", "version": "0.1.dev50+g21c8be403", "rules": [ { @@ -472,8 +472,8 @@ } ] }, - "indent2": "{\n \"version\": \"2.1.0\",\n \"$schema\": \"https://json.schemastore.org/sarif-2.1.0.json\",\n \"runs\": [\n {\n \"tool\": {\n \"driver\": {\n \"name\": \"rac\",\n \"informationUri\": \"https://github.com/itsthelore/rac-core\",\n \"version\": \"0.1.dev50+g21c8be403\",\n \"rules\": [\n {\n \"id\": \"REL001\"\n },\n {\n \"id\": \"VAL002\"\n }\n ]\n }\n },\n \"results\": [\n {\n \"ruleId\": \"VAL002\",\n \"level\": \"warning\",\n \"message\": {\n \"text\": \"missing field: 'status'\"\n },\n \"locations\": [\n {\n \"physicalLocation\": {\n \"artifactLocation\": {\n \"uri\": \"rac/caf%C3%A9%20note.md\"\n },\n \"region\": {\n \"startLine\": 3\n }\n }\n }\n ]\n }\n ]\n }\n ]\n}", - "compact": "{\"version\": \"2.1.0\", \"$schema\": \"https://json.schemastore.org/sarif-2.1.0.json\", \"runs\": [{\"tool\": {\"driver\": {\"name\": \"rac\", \"informationUri\": \"https://github.com/itsthelore/rac-core\", \"version\": \"0.1.dev50+g21c8be403\", \"rules\": [{\"id\": \"REL001\"}, {\"id\": \"VAL002\"}]}}, \"results\": [{\"ruleId\": \"VAL002\", \"level\": \"warning\", \"message\": {\"text\": \"missing field: 'status'\"}, \"locations\": [{\"physicalLocation\": {\"artifactLocation\": {\"uri\": \"rac/caf%C3%A9%20note.md\"}, \"region\": {\"startLine\": 3}}}]}]}]}" + "indent2": "{\n \"version\": \"2.1.0\",\n \"$schema\": \"https://json.schemastore.org/sarif-2.1.0.json\",\n \"runs\": [\n {\n \"tool\": {\n \"driver\": {\n \"name\": \"rac\",\n \"informationUri\": \"https://github.com/itsthelore/asdecided-core\",\n \"version\": \"0.1.dev50+g21c8be403\",\n \"rules\": [\n {\n \"id\": \"REL001\"\n },\n {\n \"id\": \"VAL002\"\n }\n ]\n }\n },\n \"results\": [\n {\n \"ruleId\": \"VAL002\",\n \"level\": \"warning\",\n \"message\": {\n \"text\": \"missing field: 'status'\"\n },\n \"locations\": [\n {\n \"physicalLocation\": {\n \"artifactLocation\": {\n \"uri\": \"rac/caf%C3%A9%20note.md\"\n },\n \"region\": {\n \"startLine\": 3\n }\n }\n }\n ]\n }\n ]\n }\n ]\n}", + "compact": "{\"version\": \"2.1.0\", \"$schema\": \"https://json.schemastore.org/sarif-2.1.0.json\", \"runs\": [{\"tool\": {\"driver\": {\"name\": \"rac\", \"informationUri\": \"https://github.com/itsthelore/asdecided-core\", \"version\": \"0.1.dev50+g21c8be403\", \"rules\": [{\"id\": \"REL001\"}, {\"id\": \"VAL002\"}]}}, \"results\": [{\"ruleId\": \"VAL002\", \"level\": \"warning\", \"message\": {\"text\": \"missing field: 'status'\"}, \"locations\": [{\"physicalLocation\": {\"artifactLocation\": {\"uri\": \"rac/caf%C3%A9%20note.md\"}, \"region\": {\"startLine\": 3}}}]}]}]}" }, { "doc": { diff --git a/rust/spec/closure-contracts.json b/rust/spec/closure-contracts.json index 9d1f03e9..96c36b19 100644 --- a/rust/spec/closure-contracts.json +++ b/rust/spec/closure-contracts.json @@ -217,7 +217,7 @@ "command": "mcp-stats", "argv_shape": "rac mcp-stats [--json | --share] [--version]. --json and --share are a mutually-exclusive group; no positional. Guide-only (reads only the Guide telemetry log, not the CLI-usage log).", "exit_codes": "0 always for any log state incl. empty/missing (telemetry off is a valid answer). 2 for the argparse mutex conflict `--json --share` and for unknown flags. Measured: empty->0, populated->0, --share->0, --json --share->2.", - "stdout_kinds": "HUMAN: `Guide Telemetry` / `===============` / blank / `Log: /rac/guide-telemetry.jsonl`. If event_count==0: blank, `No telemetry recorded.`, `Telemetry is off by default; enable it with: rac mcp --telemetry` (+ `\\n\\nSkipped Unreadable Lines: N` only if skipped>0). Else: `Events: 3` / `Sessions: 2` / `First Event: ` / `Last Event: ` / blank / `Tool Usage` / `==========` / blank / one line per tool ` : N call(s), N error(s), N truncated, avg N ms` (tools sorted by name), then `\\n\\nSkipped Unreadable Lines: N` iff skipped>0. JSON (--json): `json.dumps(to_dict(), indent=2)` keys: schema_version, path, event_count, session_count, first_ts, last_ts, skipped_lines, tools[]{tool,calls,errors,truncated,avg_duration_ms}. `first_ts`/`last_ts` are null when empty. --share: prints ONE line, the prefilled GitHub issue URL `https://github.com/itsthelore/rac-core/issues/new?template=guide-usage-report.yml&report=`. stderr: mutex error `rac mcp-stats: error: argument --share: not allowed with argument --json`.", + "stdout_kinds": "HUMAN: `Guide Telemetry` / `===============` / blank / `Log: /rac/guide-telemetry.jsonl`. If event_count==0: blank, `No telemetry recorded.`, `Telemetry is off by default; enable it with: rac mcp --telemetry` (+ `\\n\\nSkipped Unreadable Lines: N` only if skipped>0). Else: `Events: 3` / `Sessions: 2` / `First Event: ` / `Last Event: ` / blank / `Tool Usage` / `==========` / blank / one line per tool ` : N call(s), N error(s), N truncated, avg N ms` (tools sorted by name), then `\\n\\nSkipped Unreadable Lines: N` iff skipped>0. JSON (--json): `json.dumps(to_dict(), indent=2)` keys: schema_version, path, event_count, session_count, first_ts, last_ts, skipped_lines, tools[]{tool,calls,errors,truncated,avg_duration_ms}. `first_ts`/`last_ts` are null when empty. --share: prints ONE line, the prefilled GitHub issue URL `https://github.com/itsthelore/asdecided-core/issues/new?template=guide-usage-report.yml&report=`. stderr: mutex error `rac mcp-stats: error: argument --share: not allowed with argument --json`.", "effort": "M", "reuse": "No existing Rust port of telemetry summarize/share. Reuse: pyjson (indent=2 + null), output.rs bold() for human headers (byte-invisible under pipe). NEW: telemetry_path() XDG_STATE_HOME helper, read_events() JSONL parser (skip blank, skip non-JSON counting skipped, skip non-dict counting skipped), summarize() (session set size, sorted ts min/max, by_tool sorted, errors=outcome in {error,exception}, truncated==true count, avg_duration_ms=round(mean of int durations)), and a Python-parity urlencode(quote_plus) helper for share_url. output.rs already has a `quote(safe=\"/\")` percent-encoder but NOT quote_plus.", "env_fs_git": "Reads XDG_STATE_HOME (fallback $HOME/.local/state) + /rac/guide-telemetry.jsonl. NO writes, no git. No consent check (mcp-stats reads the log regardless of consent).", diff --git a/rust/spec/sync_spec.py b/rust/spec/sync_spec.py index 7b5181e6..c3495410 100644 --- a/rust/spec/sync_spec.py +++ b/rust/spec/sync_spec.py @@ -1,7 +1,7 @@ #!/usr/bin/env python3 """Cross-repo sync gate for the shared artifact-spec registry (ADR-063 Guard 1). -The registry's source of truth is the upstream `itsthelore/rac-spec` +The registry's source of truth is the upstream `itsthelore/asdecided-spec` (`schema/artifact-specs.json`); rac-core vendors it into `rust/rac-engine/assets/spec/artifact-specs.json`, which the native engine embeds. This gate proves the vendored copy has not drifted from the upstream: it @@ -11,12 +11,12 @@ so it is not compared. The upstream location is given by the DECIDED_SPEC_DIR environment variable (a path -to a rac-spec checkout). When it is unset, the gate skips with exit 0 — until -rac-spec is wired into CI there is nothing to compare against, and the in-repo +to a asdecided-spec checkout). When it is unset, the gate skips with exit 0 — until +asdecided-spec is wired into CI there is nothing to compare against, and the in-repo native contract tests still prove the embedded registry is valid. Usage: - DECIDED_SPEC_DIR=/path/to/rac-spec python rust/spec/sync_spec.py + DECIDED_SPEC_DIR=/path/to/asdecided-spec python rust/spec/sync_spec.py Exit 0 = in sync (or skipped); 1 = drift; 2 = setup error. """ diff --git a/rust/tools/conformance_certify.py b/rust/tools/conformance_certify.py index e47ec346..48d3c29e 100644 --- a/rust/tools/conformance_certify.py +++ b/rust/tools/conformance_certify.py @@ -1,21 +1,21 @@ #!/usr/bin/env python3 -"""Certify RAC engines against rac-spec's output-parity conformance tier. +"""Certify RAC engines against asdecided-spec's output-parity conformance tier. ADR-063 Guard 2: a cross-language conformance fixture suite proves output -parity. The neutral suite lives in `itsthelore/rac-spec` +parity. The neutral suite lives in `itsthelore/asdecided-spec` (`conformance/output-parity.json` + `conformance/vectors/`): each case pins the byte-for-byte stdout and exit code an engine must produce for a deterministic, recency-free command over an example corpus. This runner replays every case against one or more engines and asserts each reproduces the golden bytes exactly — certifying the engine against the specification, not against another engine. -Point DECIDED_SPEC_DIR (or --spec-dir) at a rac-spec checkout. Give one or more -engines as `label=command` pairs (command is shell-split, run from the rac-spec +Point DECIDED_SPEC_DIR (or --spec-dir) at a asdecided-spec checkout. Give one or more +engines as `label=command` pairs (command is shell-split, run from the asdecided-spec root). With no engines and no DECIDED_SPEC_DIR, the runner skips with exit 0 so CI -stays green until rac-spec is wired in. +stays green until asdecided-spec is wired in. Usage: - DECIDED_SPEC_DIR=/path/to/rac-spec python rust/tools/conformance_certify.py \ + DECIDED_SPEC_DIR=/path/to/asdecided-spec python rust/tools/conformance_certify.py \ --engine "python=/path/.venv/bin/rac" \ --engine "rust=/path/rust/target/release/decided" @@ -54,7 +54,7 @@ def main() -> int: args = ap.parse_args() if not args.spec_dir: - print("SKIP: no --spec-dir / DECIDED_SPEC_DIR — rac-spec not available") + print("SKIP: no --spec-dir / DECIDED_SPEC_DIR — asdecided-spec not available") return 0 spec_dir = Path(args.spec_dir) manifest_path = spec_dir / "conformance/output-parity.json" diff --git a/rust/tools/live_corpus_invariants.py b/rust/tools/live_corpus_invariants.py index 066daeb9..61ff96ca 100644 --- a/rust/tools/live_corpus_invariants.py +++ b/rust/tools/live_corpus_invariants.py @@ -1,7 +1,7 @@ #!/usr/bin/env python3 """Exercise the live RAC corpus without pinning its output bytes. -Compatibility bytes belong to rac-spec. The repository's evolving corpus is +Compatibility bytes belong to asdecided-spec. The repository's evolving corpus is instead required to remain valid, deterministic, fresh, and cache-neutral. """ diff --git a/server.json b/server.json index c946d9ab..7b7e7a74 100644 --- a/server.json +++ b/server.json @@ -3,14 +3,14 @@ "name": "io.github.tcballard/lore", "description": "Serve your repo's recorded product knowledge - requirements, decisions (ADRs), designs, roadmaps - to coding agents. Deterministic, read-only.", "repository": { - "url": "https://github.com/itsthelore/rac-core", + "url": "https://github.com/itsthelore/asdecided-core", "source": "github" }, "version": "0.11.0", "packages": [ { "registryType": "pypi", - "identifier": "rac-core", + "identifier": "asdecided-core", "version": "0.11.0", "transport": { "type": "stdio" diff --git a/validate-action/action.yml b/validate-action/action.yml index 4f2e1776..407733c9 100644 --- a/validate-action/action.yml +++ b/validate-action/action.yml @@ -5,7 +5,7 @@ # severity policy live in the package (ADR-015 / ADR-053); the action never # reinterprets findings. The Watchkeeper action lives at the repository root; # this validate action is referenced as -# `uses: itsthelore/rac-core/validate-action@`. +# `uses: itsthelore/asdecided-core/validate-action@`. name: "AsDecided validate" description: >- Validate an AsDecided corpus and surface findings on the pull request via From b9c0b19452e1d4415664be848b22806cee2d5b36 Mon Sep 17 00:00:00 2001 From: Tom Ballard Date: Sat, 25 Jul 2026 17:12:37 +0100 Subject: [PATCH 2/2] chore(engine): use asdecided short repository paths --- .agent-context/GAPS_TRACEABILITY.md | 2 +- .github/workflows/docs.yml | 4 ++-- .github/workflows/native-publish.yml | 2 +- .github/workflows/rust-spike.yml | 2 +- .github/workflows/watchkeeper.yml | 4 ++-- CHANGELOG.md | 20 ++++++++--------- CONTRIBUTING.md | 4 ++-- Dockerfile | 2 +- README.md | 12 +++++----- .../decisions/adr-042-docs-site-hosting.md | 4 ++-- ...68-extension-sdk-and-brand-architecture.md | 4 ++-- .../decisions/adr-092-repository-topology.md | 8 +++---- .../adr-101-org-docs-site-and-topology.md | 22 +++++++++---------- .../adr-102-org-site-brand-direction.md | 4 ++-- .../adr-115-shared-artifact-spec-registry.md | 4 ++-- ...engine-sanctioned-second-implementation.md | 2 +- decisions/designs/sdk-expansion-strategy.md | 2 +- decisions/designs/tool-benchmark-harness.md | 2 +- .../rac-artifact-completeness-study.md | 2 +- .../rac-decision-applies-to-scope.md | 6 ++--- .../requirements/rac-derived-index-cache.md | 2 +- .../rac-grounding-baseline-study.md | 2 +- .../requirements/rac-mcp-http-transport.md | 2 +- .../requirements/rac-path-decisions-lookup.md | 2 +- .../rac-shared-server-audit-identity.md | 2 +- decisions/roadmaps/agnostic-surfaces.md | 4 ++-- .../archive/repo-extraction-programme.md | 16 +++++++------- decisions/roadmaps/artifact-family-factory.md | 2 +- decisions/roadmaps/atlassian/atlassian.md | 2 +- .../roadmaps/benchmarks/tool-benchmarks.md | 18 +++++++-------- .../roadmaps/corpus-export-to-rag-backends.md | 2 +- decisions/roadmaps/corpus-federation.md | 2 +- decisions/roadmaps/corpus-sync.md | 2 +- .../roadmaps/decision-to-code-proximity.md | 4 ++-- decisions/roadmaps/decisions-on-pr.md | 6 ++--- .../roadmaps/freshness-and-drift-detection.md | 2 +- .../future/artifact-completeness-benchmark.md | 4 ++-- .../future/decision-grounding-paper.md | 4 ++-- .../future/external-benchmark-evidence.md | 2 +- .../future/org-site-rac-spec-surface.md | 2 +- .../roadmaps/future/ts-sdk-stable-release.md | 2 +- decisions/roadmaps/growth-programme.md | 2 +- decisions/roadmaps/ingest-sources.md | 4 ++-- .../roadmaps/integration-recipe-factory.md | 2 +- decisions/roadmaps/lean-context-delivery.md | 2 +- decisions/roadmaps/link-suggestions.md | 2 +- decisions/roadmaps/lore-at-team-scale.md | 4 ++-- decisions/roadmaps/oci-image.md | 6 ++--- decisions/roadmaps/org-grounding-plane.md | 4 ++-- decisions/roadmaps/rac-editors-buildout.md | 8 +++---- decisions/roadmaps/rebuild-scale.md | 2 +- decisions/roadmaps/relationship-vocabulary.md | 2 +- decisions/roadmaps/relevance-ranking.md | 2 +- .../roadmaps/repo-topology/rac-benchmarks.md | 4 ++-- decisions/roadmaps/repo-topology/rac-ci.md | 8 +++---- .../roadmaps/repo-topology/rac-connectors.md | 2 +- .../roadmaps/repo-topology/rac-editors.md | 6 ++--- decisions/roadmaps/repo-topology/rac-sdk.md | 14 ++++++------ .../repo-topology-convergence.md | 2 +- decisions/roadmaps/retrieval-diagnostics.md | 2 +- .../v0.22.3-ts-sdk-npm-publishable.md | 10 ++++----- .../v0.22.5-extract-typescript-stack.md | 6 ++--- decisions/roadmaps/warm-by-default.md | 2 +- docs/cli.md | 4 ++-- docs/context-cost.md | 2 +- docs/decisions-on-pr.md | 4 ++-- docs/ecosystem.md | 18 +++++++-------- docs/examples/rac-validate.sarif.json | 2 +- docs/governance.md | 10 ++++----- docs/index.md | 10 ++++----- docs/integration-recipes.md | 2 +- docs/mcp.md | 14 ++++++------ docs/okf-profile.md | 2 +- docs/org-grounding.md | 8 +++---- docs/quickstart.md | 14 ++++++------ docs/relationships.md | 4 ++-- docs/repo-workflow.md | 2 +- docs/scale.md | 14 ++++++------ docs/shared-server.md | 16 +++++++------- docs/testing.md | 2 +- docs/v0.22-housekeeping-runbook.md | 8 +++---- docs/validation.md | 12 +++++----- docs/watchkeeper.md | 4 ++-- examples/_recipe-template/README.md | 2 +- examples/amp/README.md | 2 +- examples/claude-code/README.md | 2 +- examples/cline/README.md | 2 +- examples/codex/README.md | 2 +- examples/copilot/README.md | 2 +- examples/cursor/README.md | 2 +- examples/omnigent/README.md | 2 +- examples/opencode/README.md | 2 +- examples/windsurf/README.md | 2 +- examples/zed/README.md | 2 +- mkdocs.yml | 6 ++--- overrides/home.html | 2 +- pr-gate-action/action.yml | 2 +- rac-localview/scripts/record-demo.sh | 2 +- rac-localview/src/landing/LandingApp.tsx | 8 +++---- .../2026-07-enterprise-adoption-review.md | 2 +- rust/PARITY-REPORT.md | 2 +- rust/PORT-CONTRACT.d/02-frontmatter.md | 8 +++---- rust/PORT-CONTRACT.d/03-markdown.md | 2 +- .../04-classification-validation.md | 6 ++--- rust/PORT-CONTRACT.d/05-relationships.md | 4 ++-- rust/PORT-CONTRACT.d/07-output-bytes.md | 2 +- .../09-walk-stats-export-review-schema.md | 8 +++---- rust/PORT-CONTRACT.d/14-closure-state.md | 2 +- .../15-closure-agent-integration.md | 2 +- .../16-closure-scaffold-writes.md | 2 +- .../17-closure-export-modes.md | 2 +- .../assets/spec/artifact-specs.json | 2 +- rust/rac-engine/src/frontmatter.rs | 8 +++---- rust/rac-engine/src/hook.rs | 2 +- rust/rac-engine/src/markdown.rs | 4 ++-- rust/rac-engine/src/output.rs | 2 +- rust/rac-engine/src/scaffold.rs | 2 +- rust/rac-engine/src/skill.rs | 2 +- rust/rac-engine/src/spec.rs | 2 +- rust/rac-engine/src/telemetry.rs | 2 +- rust/rac-engine/src/usage.rs | 2 +- rust/rac-engine/src/walk.rs | 2 +- rust/rac-engine/tests/vectors/pyjson.json | 6 ++--- rust/spec/closure-contracts.json | 2 +- rust/spec/sync_spec.py | 2 +- rust/tools/conformance_certify.py | 2 +- server.json | 2 +- validate-action/action.yml | 2 +- 128 files changed, 287 insertions(+), 287 deletions(-) diff --git a/.agent-context/GAPS_TRACEABILITY.md b/.agent-context/GAPS_TRACEABILITY.md index 9c2e7768..227ab7fc 100644 --- a/.agent-context/GAPS_TRACEABILITY.md +++ b/.agent-context/GAPS_TRACEABILITY.md @@ -161,7 +161,7 @@ purpose (growth-programme success measure). The open/partial gaps are now promoted to the trusted corpus (the pattern set by `rac-traceability-self-relationships`): the `relationship-vocabulary` roadmap with -a requirement per gap, tracked under epic **itsthelore/asdecided-core#236**. +a requirement per gap, tracked under epic **asdecided/core#236**. | Gap(s) | Requirement | | --- | --- | diff --git a/.github/workflows/docs.yml b/.github/workflows/docs.yml index 5f0f8a05..5f08e2c4 100644 --- a/.github/workflows/docs.yml +++ b/.github/workflows/docs.yml @@ -2,8 +2,8 @@ name: Docs # Build-only check for the docs/ MkDocs source. Strict mode turns broken # links and nav entries into build failures. This no longer deploys to -# GitHub Pages (ADR-101): itsthelore.github.io/asdecided-core/ is now served by -# the itsthelore/itsthelore.github.io umbrella site, which vendors docs/ at +# GitHub Pages (ADR-101): asdecided.github.io/core/ is now served by +# the asdecided/asdecided.github.io umbrella site, which vendors docs/ at # build time. Once that repo's site is live, disable Pages on this repo # (Settings -> Pages -> Source) so its own project-page deployment stops # shadowing the umbrella site at that URL. diff --git a/.github/workflows/native-publish.yml b/.github/workflows/native-publish.yml index db3c5fda..60077e09 100644 --- a/.github/workflows/native-publish.yml +++ b/.github/workflows/native-publish.yml @@ -64,7 +64,7 @@ jobs: contents: read packages: write env: - IMAGE: ghcr.io/itsthelore/asdecided-core + IMAGE: ghcr.io/asdecided/core TAG: ${{ github.event.release.tag_name }} steps: - uses: actions/checkout@v5 diff --git a/.github/workflows/rust-spike.yml b/.github/workflows/rust-spike.yml index 4995fe3b..38bfbcef 100644 --- a/.github/workflows/rust-spike.yml +++ b/.github/workflows/rust-spike.yml @@ -74,7 +74,7 @@ jobs: - name: Checkout authoritative asdecided-spec fixtures uses: actions/checkout@v4 with: - repository: itsthelore/asdecided-spec + repository: asdecided/spec path: asdecided-spec - name: Guard 1 — vendored registry matches asdecided-spec diff --git a/.github/workflows/watchkeeper.yml b/.github/workflows/watchkeeper.yml index 0360437a..4dbd825b 100644 --- a/.github/workflows/watchkeeper.yml +++ b/.github/workflows/watchkeeper.yml @@ -5,7 +5,7 @@ # # jobs: # watchkeeper: -# uses: itsthelore/asdecided-core/.github/workflows/watchkeeper.yml@ +# uses: asdecided/core/.github/workflows/watchkeeper.yml@ # with: # path: decisions # @@ -52,7 +52,7 @@ jobs: # Reusable workflows run in the caller's repository, so the action is # referenced by full path. Update this ref when cutting a release tag; # until the first v0.12.x release it tracks main. - - uses: itsthelore/asdecided-core@main + - uses: asdecided/core@main with: path: ${{ inputs.path }} base: ${{ inputs.base }} diff --git a/CHANGELOG.md b/CHANGELOG.md index 21289881..3a15a893 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -6,9 +6,9 @@ details, release history over commit history. ## Unreleased -- Renamed the native engine repository to `itsthelore/asdecided-core`, the - language-neutral contract repository to `itsthelore/asdecided-spec`, and the - CI delivery repository to `itsthelore/asdecided-ci`. Active documentation, +- Renamed the native engine repository to `asdecided/core`, the + language-neutral contract repository to `asdecided/spec`, and the + CI delivery repository to `asdecided/ci`. Active documentation, release metadata, CI checkouts, and OCI publication now use the canonical AsDecided repository names. Stable `RAC-*` artifact IDs remain unchanged. @@ -31,7 +31,7 @@ published machine-schema keys remain unchanged. Rust is the normal product engine, Explorer is retired, and ingest leaves core as an ancillary connector. The Python engine, package, PyPI release path, compatibility oracle, Explorer, and ingest implementation have been removed from `rac-core`. Python API access -belongs in `itsthelore/asdecided-sdk`; the final former engine remains available only +belongs in `asdecided/sdk`; the final former engine remains available only at the immutable `python-engine-final` Git tag for historical review. **Decisions on pull requests — the Herald action** @@ -43,9 +43,9 @@ a merge gate (ADR-034/067): the check never fails on findings, and on forks the comment degrades to the step summary. A thin client over `rac decisions-for --json` (ADR-063) with no engine change; the action ships in the CI delivery repo as -`itsthelore/asdecided-ci/herald/github` beside Watchkeeper, Gatekeeper, and +`asdecided/ci/herald/github` beside Watchkeeper, Gatekeeper, and Registrar, and is documented on the new -[Decisions on PRs](https://itsthelore.github.io/asdecided-core/decisions-on-pr/) +[Decisions on PRs](https://asdecided.github.io/core/decisions-on-pr/) page. **The org grounding plane** (ADR-117). One org-standards corpus behind the @@ -55,7 +55,7 @@ wires a repository to it: the `lore-org` streamable-HTTP entry is ensured in `.mcp.json` and `.cursor/mcp.json`, on fresh **and** already-initialized repositories, merging into existing files (only the `lore-org` key is touched, nothing you wrote is removed) and writing nothing on an unchanged -re-run. The new [Org Grounding](https://itsthelore.github.io/asdecided-core/org-grounding/) +re-run. The new [Org Grounding](https://asdecided.github.io/core/org-grounding/) page is the operator runbook: the org corpus, the shared-server recipe, fleet wiring, boundaries, and the federation handoff (ADR-089 stays untouched — no cross-corpus resolution enters the engine). The `rac init --json` contract @@ -184,7 +184,7 @@ as candidate relationships. shared HTTP serving blocks a call if the audit sink write fails (ADR-098). stdio behaviour is unchanged. - **Operator guide for the shared server.** A new - [Shared Server](https://itsthelore.github.io/asdecided-core/shared-server/) doc + [Shared Server](https://asdecided.github.io/core/shared-server/) doc covers when to run one, the container and authenticating-proxy recipe, keeping the checkout current with `main`, and where observability lives — the whole topology is deployment wrapper around an unchanged, database-free engine. @@ -379,8 +379,8 @@ why this release now carries a `vX.Y.Z` number; compatibility stays on ### Changed - The TypeScript stack moved out of this repository (v0.22.5). The client SDK - now lives in `itsthelore/asdecided-sdk-ts`, published to npm as - `@itsthelore/asdecided-sdk`, and the VS Code extension in `itsthelore/lore-vscode`, + now lives in `asdecided/sdk`, published to npm as + `@asdecided/sdk`, and the VS Code extension in `asdecided/editors`, consuming that published package instead of the former in-repo `file:../rac-sdk` path. The in-repo `typescript/` directory and its CI (`typescript.yml`, `sdk-release.yml`, `extension-release.yml`) are removed. diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index b02e4165..f26b2db0 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -5,7 +5,7 @@ The toolchain is pinned by `rust/rust-toolchain.toml`. ```bash -git clone https://github.com/itsthelore/asdecided-core.git +git clone https://github.com/asdecided/core.git cd rac-core/rust rustup show cargo build --workspace --locked @@ -26,7 +26,7 @@ target/release/decided relationships ../decisions/ --validate The small Python programs under `rust/tools/` and `rust/spec/` are repository verification utilities. They are not a Python product engine or installable SDK. Cross-repository compatibility is certified against -[`asdecided-spec`](https://github.com/itsthelore/asdecided-spec). +[`asdecided-spec`](https://github.com/asdecided/spec). ## Documentation expectations diff --git a/Dockerfile b/Dockerfile index 79badac9..ee842bdb 100644 --- a/Dockerfile +++ b/Dockerfile @@ -14,7 +14,7 @@ FROM debian:bookworm-slim ARG DECIDED_VERSION=dev LABEL org.opencontainers.image.title="rac" \ org.opencontainers.image.description="RAC (Lore) requirements-as-code CLI" \ - org.opencontainers.image.source="https://github.com/itsthelore/asdecided-core" \ + org.opencontainers.image.source="https://github.com/asdecided/core" \ org.opencontainers.image.licenses="Apache-2.0" \ org.opencontainers.image.version="${DECIDED_VERSION}" diff --git a/README.md b/README.md index 040a5643..4be6943e 100644 --- a/README.md +++ b/README.md @@ -12,17 +12,17 @@ same repository state produces the same answer. ## Install -Install the complete RAC toolchain through Homebrew: +Install the native engine and MCP server through Homebrew: ```sh -brew install itsthelore/tap/rac-full +brew install asdecided/tap/asdecided-core ``` Native `decided` and `decided-mcp` archives are also published on -[GitHub Releases](https://github.com/itsthelore/asdecided-core/releases). +[GitHub Releases](https://github.com/asdecided/core/releases). `rac-core` is no longer distributed through PyPI. Python API consumers should -use [`itsthelore/asdecided-sdk`](https://github.com/itsthelore/asdecided-sdk), which is a +use [`asdecided/sdk`](https://github.com/asdecided/sdk), which is a client SDK rather than a second engine implementation. ## Start a repository @@ -72,13 +72,13 @@ refuses to overwrite either destination. Rust is the product engine and the only CLI/MCP runtime in this repository. The authoritative language-neutral compatibility fixtures live in -[`asdecided-spec`](https://github.com/itsthelore/asdecided-spec). Live-corpus validation is +[`asdecided-spec`](https://github.com/asdecided/spec). Live-corpus validation is based on validity, determinism, freshness, and cache/no-cache equality. Document ingestion remains an ancillary Python connector rather than part of the core engine. The retired Python engine is preserved for historical review at the immutable -[`python-engine-final`](https://github.com/itsthelore/asdecided-core/tree/python-engine-final) +[`python-engine-final`](https://github.com/asdecided/core/tree/python-engine-final) tag; it is not maintained or run in normal CI. ## License diff --git a/decisions/decisions/adr-042-docs-site-hosting.md b/decisions/decisions/adr-042-docs-site-hosting.md index 330dca3b..678a78e4 100644 --- a/decisions/decisions/adr-042-docs-site-hosting.md +++ b/decisions/decisions/adr-042-docs-site-hosting.md @@ -16,9 +16,9 @@ Product ## Context > **Amended by ADR-101.** This ADR's project-page hosting model — `rac-core` -> publishing its own `docs/` to `itsthelore.github.io/asdecided-core/` via its own +> publishing its own `docs/` to `asdecided.github.io/core/` via its own > `docs.yml` — is retired in favor of an org-wide umbrella site -> (`itsthelore.github.io`) that vendors `docs/` from each product repo at +> (`asdecided.github.io`) that vendors `docs/` from each product repo at > build time. ADR-101 governs where the two differ (the publishing repo and > mechanism); this ADR's authoritative-source and build-artifact discipline > (repository Markdown is canonical, the site is never a second source of diff --git a/decisions/decisions/adr-068-extension-sdk-and-brand-architecture.md b/decisions/decisions/adr-068-extension-sdk-and-brand-architecture.md index 613fa14a..03dcca35 100644 --- a/decisions/decisions/adr-068-extension-sdk-and-brand-architecture.md +++ b/decisions/decisions/adr-068-extension-sdk-and-brand-architecture.md @@ -82,7 +82,7 @@ ADR-039): PyPI `requirements-as-code`, CLI `rac`, import `rac`, server `lore`. | --- | --- | --- | | `rac-core` | The engine `src/rac/` (incl. the Python SDK surface, ADR-062), the dogfood corpus `rac/`, `examples/`, and the vendored viewer dir `rac-localview/` | The engine and its build-coupled internals. PyPI name stays `requirements-as-code` (ADR-036). | | `rac-localview` | The local Portal / graph viewer, vendored into the engine via a build script + drift-guard | Build-coupled internal of the engine; not separately installed while vendored. | -| `rac-sdk-ts` | The TypeScript client `@rac/sdk`, published to npm as `@itsthelore/asdecided-sdk` | A typed client mirroring the engine contract (ADR-063). | +| `rac-sdk-ts` | The TypeScript client `@rac/sdk`, published to npm as `@asdecided/sdk` | A typed client mirroring the engine contract (ADR-063). | | `lore-vscode` | The VS Code extension — one VSIX to Marketplace + OpenVSX; runs in VS Code and, as a fork, Cursor | A surface a user installs (the first per-client repo). | | `lore-watchkeeper` | The Watchkeeper action (root `action.yml`) | A surface a team installs into CI. | | `lore-gatekeeper` | The gate action = `pr-gate-action` (`rac gate`); the older `validate-action` is folded in / deprecated by it (ADR-058 moves with the gate) | A surface a team installs into CI; the real enforcement gate (ADR-049). | @@ -98,7 +98,7 @@ per-client repositories. ### Per-client integration repositories Each client integration is **its own `lore-` repository**, consuming the -published `@itsthelore/asdecided-sdk` — never engine internals (ADR-063). One repo per +published `@asdecided/sdk` — never engine internals (ADR-063). One repo per client is the model; a single `lore-extensions` container is rejected (it fights independent per-client cadence and ownership). Today there is exactly one: `lore-vscode`. Planned siblings — created when each is built, and **not part of diff --git a/decisions/decisions/adr-092-repository-topology.md b/decisions/decisions/adr-092-repository-topology.md index dc8d2cd4..5515682c 100644 --- a/decisions/decisions/adr-092-repository-topology.md +++ b/decisions/decisions/adr-092-repository-topology.md @@ -16,7 +16,7 @@ Architecture ## Context -> **Extended by ADR-101.** ADR-101 adds `itsthelore.github.io` to the target +> **Extended by ADR-101.** ADR-101 adds `asdecided.github.io` to the target > topology below as the org's documentation-aggregation site — its own repo > per GitHub's root-Pages naming rule, not a family-pattern member. That ADR > governs the site's hosting and vendoring model; this ADR governs its place @@ -90,7 +90,7 @@ Distinct products keep their own brand and naming (`wayfinder-router`, | `rac-editors` | IDE clients | `vscode/` (VS Code/Cursor) (+ `jetbrains/`, …) | | `wayfinder-router` | separate product (ADR-069) | — | | `proofkeeper` | separate product (BYO-model QA agent) | — | -| `itsthelore.github.io` | org presence + docs aggregation (ADR-101) | — | +| `asdecided.github.io` | org presence + docs aggregation (ADR-101) | — | `rac-connectors` is the rename of the existing `lore-connectors`; `rac-ci` is the rename/absorption of `rac-actions` plus the standalone `lore-watchkeeper` / @@ -107,7 +107,7 @@ maintainer-run org actions, sequenced in the deferred roadmap rewrite. by platform, so the ADR-090 "capability-first" intent holds; `lore-pipelines` is not created. Accepted tradeoffs: coupled version tags (one suite version, which is simpler for consumers) and no per-action Marketplace listing (consumed via - `uses: itsthelore/asdecided-ci/@`). + `uses: asdecided/ci/@`). - **`rac-connectors` is one repo** covering inbound (`rac ingest`) + outbound (`rac export`) + provider suites; **Atlassian is a subdir**, not its own repo — deployment and multi-direction do not force a repo boundary. @@ -211,7 +211,7 @@ Flip ADR-068 to Superseded in this change. - ADR-069: Wayfinder is a separate product; Proofkeeper is its sibling. - ADR-029, ADR-039: engine + server stay one package; CLI `rac` and server `lore` identities unchanged. -- ADR-101: adds `itsthelore.github.io` to this table and governs its docs +- ADR-101: adds `asdecided.github.io` to this table and governs its docs hosting and vendoring model, including retiring `rac-core`'s project page. ## Related Decisions diff --git a/decisions/decisions/adr-101-org-docs-site-and-topology.md b/decisions/decisions/adr-101-org-docs-site-and-topology.md index 4597284c..15fc1e63 100644 --- a/decisions/decisions/adr-101-org-docs-site-and-topology.md +++ b/decisions/decisions/adr-101-org-docs-site-and-topology.md @@ -17,7 +17,7 @@ Product ## Context ADR-042 hosts `rac-core`'s user documentation at -`https://itsthelore.github.io/asdecided-core/` — a GitHub Pages *project* page built +`https://asdecided.github.io/core/` — a GitHub Pages *project* page built by `rac-core`'s own `docs.yml` workflow from that repository's `docs/` with MkDocs (Material theme). That scope was correct when `rac-core` was the only public surface, but ADR-092 now names a small constellation of `rac-*` @@ -28,7 +28,7 @@ repositories (`rac-core`, `rac-ci`, `rac-connectors`, `rac-sdk`, GitHub serves a user/org root Pages site — with no `/repo-name/` path prefix — only from a repository named exactly `.github.io`. `itsthelore/ -itsthelore.github.io` has been created for this purpose: it is public (a +asdecided.github.io` has been created for this purpose: it is public (a private repo would need a paid org plan for Pages, and the rendered output is public by default anyway), and deploys via GitHub Actions (`actions/upload-pages-artifact` → `actions/deploy-pages@v4`), matching the @@ -47,12 +47,12 @@ amendment. ## Decision -`itsthelore.github.io` becomes the hosted documentation surface for the whole +`asdecided.github.io` becomes the hosted documentation surface for the whole org. It **aggregates `docs/` from each product repo at build time** rather than linking out to per-repo project pages. - The site is built with Astro and deployed to GitHub Pages by a GitHub - Actions workflow in `itsthelore.github.io`, using the same + Actions workflow in `asdecided.github.io`, using the same `upload-pages-artifact` / `deploy-pages@v4` steps ADR-042 established. - **Vendor contract:** the build sparse-checks out each source repo's `docs/` directory at a pinned ref (a tag or `main`, per repo) into the Astro content @@ -70,14 +70,14 @@ than linking out to per-repo project pages. the site, in `rac-core` or any other member repo. - `rac-core`'s project-page deployment is **retired**: `docs.yml`'s Pages publish step is removed once the umbrella site's `/rac-core/` section is - live, so `itsthelore.github.io/asdecided-core/` is served by the umbrella + live, so `asdecided.github.io/core/` is served by the umbrella deployment instead of `rac-core`'s own. `rac-core` keeps its `docs/` directory and MkDocs config for local `mkdocs serve` authoring; it stops being a second published surface at that URL. Disabling the old Pages deployment is a manual repository-settings action only the maintainer can take (the same class of manual step ADR-042 already required to enable Pages in the first place). -- Naming: `itsthelore.github.io` is added to ADR-092's topology table as its +- Naming: `asdecided.github.io` is added to ADR-092's topology table as its own repository — a distinct concern (org presence and docs aggregation), not a family-pattern member and not folded into any consolidated repo, because GitHub's root-Pages rule forces this exact name regardless of the @@ -101,12 +101,12 @@ than linking out to per-repo project pages. - The umbrella build now depends on the state of every vendored repo at build time; a broken or unreachable source repo can fail the umbrella - build even though `itsthelore.github.io` itself has not changed. + build even though `asdecided.github.io` itself has not changed. - Retiring `rac-core`'s project-page deployment is a breaking change for - anyone who bookmarked or linked `itsthelore.github.io/asdecided-core/` expecting + anyone who bookmarked or linked `asdecided.github.io/core/` expecting `rac-core`'s own MkDocs build; the URL keeps working but the rendering engine and look change underneath it. -- One more repository (`itsthelore.github.io`) with its own build pipeline +- One more repository (`asdecided.github.io`) with its own build pipeline and brand/design surface to maintain, on top of ADR-092's topology. ### Risks @@ -125,7 +125,7 @@ than linking out to per-repo project pages. ### Stand-alone landing site, link out to each product's own docs -Keep `itsthelore.github.io` as a brand/landing page only, with outbound links +Keep `asdecided.github.io` as a brand/landing page only, with outbound links to `rac-core`'s existing project page and to each future product's own Pages site. @@ -148,7 +148,7 @@ Aggregate other repos into the umbrella site but leave `rac-core`'s own #### Advantages -- No breaking change to the existing `itsthelore.github.io/asdecided-core/` URL's +- No breaking change to the existing `asdecided.github.io/core/` URL's rendering engine. #### Disadvantages diff --git a/decisions/decisions/adr-102-org-site-brand-direction.md b/decisions/decisions/adr-102-org-site-brand-direction.md index dff3dc81..e85d45a2 100644 --- a/decisions/decisions/adr-102-org-site-brand-direction.md +++ b/decisions/decisions/adr-102-org-site-brand-direction.md @@ -16,7 +16,7 @@ Product ## Context -ADR-101 made `itsthelore.github.io` the org-wide documentation site, and +ADR-101 made `asdecided.github.io` the org-wide documentation site, and ADR-092 places the brand at the org rather than in repository slugs. The site's first iterations translated rac-localview's design system — amber on warm near-black, JetBrains Mono for all text, dashed chrome, pixel-art @@ -40,7 +40,7 @@ fit for purpose where it lives. ## Decision -The org documentation site (`itsthelore.github.io`, ADR-101) adopts its own +The org documentation site (`asdecided.github.io`, ADR-101) adopts its own **light, restrained visual identity** rather than mirroring the rac-localview product-UI theme: diff --git a/decisions/decisions/adr-115-shared-artifact-spec-registry.md b/decisions/decisions/adr-115-shared-artifact-spec-registry.md index b91cfadb..4f582ac7 100644 --- a/decisions/decisions/adr-115-shared-artifact-spec-registry.md +++ b/decisions/decisions/adr-115-shared-artifact-spec-registry.md @@ -25,7 +25,7 @@ lockstep by a regeneration script — precisely the drift surface Guard 1 exists remove. The file was also derived *from* Python, so Python, not the file, was the source of truth; "both engines read one shared file" was not true. -The neutral cross-repo home for RAC's contracts is `itsthelore/asdecided-spec` +The neutral cross-repo home for RAC's contracts is `asdecided/spec` (ADR-064, ADR-092), which today carries the prose specification, a structural JSON Schema, and vocabulary — but not the complete machine-readable registry (section sets, metadata enums, descriptions, guidance, synonyms, starter bodies) @@ -47,7 +47,7 @@ source of truth that **both** engines read. - The Rust engine embeds the **same bytes** of the same file via `include_str!`. - The two engines therefore read one artifact and cannot drift by construction: a section, enum, synonym, or ordering added once is reflected in both. -- The upstream source of truth is `itsthelore/asdecided-spec`; the in-repo +- The upstream source of truth is `asdecided/spec`; the in-repo `src/rac/spec/artifact-specs.json` is the vendored copy both in-tree engines embed, kept byte-identical to the upstream by a sync gate. (In-tree engines can only read an in-tree file at build/runtime, so a vendored copy plus an equality diff --git a/decisions/decisions/adr-116-native-engine-sanctioned-second-implementation.md b/decisions/decisions/adr-116-native-engine-sanctioned-second-implementation.md index 5965b9e0..64b6a09b 100644 --- a/decisions/decisions/adr-116-native-engine-sanctioned-second-implementation.md +++ b/decisions/decisions/adr-116-native-engine-sanctioned-second-implementation.md @@ -44,7 +44,7 @@ Crucially, ADR-063's two guards are now **closed**, with evidence on this branch - **Guard 1 — shared spec (closed).** One language-neutral registry is the single source of truth both engines read: the Python engine loads `ARTIFACT_SPECS` from `src/rac/spec/artifact-specs.json` and the Rust engine - embeds the same bytes; itsthelore/asdecided-spec hosts the canonical + embeds the same bytes; asdecided/spec hosts the canonical `schema/artifact-specs.json` upstream and rac-core vendors it, with a sync gate enforcing equality. Recorded in ADR-115; landed at commit `bdd369c`, sync gate at `40557f2`, proven behavior-neutral (full Python suite green, every diff --git a/decisions/designs/sdk-expansion-strategy.md b/decisions/designs/sdk-expansion-strategy.md index 2f7f0808..4fe6e0be 100644 --- a/decisions/designs/sdk-expansion-strategy.md +++ b/decisions/designs/sdk-expansion-strategy.md @@ -21,7 +21,7 @@ not slideware completeness. ## Context The only non-Python SDK today is the TypeScript thin client -(`rac-sdk/ts/`, npm `@itsthelore/asdecided-sdk`, pre-1.0). ADR-063 fixes *how* +(`rac-sdk/ts/`, npm `@asdecided/sdk`, pre-1.0). ADR-063 fixes *how* any further client is built — a thin client over the stable contract (`--json` outputs, `rac export` payloads, exit codes, MCP), shelling out to the installed `rac` binary, never a native engine port without the two diff --git a/decisions/designs/tool-benchmark-harness.md b/decisions/designs/tool-benchmark-harness.md index 104cd9e6..fcbe6301 100644 --- a/decisions/designs/tool-benchmark-harness.md +++ b/decisions/designs/tool-benchmark-harness.md @@ -8,7 +8,7 @@ type: design ## Context The `tool-benchmarks` roadmap builds one benchmark per Lore MCP tool in -`itsthelore/asdecided-benchmarks` (subdir per benchmark, ADR-092). The non-trivial +`asdecided/benchmarks` (subdir per benchmark, ADR-092). The non-trivial structure worth recording — sibling to `grounding-eval-scorecard` — is the shared harness those subdirs consume and the scorecard/gate shapes it emits, so five benchmarks stay one design rather than five drifting ones. Scoring diff --git a/decisions/requirements/rac-artifact-completeness-study.md b/decisions/requirements/rac-artifact-completeness-study.md index 3b3921e4..45d416a3 100644 --- a/decisions/requirements/rac-artifact-completeness-study.md +++ b/decisions/requirements/rac-artifact-completeness-study.md @@ -12,7 +12,7 @@ Proposed Classification: `[internal]` — the testable contract for **SWE-CompletenessBench**. Initiative 2 of the `artifact-completeness-benchmark` roadmap; the harness executes in -`itsthelore/asdecided-benchmarks` (ADR-092), never in `rac-core`. Referenced in +`asdecided/benchmarks` (ADR-092), never in `rac-core`. Referenced in prose because there is no relationship type for an external-repository artifact. diff --git a/decisions/requirements/rac-decision-applies-to-scope.md b/decisions/requirements/rac-decision-applies-to-scope.md index fc6d4b19..cda8e7b7 100644 --- a/decisions/requirements/rac-decision-applies-to-scope.md +++ b/decisions/requirements/rac-decision-applies-to-scope.md @@ -10,12 +10,12 @@ type: requirement Accepted Delivered as Initiative 1 of the `decision-to-code-proximity` roadmap -(itsthelore/asdecided-core#274): the optional `## Applies To` section on decisions, +(asdecided/core#274): the optional `## Applies To` section on decisions, with path entries existence-checked by `rac relationships --validate` and the scope surfaced as a filesystem-scoped edge via `get_related`. This also closes -the decision-scope box on the traceability epic (itsthelore/asdecided-core#236). The +the decision-scope box on the traceability epic (asdecided/core#236). The path→decisions lookup that queries this vocabulary is a separate requirement -(`rac-path-decisions-lookup`, itsthelore/asdecided-core#275). +(`rac-path-decisions-lookup`, asdecided/core#275). ## Problem diff --git a/decisions/requirements/rac-derived-index-cache.md b/decisions/requirements/rac-derived-index-cache.md index d418b509..b8801202 100644 --- a/decisions/requirements/rac-derived-index-cache.md +++ b/decisions/requirements/rac-derived-index-cache.md @@ -12,7 +12,7 @@ Accepted Classification: `[internal]` — per-call work stops scaling with corpus size. Initiative 2 of the `lore-at-team-scale` roadmap: a content-addressed, rebuild-on-change cache behind the ADR-032 seam, -shipped under its own ADR. Delivered (itsthelore/asdecided-core#264): the +shipped under its own ADR. Delivered (asdecided/core#264): the `DerivedIndexCache` persists the repository index, resolved relationship graph, and tokenised field vectors keyed on `corpus_content_hash`, enabled opt-in via `rac mcp --cache`, byte-identical to the uncached path — under diff --git a/decisions/requirements/rac-grounding-baseline-study.md b/decisions/requirements/rac-grounding-baseline-study.md index d46da7ff..b614bcc6 100644 --- a/decisions/requirements/rac-grounding-baseline-study.md +++ b/decisions/requirements/rac-grounding-baseline-study.md @@ -12,7 +12,7 @@ Proposed Classification: `[internal]` — the publication-grade evidence the paper needs. Initiative 2 of the `decision-grounding-paper` roadmap. The multi-arm head-to-head already exists as the `decisiongrounding` implementation in -`itsthelore/asdecided-benchmarks` (ADR-092), whose published dataset/paper identity +`asdecided/benchmarks` (ADR-092), whose published dataset/paper identity is **SWE-DecisionBench** (the name already recorded in `external-benchmark-evidence`). This requirement scopes the deltas that take it from a working benchmark to a citable SWE-family study; it does not build a diff --git a/decisions/requirements/rac-mcp-http-transport.md b/decisions/requirements/rac-mcp-http-transport.md index 32d91cc4..fe58eb89 100644 --- a/decisions/requirements/rac-mcp-http-transport.md +++ b/decisions/requirements/rac-mcp-http-transport.md @@ -12,7 +12,7 @@ Accepted Classification: `[internal]` — one always-current endpoint for the whole team. Initiative 1 of the `lore-at-team-scale` roadmap: an HTTP transport for `rac mcp`, shipped under its own serving ADR. Delivered -(itsthelore/asdecided-core#263): `rac mcp --transport http` serves the five tools +(asdecided/core#263): `rac mcp --transport http` serves the five tools statelessly over streamable HTTP, payload-identical to stdio, mandatory audit-on, with authentication delegated to the deployment proxy — under ADR-098, which resolves the ADR-091 stdio-only premise against ADR-080's diff --git a/decisions/requirements/rac-path-decisions-lookup.md b/decisions/requirements/rac-path-decisions-lookup.md index 9324d2d0..af89dad2 100644 --- a/decisions/requirements/rac-path-decisions-lookup.md +++ b/decisions/requirements/rac-path-decisions-lookup.md @@ -11,7 +11,7 @@ Accepted Classification: `[internal]` — the decisions binding a file, in one call. Delivered as Initiative 2 of the `decision-to-code-proximity` roadmap -(itsthelore/asdecided-core#275): the `rac decisions-for` CLI subcommand and the +(asdecided/core#275): the `rac decisions-for` CLI subcommand and the additive `path` argument on the `find_decisions` MCP tool, over one shared core, consuming the `## Applies To` vocabulary of `rac-decision-applies-to-scope`. diff --git a/decisions/requirements/rac-shared-server-audit-identity.md b/decisions/requirements/rac-shared-server-audit-identity.md index 5beee72a..7e753a20 100644 --- a/decisions/requirements/rac-shared-server-audit-identity.md +++ b/decisions/requirements/rac-shared-server-audit-identity.md @@ -13,7 +13,7 @@ Classification: `[internal]` — every caller on a shared endpoint is attributable. Initiative 3 of the `lore-at-team-scale` roadmap: per-request principal resolution in the audit recorder, with mandatory audit-on as the shared-deployment entry condition. Delivered -(itsthelore/asdecided-core#265): the audit recorder resolves a per-request +(asdecided/core#265): the audit recorder resolves a per-request principal from the `X-Lore-Principal` header (the carrier ADR-098 fixes), with precedence assertion > env override > git (skipped on the shared transport) > unattributed; records grow additive `transport` and diff --git a/decisions/roadmaps/agnostic-surfaces.md b/decisions/roadmaps/agnostic-surfaces.md index c3cd4b87..14f9180d 100644 --- a/decisions/roadmaps/agnostic-surfaces.md +++ b/decisions/roadmaps/agnostic-surfaces.md @@ -48,7 +48,7 @@ graduates to execution with a GitHub issue per ADR-093. - Track 1 — Distribution and CI reach: - Official OCI image (`oci-image`): one published image bundling the CLI; the single artifact that unlocks every docker-native CI - platform with zero wrapper code. Shipped (`ghcr.io/itsthelore/asdecided-core`, + platform with zero wrapper code. Shipped (`ghcr.io/asdecided/core`, quickstart-documented); its artifact is now Achieved and lives top-level, no longer under `future/`. - CI report formats (`ci-report-formats`): GitLab code-quality JSON @@ -146,4 +146,4 @@ graduates to execution with a GitHub issue per ADR-093. ## Related Tickets -- itsthelore/asdecided-core#280 +- asdecided/core#280 diff --git a/decisions/roadmaps/archive/repo-extraction-programme.md b/decisions/roadmaps/archive/repo-extraction-programme.md index 67a757b6..a372367c 100644 --- a/decisions/roadmaps/archive/repo-extraction-programme.md +++ b/decisions/roadmaps/archive/repo-extraction-programme.md @@ -24,7 +24,7 @@ Planned ADR-064 records the decision to adopt a small multi-repo topology under the `itsthelore` organisation: extract the standalone components and keep the -engine, its shipped resources, and its governing corpus in `itsthelore/asdecided-core` +engine, its shipped resources, and its governing corpus in `asdecided/core` (the renamed `requirements-as-code` repository). ADR-068 extends that topology for the surfaces that post-date ADR-064 — the editor extension and the TypeScript SDK — and sharpens the Actions picture. This programme sequences the @@ -86,10 +86,10 @@ leave a deprecation note for the old paths, and repoint this repository's own The surfaces that post-date ADR-064. The TypeScript SDK (`@rac/sdk`) is a typed thin client over the engine contract (ADR-063), so it takes the `rac-*` prefix -and moves to `itsthelore/asdecided-sdk-ts`, **published to npm** as -`@itsthelore/asdecided-sdk`. The VS Code / Cursor extension is a surface a user +and moves to `asdecided/sdk`, **published to npm** as +`@asdecided/sdk`. The VS Code / Cursor extension is a surface a user installs, so it takes the `lore-*` prefix and moves to -`itsthelore/lore-vscode` (one VSIX to Marketplace + OpenVSX). Sequencing: +`asdecided/editors` (one VSIX to Marketplace + OpenVSX). Sequencing: publish the SDK first, then repoint the extension from `file:../rac-sdk` to the published package and remove the in-repo `typescript/` stack and its CI. @@ -157,9 +157,9 @@ git remote add origin && git push -u origin main root `action.yml` into `lore-watchkeeper`. ADR-058 moves with the gatekeeper. Add a README documenting the new `uses:` references, tag each `v1`, and push. -**Seed the TypeScript repos** (`itsthelore/asdecided-sdk-ts`, -`itsthelore/lore-vscode`) after the SDK is npm-publishable (v0.22.3): publish -`@itsthelore/asdecided-sdk` from `rac-sdk-ts`, then seed `lore-vscode` and repoint +**Seed the TypeScript repos** (`asdecided/sdk`, +`asdecided/editors`) after the SDK is npm-publishable (v0.22.3): publish +`@asdecided/sdk` from `rac-sdk-ts`, then seed `lore-vscode` and repoint it to the published package. **Removal + rewire PRs on `rac-core`**: remove `decisiongrounding/`, the @@ -195,7 +195,7 @@ and `pytest` passes. - The extracted actions consume only the public `rac` CLI, not engine internals, so they run from any repo once published. - The extracted TypeScript SDK and extension consume the published - `@itsthelore/asdecided-sdk` and the public CLI, never engine internals. + `@asdecided/sdk` and the public CLI, never engine internals. - `rac-localview` (the renamed `lore-web`) stays in this repository until its vendoring contract exists, so no Portal-shell drift-guard breaks during this programme. diff --git a/decisions/roadmaps/artifact-family-factory.md b/decisions/roadmaps/artifact-family-factory.md index d707542e..8fc7bd63 100644 --- a/decisions/roadmaps/artifact-family-factory.md +++ b/decisions/roadmaps/artifact-family-factory.md @@ -173,4 +173,4 @@ part of the contract every future family repeats. ## Related Tickets -- itsthelore/asdecided-core#248 +- asdecided/core#248 diff --git a/decisions/roadmaps/atlassian/atlassian.md b/decisions/roadmaps/atlassian/atlassian.md index e21a44ac..05f6a4ca 100644 --- a/decisions/roadmaps/atlassian/atlassian.md +++ b/decisions/roadmaps/atlassian/atlassian.md @@ -97,4 +97,4 @@ consumers (ADR-073). ## Related Tickets -- itsthelore/asdecided-connectors#4 +- asdecided/connectors#4 diff --git a/decisions/roadmaps/benchmarks/tool-benchmarks.md b/decisions/roadmaps/benchmarks/tool-benchmarks.md index cce9fd36..69f9e5f3 100644 --- a/decisions/roadmaps/benchmarks/tool-benchmarks.md +++ b/decisions/roadmaps/benchmarks/tool-benchmarks.md @@ -18,7 +18,7 @@ was top-5 while `search_artifacts` serves the full match list; the P@1 / R@5 gate was blind to ordering within ranks 2–5; `get_related`'s outgoing direction was unscored; and the eval scores pre-budget output while agents receive ADR-033 budget-truncated responses. This roadmap builds one benchmark -per Lore MCP tool in `itsthelore/asdecided-benchmarks` (subdir per benchmark, +per Lore MCP tool in `asdecided/benchmarks` (subdir per benchmark, ADR-092) on a shared harness, under the family contract of ADR-097. Known corpus inconsistencies observed during the stress-test, flagged here @@ -108,11 +108,11 @@ gating CI. ## Related Tickets -- itsthelore/asdecided-benchmarks#2 -- itsthelore/asdecided-benchmarks#3 -- itsthelore/asdecided-benchmarks#4 -- itsthelore/asdecided-benchmarks#5 -- itsthelore/asdecided-benchmarks#6 -- itsthelore/asdecided-benchmarks#7 -- itsthelore/asdecided-benchmarks#8 -- itsthelore/asdecided-benchmarks#9 +- asdecided/benchmarks#2 +- asdecided/benchmarks#3 +- asdecided/benchmarks#4 +- asdecided/benchmarks#5 +- asdecided/benchmarks#6 +- asdecided/benchmarks#7 +- asdecided/benchmarks#8 +- asdecided/benchmarks#9 diff --git a/decisions/roadmaps/corpus-export-to-rag-backends.md b/decisions/roadmaps/corpus-export-to-rag-backends.md index 339ffce6..2d16586a 100644 --- a/decisions/roadmaps/corpus-export-to-rag-backends.md +++ b/decisions/roadmaps/corpus-export-to-rag-backends.md @@ -16,7 +16,7 @@ companion (ADR-095) with cognee, letta, mem0, neo4j (self-hostable), supermemory, and zep modules. The residual Initiative-3 deliverable — the documentation page naming targets and the verify-in-Lore loop — is absorbed into the `corpus-sync` programme's contracts-documentation work -(itsthelore/asdecided-core#255, itsthelore/asdecided-core#256). Consumption-plane +(asdecided/core#255, asdecided/core#256). Consumption-plane evolution continues under `corpus-sync`; this artifact remains the durable record of the original intent. diff --git a/decisions/roadmaps/corpus-federation.md b/decisions/roadmaps/corpus-federation.md index 5de0b71e..bd658d81 100644 --- a/decisions/roadmaps/corpus-federation.md +++ b/decisions/roadmaps/corpus-federation.md @@ -197,4 +197,4 @@ by PR (ADR-065). ## Related Tickets -- itsthelore/asdecided-core#267 +- asdecided/core#267 diff --git a/decisions/roadmaps/corpus-sync.md b/decisions/roadmaps/corpus-sync.md index 81480f5e..d6d04fd7 100644 --- a/decisions/roadmaps/corpus-sync.md +++ b/decisions/roadmaps/corpus-sync.md @@ -257,4 +257,4 @@ rather than duplicating them. ## Related Tickets -- itsthelore/asdecided-core#255 +- asdecided/core#255 diff --git a/decisions/roadmaps/decision-to-code-proximity.md b/decisions/roadmaps/decision-to-code-proximity.md index 402b1e9a..62b3adbb 100644 --- a/decisions/roadmaps/decision-to-code-proximity.md +++ b/decisions/roadmaps/decision-to-code-proximity.md @@ -9,7 +9,7 @@ type: roadmap Achieved -Delivered across all three initiatives (epic itsthelore/asdecided-core#273): +Delivered across all three initiatives (epic asdecided/core#273): decisions declare validated code scope via `## Applies To` (#274); a deterministic path→decisions lookup answers over the `rac decisions-for` CLI and the additive `find_decisions` MCP `path` argument (#275); and the Explorer @@ -212,4 +212,4 @@ everywhere. ## Related Tickets -- itsthelore/asdecided-core#273 +- asdecided/core#273 diff --git a/decisions/roadmaps/decisions-on-pr.md b/decisions/roadmaps/decisions-on-pr.md index 0929e8f8..48ab78d8 100644 --- a/decisions/roadmaps/decisions-on-pr.md +++ b/decisions/roadmaps/decisions-on-pr.md @@ -9,9 +9,9 @@ type: roadmap Achieved -Delivered (epic itsthelore/asdecided-core#351; itsthelore/asdecided-ci#3 merged) under +Delivered (epic asdecided/core#351; asdecided/ci#3 merged) under the `pr-decision-surfacing` design's contract. The **Herald** capability — -`itsthelore/asdecided-ci/herald/github` — computes the merge-base diff, runs +`asdecided/ci/herald/github` — computes the merge-base diff, runs `rac decisions-for --json` per changed path (thin client, ADR-063; the engine owns matching and liveness), and posts one deterministic advisory comment: id, title, matched `## Applies To` scope, and a head-pinned link @@ -147,4 +147,4 @@ a governed decision that is also suspect can be noted. ## Related Tickets -- itsthelore/asdecided-core#351 +- asdecided/core#351 diff --git a/decisions/roadmaps/freshness-and-drift-detection.md b/decisions/roadmaps/freshness-and-drift-detection.md index 7b09c89d..12ede99b 100644 --- a/decisions/roadmaps/freshness-and-drift-detection.md +++ b/decisions/roadmaps/freshness-and-drift-detection.md @@ -207,4 +207,4 @@ benchmark evidence, not phase 1. No requirement is minted yet. ## Related Tickets -- itsthelore/asdecided-core#277 +- asdecided/core#277 diff --git a/decisions/roadmaps/future/artifact-completeness-benchmark.md b/decisions/roadmaps/future/artifact-completeness-benchmark.md index 91959ba2..b206ba93 100644 --- a/decisions/roadmaps/future/artifact-completeness-benchmark.md +++ b/decisions/roadmaps/future/artifact-completeness-benchmark.md @@ -15,7 +15,7 @@ measures how completely a recorded corpus specifies a system: an external agent reconstructs a target component from its Lore artifacts alone, and the *residual* — the fraction that cannot be recovered from the record — is the reported result. Sibling to SWE-DecisionBench (`decisiongrounding`); the -harness executes in `itsthelore/asdecided-benchmarks` (ADR-092), never in +harness executes in `asdecided/benchmarks` (ADR-092), never in `rac-core`. Framed as a completeness diagnostic, not a reconstruction scoreboard, so it stays clear of the spec-as-source line the corpus refuses (ADR-081: "Lore is not an SDD/codegen tool"). @@ -156,4 +156,4 @@ honestly whichever way it falls. ## Related Tickets -- itsthelore/asdecided-core#299 +- asdecided/core#299 diff --git a/decisions/roadmaps/future/decision-grounding-paper.md b/decisions/roadmaps/future/decision-grounding-paper.md index 50d9e7a1..6bd93892 100644 --- a/decisions/roadmaps/future/decision-grounding-paper.md +++ b/decisions/roadmaps/future/decision-grounding-paper.md @@ -20,7 +20,7 @@ ADR-081; it does not alter it. Initiative 1 is complete: the `decision-grounding-thesis` design is Accepted with its open questions resolved. Initiative 2 is run-ready in -`itsthelore/asdecided-benchmarks`: the paired-significance statistics, the +`asdecided/benchmarks`: the paired-significance statistics, the GitChameleon executable co-primary pipeline, the 49-scenario study-grade roster, and the frozen analysis-plan amendment are landed; only the funded model runs remain (the refreshed funded-run handoff covers both co-primary @@ -166,4 +166,4 @@ call at pickup. ## Related Tickets -- itsthelore/asdecided-core#293 +- asdecided/core#293 diff --git a/decisions/roadmaps/future/external-benchmark-evidence.md b/decisions/roadmaps/future/external-benchmark-evidence.md index ca0b471b..9577b999 100644 --- a/decisions/roadmaps/future/external-benchmark-evidence.md +++ b/decisions/roadmaps/future/external-benchmark-evidence.md @@ -121,4 +121,4 @@ candidates and a tracked tier: ## Related Tickets -- itsthelore/asdecided-benchmarks#10 +- asdecided/benchmarks#10 diff --git a/decisions/roadmaps/future/org-site-rac-spec-surface.md b/decisions/roadmaps/future/org-site-rac-spec-surface.md index caa9eed0..82ef730a 100644 --- a/decisions/roadmaps/future/org-site-rac-spec-surface.md +++ b/decisions/roadmaps/future/org-site-rac-spec-surface.md @@ -13,7 +13,7 @@ Planned Unscheduled — captured as future intent, not yet on a release. Records the maintainer's stated direction: **rac-spec** (the RAC specification) and its associated **essays** are the next content added to the org documentation -site (`itsthelore.github.io`, ADR-101), and they are to sit **front and +site (`asdecided.github.io`, ADR-101), and they are to sit **front and centre on the home page** — headline placement, not another nav section. ## Context diff --git a/decisions/roadmaps/future/ts-sdk-stable-release.md b/decisions/roadmaps/future/ts-sdk-stable-release.md index 322d7239..0453a531 100644 --- a/decisions/roadmaps/future/ts-sdk-stable-release.md +++ b/decisions/roadmaps/future/ts-sdk-stable-release.md @@ -18,7 +18,7 @@ recorded here. ## Outcomes -- `@itsthelore/asdecided-sdk` publishes 1.0: a stated stable surface with a +- `@asdecided/sdk` publishes 1.0: a stated stable surface with a semver policy, so consumers (the VS Code extension first) can depend on it without tracking pre-1.0 churn. - The documented API and the actual client surface are the same thing: diff --git a/decisions/roadmaps/growth-programme.md b/decisions/roadmaps/growth-programme.md index bf802761..c38cc276 100644 --- a/decisions/roadmaps/growth-programme.md +++ b/decisions/roadmaps/growth-programme.md @@ -96,4 +96,4 @@ traceability work from real corpus usage. ## Related Tickets -- itsthelore/asdecided-core#230 +- asdecided/core#230 diff --git a/decisions/roadmaps/ingest-sources.md b/decisions/roadmaps/ingest-sources.md index 8fb9c6ce..ef0afb3c 100644 --- a/decisions/roadmaps/ingest-sources.md +++ b/decisions/roadmaps/ingest-sources.md @@ -9,7 +9,7 @@ type: roadmap Achieved -Delivered across all four initiatives (itsthelore/asdecided-core#227). `rac ingest` +Delivered across all four initiatives (asdecided/core#227). `rac ingest` now imports note-tool exports by normalisation through the ADR-072 registry (ADR-079): Obsidian vaults (#292), Logseq graphs (#297), Notion "Markdown & CSV" exports (#298), and Roam JSON graphs (#303). Each note becomes a reviewable @@ -134,4 +134,4 @@ the candidate-link review step. ## Related Tickets -- itsthelore/asdecided-core#227 +- asdecided/core#227 diff --git a/decisions/roadmaps/integration-recipe-factory.md b/decisions/roadmaps/integration-recipe-factory.md index 5792af4b..d9af2f4d 100644 --- a/decisions/roadmaps/integration-recipe-factory.md +++ b/decisions/roadmaps/integration-recipe-factory.md @@ -141,4 +141,4 @@ between "documented" and "verified" explicit. ## Related Tickets -- itsthelore/asdecided-core#248 +- asdecided/core#248 diff --git a/decisions/roadmaps/lean-context-delivery.md b/decisions/roadmaps/lean-context-delivery.md index b4ff209b..03a06feb 100644 --- a/decisions/roadmaps/lean-context-delivery.md +++ b/decisions/roadmaps/lean-context-delivery.md @@ -125,4 +125,4 @@ it. ## Related Tickets -- itsthelore/asdecided-core#248 +- asdecided/core#248 diff --git a/decisions/roadmaps/link-suggestions.md b/decisions/roadmaps/link-suggestions.md index 29e840d7..6f802d00 100644 --- a/decisions/roadmaps/link-suggestions.md +++ b/decisions/roadmaps/link-suggestions.md @@ -129,4 +129,4 @@ is advisory, and how to promote a suggestion to a declared edge. ## Related Tickets -- itsthelore/asdecided-core#225 +- asdecided/core#225 diff --git a/decisions/roadmaps/lore-at-team-scale.md b/decisions/roadmaps/lore-at-team-scale.md index 40b5ffd2..afddacbf 100644 --- a/decisions/roadmaps/lore-at-team-scale.md +++ b/decisions/roadmaps/lore-at-team-scale.md @@ -9,7 +9,7 @@ type: roadmap Achieved -Delivered across all four initiatives (epic itsthelore/asdecided-core#262). `rac mcp` +Delivered across all four initiatives (epic asdecided/core#262). `rac mcp` gained a streamable HTTP transport so a team points every agent at one always-current `main`-backed endpoint (#263, under the serving decision ADR-098); an opt-in, content-addressed derived-index cache keeps per-call latency flat as @@ -224,4 +224,4 @@ engine. ## Related Tickets -- itsthelore/asdecided-core#262 +- asdecided/core#262 diff --git a/decisions/roadmaps/oci-image.md b/decisions/roadmaps/oci-image.md index 21d58046..d707dbd8 100644 --- a/decisions/roadmaps/oci-image.md +++ b/decisions/roadmaps/oci-image.md @@ -11,7 +11,7 @@ Achieved Delivered as recorded (ADR-061 terminal lifecycle): the root `Dockerfile` installs the released `rac-core` on a minimal Python base with `rac` as the -entrypoint, and the official image publishes to `ghcr.io/itsthelore/asdecided-core`, +entrypoint, and the official image publishes to `ghcr.io/asdecided/core`, CalVer- and digest-pinned in the quickstart with GitLab CI, Bitbucket, and Jenkins usage snippets — matching this item's recorded scope. A member of the `agnostic-surfaces` programme, Track 1 (distribution and CI reach), named by @@ -40,7 +40,7 @@ consume the image rather than re-solving installation. - Add a publish workflow that builds and pushes the image on the same release tags as the PyPI publish, tagging both the CalVer version and `latest`, to an official registry home (for example - `ghcr.io/itsthelore/asdecided-core`; final home decided at pickup). + `ghcr.io/asdecided/core`; final home decided at pickup). - Document the image on the install page: pull, pin-by-digest, and usage snippets for GitLab CI, Bitbucket Pipelines, and Jenkins docker agents running `rac validate` / `rac gate`. @@ -96,4 +96,4 @@ consume the image rather than re-solving installation. ## Related Tickets -- itsthelore/asdecided-core#280 +- asdecided/core#280 diff --git a/decisions/roadmaps/org-grounding-plane.md b/decisions/roadmaps/org-grounding-plane.md index 32450804..903e874e 100644 --- a/decisions/roadmaps/org-grounding-plane.md +++ b/decisions/roadmaps/org-grounding-plane.md @@ -9,7 +9,7 @@ type: roadmap Achieved -Delivered across all three initiatives (epic itsthelore/asdecided-core#348), under +Delivered across all three initiatives (epic asdecided/core#348), under the topology decision ADR-117: the recorded shape (one org-standards corpus served over the shipped ADR-098 HTTP endpoint, co-mounted as `lore-org` beside any local `lore` server); the fleet-wiring command (`rac init @@ -176,4 +176,4 @@ unresolved cross-references, and what changes when federation ships. ## Related Tickets -- itsthelore/asdecided-core#348 +- asdecided/core#348 diff --git a/decisions/roadmaps/rac-editors-buildout.md b/decisions/roadmaps/rac-editors-buildout.md index 2eb1fbd4..1e7b8d40 100644 --- a/decisions/roadmaps/rac-editors-buildout.md +++ b/decisions/roadmaps/rac-editors-buildout.md @@ -31,7 +31,7 @@ rewriting it. ## Outcomes - The extension source lives, builds, and tests in `rac-editors/vscode/`, - consuming the published `@itsthelore/asdecided-sdk` — a thin client over the + consuming the published `@asdecided/sdk` — a thin client over the contract, never engine internals (ADR-063). - rac-editors has a merge-gated CI battery (ADR-027, ADR-075) and a tag-triggered release pipeline in which publishing is the last step, @@ -48,7 +48,7 @@ rewriting it. Snapshot-import `typescript/rac-vscode` from rac-core `eed463e^` into `rac-editors/vscode/`, recording the source SHA in the commit body rather than replaying engine-scoped history onto the family trunk. Repoint the SDK -dependency from `file:../rac-sdk` to the published `@itsthelore/asdecided-sdk` +dependency from `file:../rac-sdk` to the published `@asdecided/sdk` (finishing the v0.22.5 repoint contract, which the removed tree never received). Prove the result: typecheck, test battery, and a packaged VSIX. @@ -92,7 +92,7 @@ once the publisher decision lands, and the first publish waits for it. ## Assumptions -- `@itsthelore/asdecided-sdk` is published on npm (verified: 0.1.0) and exposes the +- `@asdecided/sdk` is published on npm (verified: 0.1.0) and exposes the API surface the extension consumes; if not, the fix is a new SDK release via the v0.22.3 flow, never vendored SDK code (ADR-063). - The Explorer webview keeps consuming `rac export --html` output at runtime @@ -137,4 +137,4 @@ once the publisher decision lands, and the first publish waits for it. ## Related Tickets -- itsthelore/asdecided-editors#2 +- asdecided/editors#2 diff --git a/decisions/roadmaps/rebuild-scale.md b/decisions/roadmaps/rebuild-scale.md index cb7cbc7c..0936af93 100644 --- a/decisions/roadmaps/rebuild-scale.md +++ b/decisions/roadmaps/rebuild-scale.md @@ -46,7 +46,7 @@ traversal, and incremental recompute. ## Initiatives - Baseline and before-evidence: a deterministic scale-corpus generator and a - rerunnable performance harness in `itsthelore/asdecided-benchmarks` + rerunnable performance harness in `asdecided/benchmarks` (`scalecorpus/`), measuring the legacy engine across a 1k → 3M curve. - Examiner hardening: characterization tests for unpinned behavior and a performance gate asserting the scale target, both human-approved before diff --git a/decisions/roadmaps/relationship-vocabulary.md b/decisions/roadmaps/relationship-vocabulary.md index c1b12ad2..6f7947fb 100644 --- a/decisions/roadmaps/relationship-vocabulary.md +++ b/decisions/roadmaps/relationship-vocabulary.md @@ -94,4 +94,4 @@ requirement, designable independently. ## Related Tickets -- itsthelore/asdecided-core#236 +- asdecided/core#236 diff --git a/decisions/roadmaps/relevance-ranking.md b/decisions/roadmaps/relevance-ranking.md index f3cff2a6..f4ef05d2 100644 --- a/decisions/roadmaps/relevance-ranking.md +++ b/decisions/roadmaps/relevance-ranking.md @@ -128,4 +128,4 @@ the committed baseline before the ranking change ships. ## Related Tickets -- itsthelore/asdecided-core#226 +- asdecided/core#226 diff --git a/decisions/roadmaps/repo-topology/rac-benchmarks.md b/decisions/roadmaps/repo-topology/rac-benchmarks.md index 72fbb6ef..ba762cf2 100644 --- a/decisions/roadmaps/repo-topology/rac-benchmarks.md +++ b/decisions/roadmaps/repo-topology/rac-benchmarks.md @@ -22,7 +22,7 @@ repos. ## Outcomes -- `itsthelore/asdecided-benchmarks` exists with the grounding benchmark under +- `asdecided/benchmarks` exists with the grounding benchmark under `decisiongrounding/`; new benchmarks land as sibling subdirs. - The benchmark still consumes `rac` only as an external CLI on `PATH`, with no engine coupling and no change to its deterministic scoring (ADR-066). @@ -40,7 +40,7 @@ repos. ## Success Measures -- `itsthelore/asdecided-benchmarks` exists with `decisiongrounding/`; the standalone +- `asdecided/benchmarks` exists with `decisiongrounding/`; the standalone repo is archived with a redirect. - The benchmark runs unchanged against the published `rac` CLI; its determinism guarantees (ADR-066) are untouched. diff --git a/decisions/roadmaps/repo-topology/rac-ci.md b/decisions/roadmaps/repo-topology/rac-ci.md index 8030450f..fcde852b 100644 --- a/decisions/roadmaps/repo-topology/rac-ci.md +++ b/decisions/roadmaps/repo-topology/rac-ci.md @@ -27,8 +27,8 @@ GitHub→other-platform work is in the thin wrappers, not the engine. ## Outcomes -- A single `itsthelore/asdecided-ci` repository holds every CI wrapper, a subdir per - capability, consumed as `uses: itsthelore/asdecided-ci/@`. +- A single `asdecided/ci` repository holds every CI wrapper, a subdir per + capability, consumed as `uses: asdecided/ci/@`. - `rac-actions`, `lore-watchkeeper`, and `lore-gatekeeper` are consolidated into it and archived; the in-repo `action.yml`, `pr-gate-action/`, and `validate-action/` sources are removed from `rac-core` once `rac-ci` carries @@ -51,7 +51,7 @@ GitHub→other-platform work is in the thin wrappers, not the engine. ## Success Measures -- `itsthelore/asdecided-ci` exists with the capability subdirs and a pinnable suite +- `asdecided/ci` exists with the capability subdirs and a pinnable suite tag; the three predecessor action repos are archived with redirects. - No consumer reference traces to an in-repo action path or a `lore-*` action repo; `rac-core`'s dogfood CI is green against the new locations. @@ -63,7 +63,7 @@ GitHub→other-platform work is in the thin wrappers, not the engine. - The actions consume only the public `rac` CLI, never engine internals, so they run from any repo once published. - Coupled suite version tags (one `rac-ci` version) and consumption via - `uses: itsthelore/asdecided-ci/@` rather than per-action + `uses: asdecided/ci/@` rather than per-action Marketplace listings are acceptable (ADR-092). - The maintainer can create `rac-ci` and archive the predecessor repos. diff --git a/decisions/roadmaps/repo-topology/rac-connectors.md b/decisions/roadmaps/repo-topology/rac-connectors.md index 3ae5c8d5..c77ca748 100644 --- a/decisions/roadmaps/repo-topology/rac-connectors.md +++ b/decisions/roadmaps/repo-topology/rac-connectors.md @@ -42,7 +42,7 @@ item applies the `rac-*` name and the wider remit. ## Success Measures -- `itsthelore/asdecided-connectors` exists with the subdir-per-integration layout; the +- `asdecided/connectors` exists with the subdir-per-integration layout; the old name redirects. - No `rac-core` doc or corpus reference points to `lore-connectors`. - Connectors still consume only the published export/ingest contracts and the diff --git a/decisions/roadmaps/repo-topology/rac-editors.md b/decisions/roadmaps/repo-topology/rac-editors.md index a16cb45b..79b886c9 100644 --- a/decisions/roadmaps/repo-topology/rac-editors.md +++ b/decisions/roadmaps/repo-topology/rac-editors.md @@ -21,7 +21,7 @@ lives at the marketplace listing, not the repository name (ADR-092). ## Outcomes -- `itsthelore/asdecided-editors` exists with the VS Code / Cursor extension under +- `asdecided/editors` exists with the VS Code / Cursor extension under `vscode/`; further IDE clients land as sibling subdirs. - The Marketplace / OpenVSX listing identity and the published extension id are unchanged, so installed users are unaffected — only the source repo moves. @@ -38,7 +38,7 @@ lives at the marketplace listing, not the repository name (ADR-092). ## Success Measures -- `itsthelore/asdecided-editors` exists with `vscode/`; `lore-vscode` is archived with +- `asdecided/editors` exists with `vscode/`; `lore-vscode` is archived with a redirect. - The extension continues to publish and update for existing users with no identity break. @@ -46,7 +46,7 @@ lives at the marketplace listing, not the repository name (ADR-092). ## Assumptions -- The extension consumes the published `@itsthelore/asdecided-sdk` and the public CLI, +- The extension consumes the published `@asdecided/sdk` and the public CLI, never engine internals (ADR-063), so the repo move needs no contract change. - A shared VSIX serves VS Code and its Cursor fork (ADR-068's surviving client decision), so `vscode/` covers both today. diff --git a/decisions/roadmaps/repo-topology/rac-sdk.md b/decisions/roadmaps/repo-topology/rac-sdk.md index a3666499..b56add34 100644 --- a/decisions/roadmaps/repo-topology/rac-sdk.md +++ b/decisions/roadmaps/repo-topology/rac-sdk.md @@ -14,7 +14,7 @@ Planned ADR-092 places the non-Python language SDKs in a single `rac-sdk` repository, subdir per language (`ts/`, `go/`, …). The existing `rac-sdk-ts` (extracted in -v0.22.5, published to npm as `@itsthelore/asdecided-sdk`) becomes `rac-sdk/ts/`. The +v0.22.5, published to npm as `@asdecided/sdk`) becomes `rac-sdk/ts/`. The **Python SDK stays in `rac-core`** — its public surface *is* `rac.__all__` shipped inside the engine package (ADR-062), and the engine plus its server are one package (ADR-029). Non-Python clients remain thin contract clients over the @@ -22,9 +22,9 @@ stable `--json` surface (ADR-063). ## Outcomes -- `itsthelore/asdecided-sdk` exists with `ts/` holding the former `rac-sdk-ts`; further +- `asdecided/sdk` exists with `ts/` holding the former `rac-sdk-ts`; further languages land as sibling subdirs. -- The published npm package name is unchanged (`@itsthelore/asdecided-sdk`), so no +- The published npm package name is unchanged (`@asdecided/sdk`), so no consumer break — only the source repository moves. - The Python SDK remains in `rac-core`; no Python SDK repo is created. @@ -32,7 +32,7 @@ stable `--json` surface (ADR-063). - **Seed `rac-sdk`** with the `rac-sdk-ts` history under `ts/`; archive `rac-sdk-ts` with a redirect note. -- **Preserve the npm identity**: continue publishing `@itsthelore/asdecided-sdk` from +- **Preserve the npm identity**: continue publishing `@asdecided/sdk` from `rac-sdk/ts/`, with per-subdir release tags (polyglot-monorepo cost accepted, ADR-092). - **Update references** in `rac-core` docs/corpus that point at `rac-sdk-ts` to @@ -40,9 +40,9 @@ stable `--json` surface (ADR-063). ## Success Measures -- `itsthelore/asdecided-sdk` exists with `ts/`; `rac-sdk-ts` is archived with a +- `asdecided/sdk` exists with `ts/`; `rac-sdk-ts` is archived with a redirect. -- `@itsthelore/asdecided-sdk` continues to publish and resolve for existing consumers +- `@asdecided/sdk` continues to publish and resolve for existing consumers with no version break. - The Python SDK surface (`rac.__all__`) stays in `rac-core`; no `rac-sdk-py` repo appears. @@ -59,7 +59,7 @@ stable `--json` surface (ADR-063). ## Risks - **npm-consumer break** if the package name or publish flow changes. Mitigation: - keep `@itsthelore/asdecided-sdk` exactly; move only the source repo, behind a GitHub + keep `@asdecided/sdk` exactly; move only the source repo, behind a GitHub redirect. - **Toolchain friction** across languages in one repo. Mitigation: isolate each language in its subdir with its own build and release tag. diff --git a/decisions/roadmaps/repo-topology/repo-topology-convergence.md b/decisions/roadmaps/repo-topology/repo-topology-convergence.md index f2415edb..d2cb95e0 100644 --- a/decisions/roadmaps/repo-topology/repo-topology-convergence.md +++ b/decisions/roadmaps/repo-topology/repo-topology-convergence.md @@ -115,4 +115,4 @@ Each initiative is its own item in this series, executed independently: ## Related Tickets -- itsthelore/asdecided-core#228 +- asdecided/core#228 diff --git a/decisions/roadmaps/retrieval-diagnostics.md b/decisions/roadmaps/retrieval-diagnostics.md index 2452a769..bc4ab93f 100644 --- a/decisions/roadmaps/retrieval-diagnostics.md +++ b/decisions/roadmaps/retrieval-diagnostics.md @@ -128,4 +128,4 @@ behaviour. ## Related Tickets -- itsthelore/asdecided-core#248 +- asdecided/core#248 diff --git a/decisions/roadmaps/v0.22.x-housekeeping/v0.22.3-ts-sdk-npm-publishable.md b/decisions/roadmaps/v0.22.x-housekeeping/v0.22.3-ts-sdk-npm-publishable.md index d91d52c5..d1d4892c 100644 --- a/decisions/roadmaps/v0.22.x-housekeeping/v0.22.3-ts-sdk-npm-publishable.md +++ b/decisions/roadmaps/v0.22.x-housekeeping/v0.22.3-ts-sdk-npm-publishable.md @@ -13,7 +13,7 @@ Achieved ## Context ADR-068 makes the TypeScript client SDK its own repository, `rac-sdk-ts`, -published to npm as `@itsthelore/asdecided-sdk`. Today the extension consumes the SDK +published to npm as `@asdecided/sdk`. Today the extension consumes the SDK over a `file:../rac-sdk` relative path, which couples the two and blocks per-client repositories. This release makes `@rac/sdk` npm-publishable so the extension — and future per-client repos — consume the published package. It @@ -23,14 +23,14 @@ extension to the published package. ## Outcomes - `@rac/sdk` builds and publishes to npm under the scoped name - `@itsthelore/asdecided-sdk`, with a tag-driven publish workflow. + `@asdecided/sdk`, with a tag-driven publish workflow. - The extension can consume the published package instead of a relative path. ## Initiatives ### Initiative 1 — Package configuration -Set the scoped package name `@itsthelore/asdecided-sdk`, add `publishConfig` for +Set the scoped package name `@asdecided/sdk`, add `publishConfig` for public scoped publishing, and confirm the build output and `exports` map are correct for consumers. @@ -55,7 +55,7 @@ npm, matching the per-repo tag-driven release model (ADR-068). ## Implementation Contract -- `@rac/sdk` is named `@itsthelore/asdecided-sdk` with `publishConfig` and a verified +- `@rac/sdk` is named `@asdecided/sdk` with `publishConfig` and a verified build / `exports` map. - An `sdk-v*` publish workflow builds and publishes to npm. - The SDK's public API and the engine contract are unchanged; existing SDK @@ -63,7 +63,7 @@ npm, matching the per-repo tag-driven release model (ADR-068). ## Success Measures -- A dry-run (or first) publish under `@itsthelore/asdecided-sdk` succeeds from an +- A dry-run (or first) publish under `@asdecided/sdk` succeeds from an `sdk-v*` tag. - The published package exposes the same API the extension consumes today. diff --git a/decisions/roadmaps/v0.22.x-housekeeping/v0.22.5-extract-typescript-stack.md b/decisions/roadmaps/v0.22.x-housekeeping/v0.22.5-extract-typescript-stack.md index 6eda3575..c847f46b 100644 --- a/decisions/roadmaps/v0.22.x-housekeeping/v0.22.5-extract-typescript-stack.md +++ b/decisions/roadmaps/v0.22.x-housekeeping/v0.22.5-extract-typescript-stack.md @@ -31,7 +31,7 @@ the SDK npm-publishable. After `lore-vscode` and `rac-sdk-ts` are seeded, repoint the extension's dependency from `file:../rac-sdk` to the published `@rac/sdk` -(`@itsthelore/asdecided-sdk`). +(`@asdecided/sdk`). ### Initiative 2 — Remove the in-repo stack and CI @@ -54,7 +54,7 @@ update docs that reference the in-repo stack. ## Implementation Contract -- The extension depends on `@itsthelore/asdecided-sdk` (published), not +- The extension depends on `@asdecided/sdk` (published), not `file:../rac-sdk`. - `typescript/rac-vscode` and `typescript/rac-sdk` are removed; the `extension-release.yml` and `typescript.yml` workflows and their CI batteries @@ -78,7 +78,7 @@ update docs that reference the in-repo stack. ## Assumptions -- v0.22.3 has published `@rac/sdk` as `@itsthelore/asdecided-sdk`. +- v0.22.3 has published `@rac/sdk` as `@asdecided/sdk`. - `lore-vscode` and `rac-sdk-ts` are seeded with preserved history before the engine-side removal. diff --git a/decisions/roadmaps/warm-by-default.md b/decisions/roadmaps/warm-by-default.md index 52087df5..c8784872 100644 --- a/decisions/roadmaps/warm-by-default.md +++ b/decisions/roadmaps/warm-by-default.md @@ -122,4 +122,4 @@ stat-rung part of it to scheduled work and flips the posture, per ADR-112. ## Related Tickets -- itsthelore/asdecided-core#340 +- asdecided/core#340 diff --git a/docs/cli.md b/docs/cli.md index 49cb7afe..79174708 100644 --- a/docs/cli.md +++ b/docs/cli.md @@ -131,8 +131,8 @@ Corpus references This is the engine seam the generated Claude Code pre-edit hook pipes proposed content into; see [Agent integration](governance.md#agent-integration-context-supply-and-enforcement). Validation stays in `rac` — the hook computes nothing -([ADR-067](https://github.com/itsthelore/asdecided-core/blob/main/decisions/decisions/adr-067-agent-integration-boundary.md), -[ADR-063](https://github.com/itsthelore/asdecided-core/blob/main/decisions/decisions/adr-063-non-python-clients-are-thin.md)). +([ADR-067](https://github.com/asdecided/core/blob/main/decisions/decisions/adr-067-agent-integration-boundary.md), +[ADR-063](https://github.com/asdecided/core/blob/main/decisions/decisions/adr-063-non-python-clients-are-thin.md)). --- diff --git a/docs/context-cost.md b/docs/context-cost.md index 3705090f..32e25da5 100644 --- a/docs/context-cost.md +++ b/docs/context-cost.md @@ -24,7 +24,7 @@ schemas a client loads every session — is measured deterministically and offli measures ~915 tokens against a 1000 budget — roughly 25× under the ~23k figure the context-tax critique cited. A description or schema edit that inflates the surface fails CI rather than quietly taxing every session (see the -[`decided-mcp-surface-budget`](https://github.com/itsthelore/asdecided-core/blob/main/decisions/requirements/decided-mcp-surface-budget.md) +[`decided-mcp-surface-budget`](https://github.com/asdecided/core/blob/main/decisions/requirements/decided-mcp-surface-budget.md) requirement and `decisions/mcp/surface.py`). ## 2. Retrieval is selective and on-demand by default diff --git a/docs/decisions-on-pr.md b/docs/decisions-on-pr.md index 86349f35..74721816 100644 --- a/docs/decisions-on-pr.md +++ b/docs/decisions-on-pr.md @@ -13,7 +13,7 @@ review. It never gates the merge, never fails the check on findings, and the human PR review stays the trust boundary. Herald ships in the CI delivery repo, -[`itsthelore/asdecided-ci`](https://github.com/itsthelore/asdecided-ci), beside the +[`asdecided/ci`](https://github.com/asdecided/ci), beside the Watchkeeper, Gatekeeper, and Registrar wrappers. ## 1. Wire it up @@ -35,7 +35,7 @@ jobs: with: fetch-depth: 0 # the diff needs the merge base - - uses: itsthelore/asdecided-ci/herald/github@main + - uses: asdecided/ci/herald/github@main with: path: rac ``` diff --git a/docs/ecosystem.md b/docs/ecosystem.md index 4658e9ea..ed80dd98 100644 --- a/docs/ecosystem.md +++ b/docs/ecosystem.md @@ -7,14 +7,14 @@ planned or placeholder entries. | Name | What it is | Where | | --- | --- | --- | -| RAC dogfood corpus | This repository's own product knowledge — requirements, decisions, roadmaps, prompts, designs — validated in CI by the engine it specifies | [`decisions/`](https://github.com/itsthelore/asdecided-core/tree/main/decisions/) | -| `rac-artifacts` Claude Code skill | A project-level agent skill that teaches Claude Code to create, validate, and update RAC artifacts using the `rac` CLI | [`.claude/skills/rac-artifacts/`](https://github.com/itsthelore/asdecided-core/blob/main/.claude/skills/rac-artifacts/SKILL.md) | -| MCP grounding example | A runnable demo showing an agent connected to RAC Guide over MCP respecting a recorded decision that an unconnected agent violates | [`examples/guide/`](https://github.com/itsthelore/asdecided-core/blob/main/examples/guide/demo.md) | -| Amp setup | A worked setup connecting Sourcegraph's Amp to RAC — it reads the generated `AGENTS.md` natively and queries the `lore` MCP server | [`examples/amp/`](https://github.com/itsthelore/asdecided-core/blob/main/examples/amp/README.md) | -| Claude Code setup | A worked setup connecting Claude Code to RAC — the generated `CLAUDE.md`, the `lore` MCP server, the `rac-artifacts` skill, and the optional pre-edit veto hook | [`examples/claude-code/`](https://github.com/itsthelore/asdecided-core/blob/main/examples/claude-code/README.md) | -| Codex setup | A worked setup connecting OpenAI Codex to RAC — it reads the generated `AGENTS.md` and queries the `lore` MCP server via `config.toml` | [`examples/codex/`](https://github.com/itsthelore/asdecided-core/blob/main/examples/codex/README.md) | -| Cursor setup | A worked setup connecting Cursor to RAC — it reads the generated `AGENTS.md` and queries the `lore` MCP server via `.cursor/mcp.json` | [`examples/cursor/`](https://github.com/itsthelore/asdecided-core/blob/main/examples/cursor/README.md) | -| GitHub Copilot setup | A worked setup connecting Copilot in VS Code to RAC — the generated `.github/copilot-instructions.md` plus the `lore` MCP server in agent mode | [`examples/copilot/`](https://github.com/itsthelore/asdecided-core/blob/main/examples/copilot/README.md) | +| RAC dogfood corpus | This repository's own product knowledge — requirements, decisions, roadmaps, prompts, designs — validated in CI by the engine it specifies | [`decisions/`](https://github.com/asdecided/core/tree/main/decisions/) | +| `rac-artifacts` Claude Code skill | A project-level agent skill that teaches Claude Code to create, validate, and update RAC artifacts using the `rac` CLI | [`.claude/skills/rac-artifacts/`](https://github.com/asdecided/core/blob/main/.claude/skills/rac-artifacts/SKILL.md) | +| MCP grounding example | A runnable demo showing an agent connected to RAC Guide over MCP respecting a recorded decision that an unconnected agent violates | [`examples/guide/`](https://github.com/asdecided/core/blob/main/examples/guide/demo.md) | +| Amp setup | A worked setup connecting Sourcegraph's Amp to RAC — it reads the generated `AGENTS.md` natively and queries the `lore` MCP server | [`examples/amp/`](https://github.com/asdecided/core/blob/main/examples/amp/README.md) | +| Claude Code setup | A worked setup connecting Claude Code to RAC — the generated `CLAUDE.md`, the `lore` MCP server, the `rac-artifacts` skill, and the optional pre-edit veto hook | [`examples/claude-code/`](https://github.com/asdecided/core/blob/main/examples/claude-code/README.md) | +| Codex setup | A worked setup connecting OpenAI Codex to RAC — it reads the generated `AGENTS.md` and queries the `lore` MCP server via `config.toml` | [`examples/codex/`](https://github.com/asdecided/core/blob/main/examples/codex/README.md) | +| Cursor setup | A worked setup connecting Cursor to RAC — it reads the generated `AGENTS.md` and queries the `lore` MCP server via `.cursor/mcp.json` | [`examples/cursor/`](https://github.com/asdecided/core/blob/main/examples/cursor/README.md) | +| GitHub Copilot setup | A worked setup connecting Copilot in VS Code to RAC — the generated `.github/copilot-instructions.md` plus the `lore` MCP server in agent mode | [`examples/copilot/`](https://github.com/asdecided/core/blob/main/examples/copilot/README.md) | ## Adding an entry @@ -37,7 +37,7 @@ A harness integration (a worked `examples//` setup connecting a coding agent to RAC) follows a template and a verification gate — see the [integration recipes authoring guide](integration-recipes.md). A recipe is listed here **only after it is smoke-tested against a released engine -version** by running the grounding demo ([`examples/guide/`](https://github.com/itsthelore/asdecided-core/blob/main/examples/guide/demo.md)) +version** by running the grounding demo ([`examples/guide/`](https://github.com/asdecided/core/blob/main/examples/guide/demo.md)) with the harness connected. Until then it ships as documentation carrying a `verify against ` marker and stays off this table — the real-and-verified rule made a precondition of the row, not a courtesy. diff --git a/docs/examples/rac-validate.sarif.json b/docs/examples/rac-validate.sarif.json index f37c590a..0595b62e 100644 --- a/docs/examples/rac-validate.sarif.json +++ b/docs/examples/rac-validate.sarif.json @@ -6,7 +6,7 @@ "tool": { "driver": { "name": "rac", - "informationUri": "https://github.com/itsthelore/asdecided-core", + "informationUri": "https://github.com/asdecided/core", "version": "0.15.2", "rules": [ { diff --git a/docs/governance.md b/docs/governance.md index d2fa3425..a3b1390d 100644 --- a/docs/governance.md +++ b/docs/governance.md @@ -10,9 +10,9 @@ The policy is governed, not hardcoded. A repository declares which finding classes block the gate in its committed `.decided/config.yaml`, so the same policy travels with the corpus and applies identically in the editor and in CI. The decisions behind this are -[ADR-049](https://github.com/itsthelore/asdecided-core/blob/main/decisions/decisions/adr-049-enforcement-is-the-product.md) +[ADR-049](https://github.com/asdecided/core/blob/main/decisions/decisions/adr-049-enforcement-is-the-product.md) (enforcement is the product) and -[ADR-063](https://github.com/itsthelore/asdecided-core/blob/main/decisions/decisions/adr-063-non-python-clients-are-thin.md) +[ADR-063](https://github.com/asdecided/core/blob/main/decisions/decisions/adr-063-non-python-clients-are-thin.md) (policy lives in the corpus, not in any consumer). ## Running the gate @@ -134,7 +134,7 @@ data in `.decided/config.yaml`, a team can standardise it across a fleet: - **Adopt warnings-first, then ratchet.** A new team can start with broad `advisory`/`off` entries to get the gate green on a legacy corpus, then move codes back to `blocking` one at a time as the corpus is cleaned up — the same - ratchet the severity overrides ([ADR-053](https://github.com/itsthelore/asdecided-core/blob/main/decisions/decisions/adr-053-validation-severity-overrides.md)) + ratchet the severity overrides ([ADR-053](https://github.com/asdecided/core/blob/main/decisions/decisions/adr-053-validation-severity-overrides.md)) offer for `decided validate`, now spanning the whole gate. Because the same file governs both the editor and the PR action, a fleet-wide @@ -146,7 +146,7 @@ AI coding agents are the place a settled decision is most likely to be quietly re-litigated, because the agent never sees the corpus. RAC integrates with agents through two deterministic, engine-owned channels and enforces with structural validation — **not** a semantic verdict and **not** a cross-platform interceptor -([ADR-067](https://github.com/itsthelore/asdecided-core/blob/main/decisions/decisions/adr-067-agent-integration-boundary.md)): +([ADR-067](https://github.com/asdecided/core/blob/main/decisions/decisions/adr-067-agent-integration-boundary.md)): - **Context supply.** `decided export --agent-rules` generates committed, drift-guarded rules files (`CLAUDE.md`, `AGENTS.md`, `.cursor/rules`, @@ -179,7 +179,7 @@ not itself the interceptor. The generated hook: It is **opt-in and Claude-Code-specific**. All validation stays in `rac` — the hook computes nothing -([ADR-063](https://github.com/itsthelore/asdecided-core/blob/main/decisions/decisions/adr-063-non-python-clients-are-thin.md)). +([ADR-063](https://github.com/asdecided/core/blob/main/decisions/decisions/adr-063-non-python-clients-are-thin.md)). Disabling it (**"RAC: Disable Claude Code pre-edit hook"**, or deleting the registration) falls back cleanly to the post-edit diagnostics above. RAC makes no claim of intercepting Copilot inline suggestions or Cursor agent edits — no diff --git a/docs/index.md b/docs/index.md index bac884d5..21776248 100644 --- a/docs/index.md +++ b/docs/index.md @@ -24,7 +24,7 @@ The agent calls AsDecided, finds your soft-delete decision, cites it by ID, and The server exposes four read-only tools: `get_artifact`, `search_artifacts`, `get_related`, `get_summary`. It never writes to your repo. -▶ **Full walkthrough + runnable example: [examples/guide/](https://github.com/itsthelore/asdecided-core/tree/main/examples/guide)** +▶ **Full walkthrough + runnable example: [examples/guide/](https://github.com/asdecided/core/tree/main/examples/guide)** ## Why this works @@ -42,7 +42,7 @@ Spec-driven development (SDD) tools — GitHub Spec Kit, OpenSpec, Kiro — mana | Change management | None — RAC does not manage the change cycle; pair it with an SDD tool | Slash-command workflow: specify, clarify, plan, tasks, implement | Slash-command workflow: propose, apply, archive | | Traceability | Typed `Related` links between artifacts; `decided relationships --validate` checks them in CI | `/speckit.analyze` runs cross-artifact consistency and coverage analysis | `openspec validate` checks changes and specs for structural issues | | Tool coupling | Read-only MCP server; works with any MCP client | Slash commands or skills installed per agent at init (GitHub Copilot, Claude Code, Cursor, and others) | Slash commands for 20+ AI assistants | -| Install footprint | `brew install itsthelore/tap/rac-full` (native) | `uv tool install specify-cli` from the Git repository (Python 3.11+) | `npm install -g @fission-ai/openspec` (Node.js 20.19+) | +| Install footprint | `brew install asdecided/tap/asdecided-core` (native) | `uv tool install specify-cli` from the Git repository (Python 3.11+) | `npm install -g @fission-ai/openspec` (Node.js 20.19+) | @@ -319,7 +319,7 @@ nothing at all — `decided telemetry status` will say so. For regulated installs that must record *who consulted which decision, when, and which artifact IDs came back* — the audit trail telemetry deliberately does not keep — the server can append one JSON line per read-tool call to a local file -([ADR-084](https://github.com/itsthelore/asdecided-core/blob/main/decisions/decisions/adr-084-read-access-audit-recorder.md)). +([ADR-084](https://github.com/asdecided/core/blob/main/decisions/decisions/adr-084-read-access-audit-recorder.md)). It is **content-bearing by design and off by default**: with no `audit:` stanza nothing is written and responses are byte-identical to a server with no recorder. @@ -361,7 +361,7 @@ so a single construction-time principal would record every caller as the host. Each request instead asserts who it is with the **`X-AsDecided-Principal`** header, and the audit line records that per-request principal with `transport: http` and `attribution: asserted` -([ADR-098](https://github.com/itsthelore/asdecided-core/blob/main/decisions/decisions/adr-098-shared-http-mcp-serving.md)): +([ADR-098](https://github.com/asdecided/core/blob/main/decisions/decisions/adr-098-shared-http-mcp-serving.md)): ``` X-AsDecided-Principal: Alice Ng @@ -384,7 +384,7 @@ that developer's own checkout. At team scale you may instead want **one always-current endpoint** every agent points at, so reads come from a single `main`-backed source of truth rather than checkouts that lag between pulls. The server gains a streamable **HTTP transport** for exactly this -([ADR-098](https://github.com/itsthelore/asdecided-core/blob/main/decisions/decisions/adr-098-shared-http-mcp-serving.md)): +([ADR-098](https://github.com/asdecided/core/blob/main/decisions/decisions/adr-098-shared-http-mcp-serving.md)): ```bash decided-mcp --root /path/to/your/repo --transport http --host 127.0.0.1 --port 8000 --path /mcp @@ -422,7 +422,7 @@ container, authenticating proxy, keep-current step, and observability — is on By default the server reuses the derived structures — the repository index, the relationship graph, and the search token vectors — across calls, kept fresh by an event-sourced watcher -([ADR-099](https://github.com/itsthelore/asdecided-core/blob/main/decisions/decisions/adr-099-derived-index-cache.md), +([ADR-099](https://github.com/asdecided/core/blob/main/decisions/decisions/adr-099-derived-index-cache.md), default-on per ADR-112): ```bash @@ -487,4 +487,4 @@ the repository has not been initialized. See the troubleshooting steps above. - [CLI reference](cli.md) — every `rac` command including `decided-mcp` - [Artifact types](artifacts.md) — what requirements, decisions, designs, roadmaps, and prompts look like - [Repository workflow](repo-workflow.md) — how to organize a RAC repository -- [Examples corpus](https://github.com/itsthelore/asdecided-core/tree/main/examples/guide/) — the ready-made guide corpus +- [Examples corpus](https://github.com/asdecided/core/tree/main/examples/guide/) — the ready-made guide corpus diff --git a/docs/okf-profile.md b/docs/okf-profile.md index 8214ba30..a6a11bf5 100644 --- a/docs/okf-profile.md +++ b/docs/okf-profile.md @@ -7,7 +7,7 @@ does — a Git tree of Markdown files with YAML front matter. This page is RAC's presents itself as a conformant OKF bundle. It is a derived, interoperability view; RAC Core and `decided validate` remain the source of truth, and adopting this profile loosens none of RAC's guarantees. The decision behind it is -[ADR-048](https://github.com/itsthelore/asdecided-core/blob/main/decisions/decisions/adr-048-okf-carrier-profile.md), +[ADR-048](https://github.com/asdecided/core/blob/main/decisions/decisions/adr-048-okf-carrier-profile.md), scoped by the `rac-okf-carrier-profile` requirement. > The key words MUST, SHOULD, and MAY in this document are to be interpreted as diff --git a/docs/org-grounding.md b/docs/org-grounding.md index 1b61bcbe..44cba338 100644 --- a/docs/org-grounding.md +++ b/docs/org-grounding.md @@ -5,7 +5,7 @@ by every engineer's agent — including in repositories that have no corpus of their own. This page is the recipe for standing that up on surfaces that already ship: an ordinary corpus, the [shared server](shared-server.md), and one line of client wiring -([ADR-117](https://github.com/itsthelore/asdecided-core/blob/main/decisions/decisions/adr-117-org-grounding-plane-topology.md)). +([ADR-117](https://github.com/asdecided/core/blob/main/decisions/decisions/adr-117-org-grounding-plane-topology.md)). It is a deployment topology, not a new engine capability: no cross-corpus resolution, no federation semantics, no authentication code. Those boundaries @@ -19,7 +19,7 @@ agents most need — platform standards, golden paths, firm-wide ADRs — are org-wide. A per-repository corpus gives those decisions a reach of one. Corpus federation -([ADR-089](https://github.com/itsthelore/asdecided-core/blob/main/decisions/decisions/adr-089-corpus-federation.md)) +([ADR-089](https://github.com/asdecided/core/blob/main/decisions/decisions/adr-089-corpus-federation.md)) is the eventual mechanism, and it is deliberately paced. The org grounding plane is the day-1 answer: put the firm-wide knowledge in **one** corpus, serve it from **one** endpoint, and point **every** agent at it. Rollout cost @@ -126,7 +126,7 @@ working: grounding at the agent, accountability at the endpoint. identity, or precedence: a repository's artifacts cannot yet cite an org ADR as a validated relationship, and duplicate ids across the two corpora are not detected. Those semantics arrive with the - [federation programme](https://github.com/itsthelore/asdecided-core/blob/main/decisions/roadmaps/corpus-federation.md), + [federation programme](https://github.com/asdecided/core/blob/main/decisions/roadmaps/corpus-federation.md), under its recorded constraints. - **Endpoint reach is corpus visibility.** Anyone the proxy admits can read the whole org corpus. Partition sensitive knowledge by corpus topology — @@ -142,6 +142,6 @@ When the ADR-089 mechanism ships, the org corpus you stood up here becomes the pinned, materialised **parent**: references resolve across the boundary, collisions surface as findings, overrides become explicit and attributable, and the enterprise profile gains its parent declaration -([ADR-088](https://github.com/itsthelore/asdecided-core/blob/main/decisions/decisions/adr-088-enterprise-profile-scaffold.md)). +([ADR-088](https://github.com/asdecided/core/blob/main/decisions/decisions/adr-088-enterprise-profile-scaffold.md)). Nothing about this topology needs to be undone — starting here is starting early, not starting over. diff --git a/docs/quickstart.md b/docs/quickstart.md index 1091bf62..da318d1d 100644 --- a/docs/quickstart.md +++ b/docs/quickstart.md @@ -9,7 +9,7 @@ artifact, and run the three commands you'll use most: `validate`, `inspect`, and Install the native toolchain with Homebrew: ```bash -brew install itsthelore/tap/rac-full +brew install asdecided/tap/asdecided-core ``` This installs `decided` and `decided-mcp`. Check it: @@ -23,15 +23,15 @@ decided --version Every release also publishes a native container image to GHCR: ```bash -docker run --rm -v "$PWD:/work" ghcr.io/itsthelore/asdecided-core:latest validate decisions/ +docker run --rm -v "$PWD:/work" ghcr.io/asdecided/core:latest validate decisions/ ``` In CI, pin a release tag rather than `latest`, or pin by digest for immutable builds (the release run prints the pushed digest in its summary): ```bash -docker pull ghcr.io/itsthelore/asdecided-core:2026.6.1 -docker pull ghcr.io/itsthelore/asdecided-core@sha256: +docker pull ghcr.io/asdecided/core:2026.6.1 +docker pull ghcr.io/asdecided/core@sha256: ``` The image is the CLI and nothing more, so it drops into any docker-native @@ -41,7 +41,7 @@ can run script steps): ```yaml rac-gate: image: - name: ghcr.io/itsthelore/asdecided-core:2026.6.1 + name: ghcr.io/asdecided/core:2026.6.1 entrypoint: [""] script: - decided gate decisions/ @@ -55,7 +55,7 @@ pipelines: '**': - step: name: decided gate - image: ghcr.io/itsthelore/asdecided-core:2026.6.1 + image: ghcr.io/asdecided/core:2026.6.1 script: - decided gate decisions/ ``` @@ -64,7 +64,7 @@ Jenkins (declarative pipeline, docker agent): ```groovy pipeline { - agent { docker { image 'ghcr.io/itsthelore/asdecided-core:2026.6.1' } } + agent { docker { image 'ghcr.io/asdecided/core:2026.6.1' } } stages { stage('decided gate') { steps { sh 'decided gate decisions/' } diff --git a/docs/relationships.md b/docs/relationships.md index 6a9314d6..69a5f8cc 100644 --- a/docs/relationships.md +++ b/docs/relationships.md @@ -71,7 +71,7 @@ Each entry is a provider-specific key or a full URL: The engine does **format-lint only, offline**: `decided validate` flags an entry that is not a well-formed key or URL for the configured provider (`malformed-ticket-reference`, overridable per -[ADR-053](https://github.com/itsthelore/asdecided-core/blob/main/decisions/decisions/adr-053-validation-severity-overrides.md)), +[ADR-053](https://github.com/asdecided/core/blob/main/decisions/decisions/adr-053-validation-severity-overrides.md)), and `decided relationships --validate` never reports a ticket as a broken reference. With no provider configured the section still works, simply unvalidated. Because the provider is named in config, shape-identical keys across trackers (Linear's @@ -92,7 +92,7 @@ only the external one is marked). A decision can declare the code paths or components it governs with an optional `## Applies To` section, so "which recorded decisions apply to the file I'm editing?" becomes corpus data rather than prose (ADR-019, -[decision-to-code-proximity](https://github.com/itsthelore/asdecided-core/blob/main/decisions/roadmaps/decision-to-code-proximity.md)). +[decision-to-code-proximity](https://github.com/asdecided/core/blob/main/decisions/roadmaps/decision-to-code-proximity.md)). The section is recognised on decisions only: ```markdown diff --git a/docs/repo-workflow.md b/docs/repo-workflow.md index 805f027e..d6576f4b 100644 --- a/docs/repo-workflow.md +++ b/docs/repo-workflow.md @@ -26,7 +26,7 @@ easy to read. ### Three documentation layers RAC's own repository separates concerns into three layers -([ADR-022](https://github.com/itsthelore/asdecided-core/blob/main/decisions/decisions/adr-022-documentation-boundaries.md)): +([ADR-022](https://github.com/asdecided/core/blob/main/decisions/decisions/adr-022-documentation-boundaries.md)): - **`README.md`** — the front door: what RAC is and how to try it. - **`docs/`** — user-facing guides (this directory). diff --git a/docs/scale.md b/docs/scale.md index 2131c5d8..5e768ce7 100644 --- a/docs/scale.md +++ b/docs/scale.md @@ -107,7 +107,7 @@ authoritative single-process path and discards partial results whole. Concrete latency and throughput figures — the before/after scale curve across a 1k → millions-of-artifacts corpus on a fixed reference node — live in the -[`rac-benchmarks`](https://github.com/itsthelore/asdecided-benchmarks) harness, which +[`rac-benchmarks`](https://github.com/asdecided/benchmarks) harness, which consumes `rac` strictly as an external CLI so the numbers survive engine rebuilds. The design target is a **flat** warm-retrieval curve as the corpus grows and a cold build that scales linearly and parallel; the harness reports @@ -117,9 +117,9 @@ levers here are single-node. ## Related decisions -- [ADR-104](https://github.com/itsthelore/asdecided-core/blob/main/decisions/decisions/adr-104-persistent-mmap-index-store.md) — persistent memory-mapped index store -- [ADR-105](https://github.com/itsthelore/asdecided-core/blob/main/decisions/decisions/adr-105-event-sourced-serving-freshness.md) — event-sourced serving freshness -- [ADR-106](https://github.com/itsthelore/asdecided-core/blob/main/decisions/decisions/adr-106-incremental-validation.md) — incremental directory validation -- [ADR-107](https://github.com/itsthelore/asdecided-core/blob/main/decisions/decisions/adr-107-parallel-cold-build.md) — parallel cold build -- [ADR-108](https://github.com/itsthelore/asdecided-core/blob/main/decisions/decisions/adr-108-term-range-partitioned-parallel-merge.md) — term-range-partitioned parallel merge -- [ADR-110](https://github.com/itsthelore/asdecided-core/blob/main/decisions/decisions/adr-110-one-shot-find-store-reuse.md) — one-shot `decided find` store reuse +- [ADR-104](https://github.com/asdecided/core/blob/main/decisions/decisions/adr-104-persistent-mmap-index-store.md) — persistent memory-mapped index store +- [ADR-105](https://github.com/asdecided/core/blob/main/decisions/decisions/adr-105-event-sourced-serving-freshness.md) — event-sourced serving freshness +- [ADR-106](https://github.com/asdecided/core/blob/main/decisions/decisions/adr-106-incremental-validation.md) — incremental directory validation +- [ADR-107](https://github.com/asdecided/core/blob/main/decisions/decisions/adr-107-parallel-cold-build.md) — parallel cold build +- [ADR-108](https://github.com/asdecided/core/blob/main/decisions/decisions/adr-108-term-range-partitioned-parallel-merge.md) — term-range-partitioned parallel merge +- [ADR-110](https://github.com/asdecided/core/blob/main/decisions/decisions/adr-110-one-shot-find-store-reuse.md) — one-shot `decided find` store reuse diff --git a/docs/shared-server.md b/docs/shared-server.md index 7f977ccb..1f969f9e 100644 --- a/docs/shared-server.md +++ b/docs/shared-server.md @@ -14,7 +14,7 @@ observability lives. It assumes you have read the [MCP Server](mcp.md) page. Everything here is deployment wrapper — containers, proxies, collectors — around an unchanged engine. AsDecided gains no hosted service, no database, and no authentication code; git stays the source of truth -([ADR-080](https://github.com/itsthelore/asdecided-core/blob/main/decisions/decisions/adr-080-single-source-of-truth-git-not-database.md)). +([ADR-080](https://github.com/asdecided/core/blob/main/decisions/decisions/adr-080-single-source-of-truth-git-not-database.md)). ## 1. Do you need it? @@ -61,7 +61,7 @@ as an explicit affirmation. ```bash docker run --rm --entrypoint decided-mcp -p 8000:8000 -v "$PWD:/corpus:ro" \ - ghcr.io/itsthelore/asdecided-core:latest \ + ghcr.io/asdecided/core:latest \ --root /corpus --transport http \ --host 0.0.0.0 --port 8000 ``` @@ -84,11 +84,11 @@ internet. ## 4. The authenticating proxy The engine does not authenticate — by design -([ADR-085](https://github.com/itsthelore/asdecided-core/blob/main/decisions/decisions/adr-085-enterprise-configuration-not-mode.md)). +([ADR-085](https://github.com/asdecided/core/blob/main/decisions/decisions/adr-085-enterprise-configuration-not-mode.md)). Put a reverse proxy in front to terminate TLS, authenticate the caller, and assert the caller's identity to the audit log via the **`X-AsDecided-Principal`** header. The engine records that header as the per-request principal -([ADR-098](https://github.com/itsthelore/asdecided-core/blob/main/decisions/decisions/adr-098-shared-http-mcp-serving.md)). +([ADR-098](https://github.com/asdecided/core/blob/main/decisions/decisions/adr-098-shared-http-mcp-serving.md)). ```nginx location /mcp { @@ -136,15 +136,15 @@ container: knowledge changes only by pull from `main`, never by the server. ## 6. Observability, and the engine boundary Observability for the shared server lives in the **wrapper**, not the engine -([ADR-091](https://github.com/itsthelore/asdecided-core/blob/main/decisions/decisions/adr-091-engine-observability-boundary.md)): +([ADR-091](https://github.com/asdecided/core/blob/main/decisions/decisions/adr-091-engine-observability-boundary.md)): - **Engine diagnostics go to stderr.** `decided-mcp` writes startup and operational notices to stderr (stdout is the protocol channel). Collect the container's stderr with your normal log pipeline. - **The audit log is your read-access record.** It is a local JSONL file by design; shipping it to Loki, S3, or Elastic is a collector's job, never the - engine's ([ADR-084](https://github.com/itsthelore/asdecided-core/blob/main/decisions/decisions/adr-084-read-access-audit-recorder.md), - [ADR-073](https://github.com/itsthelore/asdecided-core/blob/main/decisions/decisions/adr-073-backend-connectors-consolidate.md)). + engine's ([ADR-084](https://github.com/asdecided/core/blob/main/decisions/decisions/adr-084-read-access-audit-recorder.md), + [ADR-073](https://github.com/asdecided/core/blob/main/decisions/decisions/adr-073-backend-connectors-consolidate.md)). Tail the audit volume with a sidecar and forward it. - **A metrics scrape endpoint belongs to the wrapper, not the engine.** The engine ships no Prometheus `/metrics` surface. If you need scrape metrics, @@ -165,7 +165,7 @@ stand (ADR-085): - **No database or hosted multi-tenant service.** Git `main` is the single source of truth; the server is one reader of it (ADR-080). - **No write path.** Knowledge changes only by pull request to `main` behind - human review ([ADR-065](https://github.com/itsthelore/asdecided-core/blob/main/decisions/decisions/adr-065-artifact-content-untrusted.md)); + human review ([ADR-065](https://github.com/asdecided/core/blob/main/decisions/decisions/adr-065-artifact-content-untrusted.md)); no transport exposes a write. These are not limitations to work around — they are the properties that let one diff --git a/docs/testing.md b/docs/testing.md index d38c88b3..61a7fe01 100644 --- a/docs/testing.md +++ b/docs/testing.md @@ -14,7 +14,7 @@ cargo clippy --workspace --all-targets -- -D warnings The committed Rust fixtures cover deterministic command behavior. Contract compatibility is certified against the language-neutral fixtures in -[`asdecided-spec`](https://github.com/itsthelore/asdecided-spec): +[`asdecided-spec`](https://github.com/asdecided/spec): ```bash DECIDED_SPEC_DIR=/path/to/asdecided-spec python rust/spec/sync_spec.py diff --git a/docs/v0.22-housekeeping-runbook.md b/docs/v0.22-housekeeping-runbook.md index d876f64a..d878f7cc 100644 --- a/docs/v0.22-housekeeping-runbook.md +++ b/docs/v0.22-housekeeping-runbook.md @@ -61,9 +61,9 @@ Install `git-filter-repo` locally (`pip install git-filter-repo`). ### v0.22.3 — Publish the TS SDK to npm (`rac-sdk-ts` foundation) 1. Ensure the **npm scope + `NPM_TOKEN`** prerequisite is done. 2. Merge the engine PR that makes `@decisions/sdk` publishable (scoped name - `@itsthelore/asdecided-sdk`, `publishConfig`, `sdk-v*` workflow). + `@asdecided/sdk`, `publishConfig`, `sdk-v*` workflow). 3. **Publish:** push tag `sdk-v0.1.0` → the workflow publishes to npm. Verify the - package resolves: `npm view @itsthelore/asdecided-sdk`. + package resolves: `npm view @asdecided/sdk`. (Do this **before** v0.22.5, which repoints the extension to the published SDK.) ### v0.22.4 — Extract `decisiongrounding` (cleanest; do first) @@ -81,7 +81,7 @@ Install `git-filter-repo` locally (`pip install git-filter-repo`). ### v0.22.5 — Extract the TS stack 1. Confirm the SDK is **already published** (v0.22.3) and the Marketplace/OpenVSX prerequisites are done. -2. Create `itsthelore/lore-vscode` and `itsthelore/asdecided-sdk-ts`. +2. Create `asdecided/editors` and `asdecided/sdk`. 3. **Seed each with history:** ```bash # rac-sdk-ts @@ -94,7 +94,7 @@ Install `git-filter-repo` locally (`pip install git-filter-repo`). git remote add origin && git push -u origin main ``` 4. In `lore-vscode`, repoint `package.json` from `"@decisions/sdk": "file:../rac-sdk"` - to the published `"@itsthelore/asdecided-sdk": "^"`; move + to the published `"@asdecided/sdk": "^"`; move `extension-release.yml`; add `VSCE_PAT` + `OVSX_PAT` secrets. 5. **Then** merge the engine PR that removes `typescript/` and its workflows. 6. **Publish the extension:** push tag `vscode-v0.1.0` in `lore-vscode` → diff --git a/docs/validation.md b/docs/validation.md index 901d66e2..69610490 100644 --- a/docs/validation.md +++ b/docs/validation.md @@ -29,7 +29,7 @@ Pointing `decided validate` at a legacy corpus for the first time can surface ma pre-existing findings at once. Rather than fail the build on all of them, a repository can downgrade or silence specific findings in its committed `.decided/config.yaml`, then tighten the gate over time. The decision behind this is -[ADR-053](https://github.com/itsthelore/asdecided-core/blob/main/decisions/decisions/adr-053-validation-severity-overrides.md). +[ADR-053](https://github.com/asdecided/core/blob/main/decisions/decisions/adr-053-validation-severity-overrides.md). Overrides are **repository-wide**: a downgrade applies to `decided review`, `decided watchkeeper`, and `decided portfolio` as well as `decided validate`. @@ -74,7 +74,7 @@ cleaned up. document covering core validation findings and OKF conformance findings, so a CI job can upload it and have GitHub Code Scanning annotate findings inline on a pull request. The decision behind this is -[ADR-054](https://github.com/itsthelore/asdecided-core/blob/main/decisions/decisions/adr-054-sarif-validation-output.md). +[ADR-054](https://github.com/asdecided/core/blob/main/decisions/decisions/adr-054-sarif-validation-output.md). ```bash decided validate decisions/ --sarif > rac.sarif @@ -121,7 +121,7 @@ decided review decisions/ --sarif > review.sarif A composite GitHub Action wraps `decided validate --sarif` and uploads the result to GitHub Code Scanning, so findings annotate the pull request inline. The decision behind it is -[ADR-058](https://github.com/itsthelore/asdecided-core/blob/main/decisions/decisions/adr-058-validation-github-action.md); +[ADR-058](https://github.com/asdecided/core/blob/main/decisions/decisions/adr-058-validation-github-action.md); it is a thin wrapper — the `rac` CLI stays the source of truth. ```yaml @@ -136,7 +136,7 @@ jobs: runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - - uses: itsthelore/asdecided-core/validate-action@v0 + - uses: asdecided/core/validate-action@v0 with: path: decisions/ ``` @@ -163,7 +163,7 @@ under the corpus **enforcement policy**, and emits one combined SARIF document (v0.21.14). The `pr-gate-action` runs it and uploads that single SARIF to Code Scanning under one category (`rac-gate`), failing when any finding is *blocking*. It is the same thin wrapper — the engine decides what is blocking, the action -computes nothing ([ADR-063](https://github.com/itsthelore/asdecided-core/blob/main/decisions/decisions/adr-063-non-python-clients-are-thin.md)): +computes nothing ([ADR-063](https://github.com/asdecided/core/blob/main/decisions/decisions/adr-063-non-python-clients-are-thin.md)): ```yaml # .github/workflows/rac.yml @@ -177,7 +177,7 @@ jobs: runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - - uses: itsthelore/asdecided-core/pr-gate-action@v0 + - uses: asdecided/core/pr-gate-action@v0 with: path: decisions/ ``` diff --git a/docs/watchkeeper.md b/docs/watchkeeper.md index 6e14852c..796a8b51 100644 --- a/docs/watchkeeper.md +++ b/docs/watchkeeper.md @@ -45,7 +45,7 @@ jobs: - uses: actions/checkout@v4 with: fetch-depth: 0 - - uses: itsthelore/asdecided-core@ + - uses: asdecided/core@ ``` On every pull request that touches your corpus you get: @@ -75,7 +75,7 @@ Prefer calling a workflow instead of composing steps: ```yaml jobs: watchkeeper: - uses: itsthelore/asdecided-core/.github/workflows/watchkeeper.yml@ + uses: asdecided/core/.github/workflows/watchkeeper.yml@ with: path: rac ``` diff --git a/examples/_recipe-template/README.md b/examples/_recipe-template/README.md index 797beb1f..529a4066 100644 --- a/examples/_recipe-template/README.md +++ b/examples/_recipe-template/README.md @@ -18,7 +18,7 @@ this from the file alone. ## Prerequisites ```bash -brew install itsthelore/tap/rac-full # the `decided` CLI and the `decided-mcp` server +brew install asdecided/tap/asdecided-core # the `decided` CLI and the `decided-mcp` server ``` A repository with a RAC corpus under `decisions/` (run `decided quickstart`, or use this diff --git a/examples/amp/README.md b/examples/amp/README.md index 136e1659..5b414296 100644 --- a/examples/amp/README.md +++ b/examples/amp/README.md @@ -13,7 +13,7 @@ the full text and relationships when it needs them. ## Prerequisites ```bash -brew install itsthelore/tap/rac-full # the `decided` CLI and the `decided-mcp` server +brew install asdecided/tap/asdecided-core # the `decided` CLI and the `decided-mcp` server ``` You also need a repository with a RAC corpus under `decisions/` (run `decided quickstart` diff --git a/examples/claude-code/README.md b/examples/claude-code/README.md index 4624137e..4aea9bdd 100644 --- a/examples/claude-code/README.md +++ b/examples/claude-code/README.md @@ -9,7 +9,7 @@ bundled authoring **skill** and the only platform seam that allows a real ## Prerequisites ```bash -brew install itsthelore/tap/rac-full # the `decided` CLI and the `decided-mcp` server +brew install asdecided/tap/asdecided-core # the `decided` CLI and the `decided-mcp` server ``` A repository with a RAC corpus under `decisions/` (run `decided quickstart`, or use this diff --git a/examples/cline/README.md b/examples/cline/README.md index 122bd8a9..639e90b7 100644 --- a/examples/cline/README.md +++ b/examples/cline/README.md @@ -7,7 +7,7 @@ file alone. ## Prerequisites ```bash -brew install itsthelore/tap/rac-full # the `decided` CLI and the `decided-mcp` server +brew install asdecided/tap/asdecided-core # the `decided` CLI and the `decided-mcp` server ``` A repository with a RAC corpus under `decisions/` (run `decided quickstart`, or use this diff --git a/examples/codex/README.md b/examples/codex/README.md index d12839f0..fb689d9b 100644 --- a/examples/codex/README.md +++ b/examples/codex/README.md @@ -8,7 +8,7 @@ Codex-specific RAC code. A stranger can reproduce this from the file alone. ## Prerequisites ```bash -brew install itsthelore/tap/rac-full # the `decided` CLI and the `decided-mcp` server +brew install asdecided/tap/asdecided-core # the `decided` CLI and the `decided-mcp` server ``` A repository with a RAC corpus under `decisions/` (run `decided quickstart`, or use this diff --git a/examples/copilot/README.md b/examples/copilot/README.md index c1d4cdfa..5e05f058 100644 --- a/examples/copilot/README.md +++ b/examples/copilot/README.md @@ -8,7 +8,7 @@ file alone. ## Prerequisites ```bash -brew install itsthelore/tap/rac-full # the `decided` CLI and the `decided-mcp` server +brew install asdecided/tap/asdecided-core # the `decided` CLI and the `decided-mcp` server ``` A repository with a RAC corpus under `decisions/` (run `decided quickstart`, or use this diff --git a/examples/cursor/README.md b/examples/cursor/README.md index 2a74cdc0..83628d56 100644 --- a/examples/cursor/README.md +++ b/examples/cursor/README.md @@ -7,7 +7,7 @@ reproduce this from the file alone. ## Prerequisites ```bash -brew install itsthelore/tap/rac-full # the `decided` CLI and the `decided-mcp` server +brew install asdecided/tap/asdecided-core # the `decided` CLI and the `decided-mcp` server ``` A repository with a RAC corpus under `decisions/` (run `decided quickstart`, or use this diff --git a/examples/omnigent/README.md b/examples/omnigent/README.md index 35aeecde..27c0847b 100644 --- a/examples/omnigent/README.md +++ b/examples/omnigent/README.md @@ -14,7 +14,7 @@ test it against your Omnigent version before relying on it in production. ## Prerequisites ```bash -brew install itsthelore/tap/rac-full # the `decided` CLI and the `decided-mcp` server +brew install asdecided/tap/asdecided-core # the `decided` CLI and the `decided-mcp` server ``` A repository with a RAC corpus under `decisions/` (run `decided quickstart`, or use this diff --git a/examples/opencode/README.md b/examples/opencode/README.md index b8ee263a..86b8732d 100644 --- a/examples/opencode/README.md +++ b/examples/opencode/README.md @@ -7,7 +7,7 @@ reproduce this from the file alone. ## Prerequisites ```bash -brew install itsthelore/tap/rac-full # the `decided` CLI and the `decided-mcp` server +brew install asdecided/tap/asdecided-core # the `decided` CLI and the `decided-mcp` server ``` A repository with a RAC corpus under `decisions/` (run `decided quickstart`, or use this diff --git a/examples/windsurf/README.md b/examples/windsurf/README.md index c59e41fe..ae24a2a5 100644 --- a/examples/windsurf/README.md +++ b/examples/windsurf/README.md @@ -7,7 +7,7 @@ this from the file alone. ## Prerequisites ```bash -brew install itsthelore/tap/rac-full # the `decided` CLI and the `decided-mcp` server +brew install asdecided/tap/asdecided-core # the `decided` CLI and the `decided-mcp` server ``` A repository with a RAC corpus under `decisions/` (run `decided quickstart`, or use this diff --git a/examples/zed/README.md b/examples/zed/README.md index 5a606157..2c8ec929 100644 --- a/examples/zed/README.md +++ b/examples/zed/README.md @@ -7,7 +7,7 @@ the file alone. ## Prerequisites ```bash -brew install itsthelore/tap/rac-full # the `decided` CLI and the `decided-mcp` server +brew install asdecided/tap/asdecided-core # the `decided` CLI and the `decided-mcp` server ``` A repository with a RAC corpus under `decisions/` (run `decided quickstart`, or use this diff --git a/mkdocs.yml b/mkdocs.yml index 10e8ef3d..7c51d215 100644 --- a/mkdocs.yml +++ b/mkdocs.yml @@ -2,9 +2,9 @@ site_name: AsDecided site_description: >- Give your coding agent the decisions your team already made — typed Markdown artifacts in your repo, served over MCP. -site_url: https://itsthelore.github.io/asdecided-core/ -repo_url: https://github.com/itsthelore/asdecided-core -repo_name: itsthelore/asdecided-core +site_url: https://asdecided.github.io/core/ +repo_url: https://github.com/asdecided/core +repo_name: asdecided/core theme: name: material diff --git a/overrides/home.html b/overrides/home.html index f331aaaf..113b0a04 100644 --- a/overrides/home.html +++ b/overrides/home.html @@ -25,7 +25,7 @@

Give your coding agent the decisions your team al
$ - brew install itsthelore/tap/rac-full + brew install asdecided/tap/asdecided-core

Native Rust CLI and MCP server · no Python runtime required.

diff --git a/pr-gate-action/action.yml b/pr-gate-action/action.yml index a53d9b39..9e49a38b 100644 --- a/pr-gate-action/action.yml +++ b/pr-gate-action/action.yml @@ -11,7 +11,7 @@ # # The Watchkeeper action lives at the repository root and the single-command # validate action at `validate-action/`; this gate is referenced as -# `uses: itsthelore/asdecided-core/pr-gate-action@`. +# `uses: asdecided/core/pr-gate-action@`. name: "AsDecided PR gate" description: >- Enforce an AsDecided corpus on a pull request with a single `decided gate` diff --git a/rac-localview/scripts/record-demo.sh b/rac-localview/scripts/record-demo.sh index a4d0af96..fa29505a 100644 --- a/rac-localview/scripts/record-demo.sh +++ b/rac-localview/scripts/record-demo.sh @@ -21,7 +21,7 @@ run() { } sleep 0.5 -run 'brew install itsthelore/tap/rac-full' +run 'brew install asdecided/tap/asdecided-core' run 'claude mcp add lore -- rac mcp' run 'rac find "test topology" rac/' run 'rac resolve ADR-027 rac/' diff --git a/rac-localview/src/landing/LandingApp.tsx b/rac-localview/src/landing/LandingApp.tsx index 0d31ffca..82dc8f11 100644 --- a/rac-localview/src/landing/LandingApp.tsx +++ b/rac-localview/src/landing/LandingApp.tsx @@ -12,10 +12,10 @@ import demoUrl from './assets/demo.svg'; import { CopyCommand } from './CopyCommand'; import './landing.css'; -const REPO_URL = 'https://github.com/itsthelore/asdecided-core'; +const REPO_URL = 'https://github.com/asdecided/core'; const DEMO_ALT = - 'Recorded terminal session: brew install itsthelore/tap/rac-full, ' + + 'Recorded terminal session: brew install asdecided/tap/asdecided-core, ' + 'claude mcp add lore -- rac mcp, then rac find, rac resolve and ' + "rac validate run against this repository's corpus, ending in PASS"; @@ -223,7 +223,7 @@ export function LandingApp() {

Install:{' '} - +

@@ -236,7 +236,7 @@ export function LandingApp() { Lore is built on RAC — Requirements as Code — the open-source engine underneath; for now the package, CLI and MCP server ship under the rac name. Source:{' '} - github.com/itsthelore/asdecided-core + github.com/asdecided/core

diff --git a/research/2026-07-enterprise-adoption-review.md b/research/2026-07-enterprise-adoption-review.md index 04757beb..4e540c78 100644 --- a/research/2026-07-enterprise-adoption-review.md +++ b/research/2026-07-enterprise-adoption-review.md @@ -46,7 +46,7 @@ with no implementation in `src/`. | **Cold start / supply** | `rac ingest`: DOCX/PDF/PPTX/XLSX/HTML via markitdown (ADR-072) + Obsidian/Logseq/Notion/Roam normalisation (ADR-079) → reviewable drafts; `rac quickstart`; import/capture/ingest agent skills; enterprise profile scaffold (config-only, ADR-088) | Confluence **inbound** ingest explicitly deferred behind outbound publish/verify (`atlassian` roadmap); mega-doc split + setup conventions (`corpus-setup-guidance`, which itself records the ~2,500-person org's inconsistent-setup problem); no scaled curation path | | **Write path** | `rac new`/`quickstart` scaffolds; `rac-capture` skill; two-gate PR model (ADR-077) | ADR-113 capture sibling surface (draft-only `propose_artifact`): decided days ago, **zero code**; Slack bot / overlay are future items | | **Governance** | Supersession + status-consistency + edge-legality enforcement (`rac-cross-artifact-enforcement`); git-derived recency (ADR-045); stale-corpus advisory in `review` | Ownership model: none (no owner field, no CODEOWNERS story); drift "suspect" findings, freshness on read surfaces — planned | -| **Deployment & security review** | `docs/security.md` (no-egress test, committed SBOM, 3 runtime deps); telemetry hard-lock `rac telemetry off --enterprise` (ADR-086); audit JSONL with per-request `X-Lore-Principal` (ADR-084/098); `docs/shared-server.md` nginx recipe; OCI image `ghcr.io/itsthelore/asdecided-core` | Audit sink shippers (Loki/S3/Elastic — `rac-ci/audit/` satellite), Helm/compose, Bitbucket/Jenkins/GitLab CI wrappers (ADR-090, `agnostic-surfaces`) — all planned-only | +| **Deployment & security review** | `docs/security.md` (no-egress test, committed SBOM, 3 runtime deps); telemetry hard-lock `rac telemetry off --enterprise` (ADR-086); audit JSONL with per-request `X-Lore-Principal` (ADR-084/098); `docs/shared-server.md` nginx recipe; OCI image `ghcr.io/asdecided/core` | Audit sink shippers (Loki/S3/Elastic — `rac-ci/audit/` satellite), Helm/compose, Bitbucket/Jenkins/GitLab CI wrappers (ADR-090, `agnostic-surfaces`) — all planned-only | | **Integrations** | GitHub Actions ×3 (watchkeeper, validate→SARIF, pr-gate); typed `--graph`/`--documents`/`--okf`/`--html` exports; external Jira edges format-linted + marked in graph (ADR-087) | `rac-connect atlassian verify/publish` (rac-connectors#4); export schemas, `--at`, `--since` change feed, source identity (`corpus-sync` — all planned) | | **Agent-fleet coverage** | MCP (Claude Code/Desktop, Cursor); `rac export --agent-rules` managed blocks for CLAUDE.md/AGENTS.md/Cursor/Copilot; client recipes in `examples/` for codex, cline, copilot, windsurf, zed, amp, opencode; CLI-first path documented (`lean-context-delivery` Achieved) | Nothing verifies non-MCP agents actually consume the blocks; TS SDK still requires the Python CLI (ADR-063) | | **Proof of value** | `rac eval`: deterministic P@k/R@k + hard-negative gate (ADR-066), CI-gated; obey-demo with measurement protocol | Eval is 12 queries scoring a non-discriminating 1.0 (admitted in `corpus-sync`); no violation/usage reporting over the audit log; paraphrase gap is real — I reproduced it: `rac find "who decided we don't use embeddings"` misses ADR-066 entirely (`paraphrase-recall-response` design owns it) | diff --git a/rust/PARITY-REPORT.md b/rust/PARITY-REPORT.md index 80d8da07..f1702ed1 100644 --- a/rust/PARITY-REPORT.md +++ b/rust/PARITY-REPORT.md @@ -92,7 +92,7 @@ surface depends on has a parity-proven Rust implementation. ## asdecided-spec acceptance suite -The public specification repo (itsthelore/asdecided-spec, v0.1.0) ships an +The public specification repo (asdecided/spec, v0.1.0) ships an executable acceptance suite (`examples/manifest.json`: 2 valid corpora + 16 invalid cases with expected blocking finding codes). Both engines were run over all 18 cases with identical argv/env: **18/18 byte-identical diff --git a/rust/PORT-CONTRACT.d/02-frontmatter.md b/rust/PORT-CONTRACT.d/02-frontmatter.md index 1c6ff5df..e4d26917 100644 --- a/rust/PORT-CONTRACT.d/02-frontmatter.md +++ b/rust/PORT-CONTRACT.d/02-frontmatter.md @@ -1,4 +1,4 @@ -# 02 — Frontmatter contract (`src/asdecided/core/frontmatter.py`) +# 02 — Frontmatter contract (`src/rac/core/frontmatter.py`) Status: verified against the oracle venv (`.venv-oracle`, Python 3.11, PyYAML 6.0.3) on 2026-07-11 unless a claim is marked UNVERIFIED. This is parity landmine #1: the @@ -12,7 +12,7 @@ Public surface consumed downstream: - `split_frontmatter(text: str) -> FrontmatterSplit` - `parse_frontmatter(raw: str) -> (ArtifactMetadata | None, list[Issue])` - Constants used: `MAX_FRONTMATTER_BYTES = 65536` (64 KiB), `MAX_FRONTMATTER_DEPTH = 32` - (both in `src/asdecided/core/limits.py`). + (both in `src/rac/core/limits.py`). - `Issue` (in `models.py`): `(severity, code, message, line=None)`. Every issue this module emits has `severity="error"` and `line=None`. (The one frontmatter-related issue with a line number — unterminated block — is emitted by `markdown.parse`, @@ -320,7 +320,7 @@ Verified reprs: `'zzz'`, `2` (int key), `None` (null key), `datetime.date(2026, stored None. Verified reprs: `'banana'`, `5`, `9`. - Registered names, exact case-sensitive match, in registry order: `requirement`, `decision`, `roadmap`, `prompt`, `design` - (`ARTIFACT_SPECS` in `src/asdecided/core/artifacts.py`; `Decision` ≠ `decision`, + (`ARTIFACT_SPECS` in `src/rac/core/artifacts.py`; `Decision` ≠ `decision`, capitalized → error. UNVERIFIED for the capitalized case specifically, but `spec_for` is a plain `==` loop). @@ -373,7 +373,7 @@ Verified reprs: `'zzz'`, `2` (int key), `None` (null key), `datetime.date(2026, --- -## 7. `parse_file` interplay (`src/asdecided/core/markdown.py`, in-scope excerpts) +## 7. `parse_file` interplay (`src/rac/core/markdown.py`, in-scope excerpts) `parse_file(path)` (all issues below land in `product.parse_issues`, and the product is a degraded empty `Product(title=None)` on the error paths): diff --git a/rust/PORT-CONTRACT.d/03-markdown.md b/rust/PORT-CONTRACT.d/03-markdown.md index 50b0c8bd..6a11b53a 100644 --- a/rust/PORT-CONTRACT.d/03-markdown.md +++ b/rust/PORT-CONTRACT.d/03-markdown.md @@ -1,6 +1,6 @@ # 03 — `rac.core.markdown`: Markdown → Product extraction (parity landmine #2) -Source of truth: `/home/user/rac-core/src/asdecided/core/markdown.py` (frozen oracle). +Source of truth: `/home/user/rac-core/src/rac/core/markdown.py` (frozen oracle). Parser: **markdown-it-py 4.2.0**, preset `"commonmark"`, one module-level shared instance (`_PARSER = MarkdownIt("commonmark")`). All behavior below was verified empirically with `.venv-oracle/bin/python` unless marked UNVERIFIED. diff --git a/rust/PORT-CONTRACT.d/04-classification-validation.md b/rust/PORT-CONTRACT.d/04-classification-validation.md index 29cff03c..6c26343f 100644 --- a/rust/PORT-CONTRACT.d/04-classification-validation.md +++ b/rust/PORT-CONTRACT.d/04-classification-validation.md @@ -1,8 +1,8 @@ # 04 — Classification, Identity, and Validation -Source modules: `src/asdecided/core/classification.py`, `src/asdecided/core/artifacts.py`, -`src/asdecided/core/identity.py`, `src/asdecided/core/idgen.py`, `src/asdecided/core/metadata.py`, -`src/asdecided/core/validation.py`, `src/asdecided/core/schema.py`, `src/asdecided/core/overrides.py`. +Source modules: `src/rac/core/classification.py`, `src/rac/core/artifacts.py`, +`src/rac/core/identity.py`, `src/rac/core/idgen.py`, `src/rac/core/metadata.py`, +`src/rac/core/validation.py`, `src/rac/core/schema.py`, `src/rac/core/overrides.py`. Upstream inputs (`Product`, section map) come from the parser (`markdown.py`, `frontmatter.py`) — see the parser contract section; the `## section` normalization and requirement extraction rules that feed classification/validation are summarized diff --git a/rust/PORT-CONTRACT.d/05-relationships.md b/rust/PORT-CONTRACT.d/05-relationships.md index c825ce01..3b6f307e 100644 --- a/rust/PORT-CONTRACT.d/05-relationships.md +++ b/rust/PORT-CONTRACT.d/05-relationships.md @@ -2,7 +2,7 @@ Source of truth: `src/asdecided/services/relationships.py` (1477 LOC), plus its pure foundation `src/asdecided/services/references.py`, the edge schema -`src/asdecided/core/relationship_types.py`, identity `src/asdecided/core/identity.py`, +`src/rac/core/relationship_types.py`, identity `src/rac/core/identity.py`, scope helpers `src/asdecided/services/scope_paths.py`, and the renderers `src/asdecided/output/{human,json,sarif}.py`. CLI wiring: `cmd_relationships` in `src/asdecided/cli.py`. @@ -646,7 +646,7 @@ human). Message + uri per code: ```json {"version":"2.1.0","$schema":"https://json.schemastore.org/sarif-2.1.0.json", "runs":[{"tool":{"driver":{"name":"rac", - "informationUri":"https://github.com/itsthelore/asdecided-core", + "informationUri":"https://github.com/asdecided/core", "version":<__version__>,"rules":[…]}},"results":[…]}]} ``` diff --git a/rust/PORT-CONTRACT.d/07-output-bytes.md b/rust/PORT-CONTRACT.d/07-output-bytes.md index fa370bc9..e369a803 100644 --- a/rust/PORT-CONTRACT.d/07-output-bytes.md +++ b/rust/PORT-CONTRACT.d/07-output-bytes.md @@ -314,7 +314,7 @@ trailing `\n`. Document shape: { "tool": { "driver": { "name": "rac", - "informationUri": "https://github.com/itsthelore/asdecided-core", + "informationUri": "https://github.com/asdecided/core", "version": , "rules": [ {"id": }, ... ] }}, diff --git a/rust/PORT-CONTRACT.d/09-walk-stats-export-review-schema.md b/rust/PORT-CONTRACT.d/09-walk-stats-export-review-schema.md index 4390dfd1..b768885b 100644 --- a/rust/PORT-CONTRACT.d/09-walk-stats-export-review-schema.md +++ b/rust/PORT-CONTRACT.d/09-walk-stats-export-review-schema.md @@ -3,9 +3,9 @@ Scope: the deterministic corpus walk (`rac.core.fs` + `rac.core.corpus`), and the `stats`, `export`, `review`, `schema`/`templates` commands. Every claim below was verified against the oracle (`.venv-oracle/bin/rac`, Python 3.11.15) unless marked -`UNVERIFIED`. Source files: `src/asdecided/core/fs.py`, `src/asdecided/core/corpus.py`, +`UNVERIFIED`. Source files: `src/rac/core/fs.py`, `src/rac/core/corpus.py`, `src/asdecided/services/stats.py`, `src/asdecided/services/export.py`, -`src/asdecided/services/review.py`, `src/asdecided/core/schema.py`, `src/asdecided/output/{human,json,sarif,templates}.py`. +`src/asdecided/services/review.py`, `src/rac/core/schema.py`, `src/asdecided/output/{human,json,sarif,templates}.py`. The producing oracle version string is `0.1.dev50+g21c8be403` (setuptools_scm). This string appears verbatim in two payloads (`export --json` `rac_version`, and every SARIF @@ -77,7 +77,7 @@ round-half-even but the *string* forms differ (`0.0` vs `0.0`; but e.g. `10.0` i --- -## 1. The corpus walk — `find_markdown_files` (`src/asdecided/core/fs.py`) +## 1. The corpus walk — `find_markdown_files` (`src/rac/core/fs.py`) This is THE traversal every command in this section (and most others) uses. Get it byte-exact or every downstream ordering diverges. @@ -597,7 +597,7 @@ append `` + `No artifacts yet — create your first with: rac quickstart` - `_document`: results sorted by `(uri, startLine|0, ruleId, message.text)`. `rules` = `[{"id": code} for code in sorted(set(ruleIds))]` (unique codes, sorted). Top document: `{version:"2.1.0", $schema:, runs:[{tool.driver:{name:"rac", - informationUri:"https://github.com/itsthelore/asdecided-core", version:__version__, rules}, results}]}`. + informationUri:"https://github.com/asdecided/core", version:__version__, rules}, results}]}`. `json.dumps(indent=2)` (ensure_ascii=True). `driver.version` = env version. --- diff --git a/rust/PORT-CONTRACT.d/14-closure-state.md b/rust/PORT-CONTRACT.d/14-closure-state.md index 687c00cf..8dc0a9ff 100644 --- a/rust/PORT-CONTRACT.d/14-closure-state.md +++ b/rust/PORT-CONTRACT.d/14-closure-state.md @@ -68,7 +68,7 @@ mcp-stats' summary (§2.2), path included. {schema_version,total,sessions,commands[],recent{}}, guide: }`. The guide dict is always full (never `{}`), including nulls for `first_ts`/`last_ts` when empty. -- SHARE: one line, `https://github.com/itsthelore/asdecided-core/issues/new? +- SHARE: one line, `https://github.com/asdecided/core/issues/new? template=guide-usage-report.yml&report=`. The report INCLUDES `guide.path` — usage does not strip the path; mcp-stats does (§2.3). Do not copy the strip across. diff --git a/rust/PORT-CONTRACT.d/15-closure-agent-integration.md b/rust/PORT-CONTRACT.d/15-closure-agent-integration.md index 7d707e72..83064b58 100644 --- a/rust/PORT-CONTRACT.d/15-closure-agent-integration.md +++ b/rust/PORT-CONTRACT.d/15-closure-agent-integration.md @@ -5,7 +5,7 @@ Scope: the B4 commands ported for roadmap:native-cli-closure — `rac eval` (the ADR-066 grounding benchmark and CI gate). Every claim below was verified against the oracle (`.venv-oracle/bin/rac`, `0.1.dev50+g21c8be403`, Python 3.11.15). Source files: `src/asdecided/cli.py` -(`cmd_skill`/`cmd_hook`/`cmd_eval`), `src/asdecided/core/{skills,hooks}.py`, +(`cmd_skill`/`cmd_hook`/`cmd_eval`), `src/rac/core/{skills,hooks}.py`, `src/asdecided/services/{skill,hook,eval}.py`, `src/asdecided/skills/*/SKILL.md`, `src/asdecided/hooks/*.sh`, `src/asdecided/output/{human,json}.py` (`render_skill_*`, `render_hook_*`). Rust: new `rac-engine/src/skill.rs`, diff --git a/rust/PORT-CONTRACT.d/16-closure-scaffold-writes.md b/rust/PORT-CONTRACT.d/16-closure-scaffold-writes.md index adb881f5..65dce0d0 100644 --- a/rust/PORT-CONTRACT.d/16-closure-scaffold-writes.md +++ b/rust/PORT-CONTRACT.d/16-closure-scaffold-writes.md @@ -6,7 +6,7 @@ Scope: the B5 commands ported for roadmap:native-cli-closure — `rac new`, against the oracle (`.venv-oracle/bin/rac`, `0.1.dev50+g21c8be403`, Python 3.11.15). Source files: `src/asdecided/cli.py` (`cmd_new`/`cmd_init`/ `cmd_quickstart`/`cmd_rename`/`cmd_migrate`, `_maybe_ask_usage_sharing`), -`src/asdecided/core/{idgen,templates}.py`, `src/asdecided/services/{create,init, +`src/rac/core/{idgen,templates}.py`, `src/asdecided/services/{create,init, profiles,quickstart,rename,migrate}.py`, `src/asdecided/output/{human,json}.py`. Rust: new `rac-engine/src/scaffold.rs` (idgen, embedded templates, config identity, init/profiles, create, quickstart, migrate) and `rename.rs`; diff --git a/rust/PORT-CONTRACT.d/17-closure-export-modes.md b/rust/PORT-CONTRACT.d/17-closure-export-modes.md index 70c628b5..9f0ea8d0 100644 --- a/rust/PORT-CONTRACT.d/17-closure-export-modes.md +++ b/rust/PORT-CONTRACT.d/17-closure-export-modes.md @@ -6,7 +6,7 @@ verified against the oracle (`.venv-oracle/bin/rac`, `0.1.dev50+g21c8be403`, Python 3.11.15). Source files: `src/asdecided/cli.py` (`cmd_export`, `_cmd_agent_rules`, `_agent_rules_root`), `src/asdecided/output/{portal,okf}.py`, `src/asdecided/services/{agent_rules, -recency}.py`, `src/asdecided/core/okf.py`, `src/asdecided/output/{human,json}.py`. +recency}.py`, `src/rac/core/okf.py`, `src/asdecided/output/{human,json}.py`. Rust: new `rac-engine/src/{portal,agent_rules,okf}.rs`; the vendored shell under `rac-engine/assets/portal/`; `gitinfo.rs` (`first_committed`), `pycompat.rs` (`py_normpath`/`py_abspath`/ diff --git a/rust/rac-engine/assets/spec/artifact-specs.json b/rust/rac-engine/assets/spec/artifact-specs.json index 048e16a2..a6d8751a 100644 --- a/rust/rac-engine/assets/spec/artifact-specs.json +++ b/rust/rac-engine/assets/spec/artifact-specs.json @@ -1,7 +1,7 @@ { "_meta": { "role": "Canonical machine-readable artifact-spec registry: the ordered ARTIFACT_SPECS (requirement, decision, roadmap, prompt, design) and relationship-section descriptions, read by BOTH RAC engines — the Python engine (rac.core.artifacts) and the Rust engine (rac-engine::spec). ADR-063 Guard 1: one shared, language-neutral source of truth, so classification/validation cannot drift between engines.", - "canonical": "This file, in itsthelore/asdecided-spec, is the upstream source of truth. Implementations vendor it (rac-core: src/rac/spec/artifact-specs.json) and a sync gate keeps each vendored copy's artifact_specs and relationship_descriptions payloads identical to this file's. Edit here; downstream copies re-sync — never the reverse.", + "canonical": "This file, in asdecided/spec, is the upstream source of truth. Implementations vendor it (rac-core: src/rac/spec/artifact-specs.json) and a sync gate keeps each vendored copy's artifact_specs and relationship_descriptions payloads identical to this file's. Edit here; downstream copies re-sync — never the reverse.", "consumers": [ "rac.core.artifacts (Python)", "rac-engine::spec (Rust, include_str!)" diff --git a/rust/rac-engine/src/frontmatter.rs b/rust/rac-engine/src/frontmatter.rs index f32ac09c..5d183f13 100644 --- a/rust/rac-engine/src/frontmatter.rs +++ b/rust/rac-engine/src/frontmatter.rs @@ -1,4 +1,4 @@ -//! Frontmatter parsing — port of `src/asdecided/core/frontmatter.py` plus the +//! Frontmatter parsing — port of `src/rac/core/frontmatter.py` plus the //! bounded PyYAML-1.1 SafeLoader subset it rides on (PORT-CONTRACT.d/02). //! //! This is parity landmine #1: the oracle is PyYAML 6.0.3's pure-Python @@ -29,7 +29,7 @@ use std::collections::HashMap; use crate::pycompat::{py_float_repr, py_repr_str, py_strip}; // --------------------------------------------------------------------------- -// Limits (src/asdecided/core/limits.py) +// Limits (src/rac/core/limits.py) // --------------------------------------------------------------------------- pub const DEFAULT_MAX_FILE_BYTES: u64 = 1 << 20; // 1 MiB @@ -104,7 +104,7 @@ pub fn file_cap_from(raw: Option<&str>) -> FileCap { } // --------------------------------------------------------------------------- -// Issue / metadata models (src/asdecided/core/models.py, metadata.py) +// Issue / metadata models (src/rac/core/models.py, metadata.py) // --------------------------------------------------------------------------- #[derive(Clone, Debug, PartialEq)] @@ -4304,7 +4304,7 @@ fn validate_fields( } // --------------------------------------------------------------------------- -// parse_file support (src/asdecided/core/markdown.py read stage) — the frontmatter +// parse_file support (src/rac/core/markdown.py read stage) — the frontmatter // contract owns the wordings; the markdown module sequences the issues. // --------------------------------------------------------------------------- diff --git a/rust/rac-engine/src/hook.rs b/rust/rac-engine/src/hook.rs index 6cd5ff67..7916b442 100644 --- a/rust/rac-engine/src/hook.rs +++ b/rust/rac-engine/src/hook.rs @@ -1,6 +1,6 @@ //! Bundled git hooks — `decided hook` (PORT-CONTRACT.d/15). //! -//! Port of `src/asdecided/core/hooks.py` (registry + resource loading) and +//! Port of `src/rac/core/hooks.py` (registry + resource loading) and //! `src/asdecided/services/hook.py` (`install_hook`). The packaged `