From 55b2b214e43c933fff646348737fc9065a6122c1 Mon Sep 17 00:00:00 2001
From: Tom Ballard
}, ... ]
}},
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 `