From d433bea2c3861e768eab206d1d853580847b9656 Mon Sep 17 00:00:00 2001 From: MeekPhills <117056626+MeekPhills@users.noreply.github.com> Date: Sat, 15 Aug 2026 12:21:55 -0400 Subject: [PATCH 1/4] Add verified Citewire orchestration handoff --- .claude/orchestration/execution-state.yaml | 134 +++ .claude/orchestration/recovery-ledger.yaml | 285 +++++ .claude/orchestration/streams/WS-001.md | 122 ++ .claude/orchestration/streams/WS-002.md | 117 ++ .claude/orchestration/streams/WS-003.md | 133 +++ .claude/orchestration/streams/WS-004.md | 130 +++ .claude/orchestration/streams/WS-005.md | 133 +++ .claude/orchestration/streams/WS-006.md | 122 ++ .claude/orchestration/streams/WS-007.md | 154 +++ .claude/orchestration/streams/WS-008.md | 140 +++ .claude/orchestration/streams/WS-009.md | 112 ++ .claude/orchestration/streams/WS-010.md | 90 ++ .claude/orchestration/streams/WS-011.md | 113 ++ .claude/orchestration/streams/WS-012.md | 114 ++ .claude/orchestration/streams/WS-013.md | 106 ++ .claude/orchestration/streams/WS-014.md | 113 ++ .claude/orchestration/streams/WS-015.md | 111 ++ .claude/orchestration/streams/WS-016.md | 105 ++ .../orchestration/verification-evidence.md | 78 ++ .claude/orchestration/work-graph.yaml | 1033 +++++++++++++++++ CLAUDE.md | 100 ++ PROJECT_HANDOFF.md | 396 +++++++ 22 files changed, 3941 insertions(+) create mode 100644 .claude/orchestration/execution-state.yaml create mode 100644 .claude/orchestration/recovery-ledger.yaml create mode 100644 .claude/orchestration/streams/WS-001.md create mode 100644 .claude/orchestration/streams/WS-002.md create mode 100644 .claude/orchestration/streams/WS-003.md create mode 100644 .claude/orchestration/streams/WS-004.md create mode 100644 .claude/orchestration/streams/WS-005.md create mode 100644 .claude/orchestration/streams/WS-006.md create mode 100644 .claude/orchestration/streams/WS-007.md create mode 100644 .claude/orchestration/streams/WS-008.md create mode 100644 .claude/orchestration/streams/WS-009.md create mode 100644 .claude/orchestration/streams/WS-010.md create mode 100644 .claude/orchestration/streams/WS-011.md create mode 100644 .claude/orchestration/streams/WS-012.md create mode 100644 .claude/orchestration/streams/WS-013.md create mode 100644 .claude/orchestration/streams/WS-014.md create mode 100644 .claude/orchestration/streams/WS-015.md create mode 100644 .claude/orchestration/streams/WS-016.md create mode 100644 .claude/orchestration/verification-evidence.md create mode 100644 .claude/orchestration/work-graph.yaml create mode 100644 CLAUDE.md create mode 100644 PROJECT_HANDOFF.md diff --git a/.claude/orchestration/execution-state.yaml b/.claude/orchestration/execution-state.yaml new file mode 100644 index 0000000..e2ab1d7 --- /dev/null +++ b/.claude/orchestration/execution-state.yaml @@ -0,0 +1,134 @@ +schema_version: 1 +artifact: citewire-orchestration-execution-state +as_of: "2026-08-15" +claim_status: Verified + +orchestration: + repository_path: "/Users/luismorrobel/karayagroup/citewire" + repository: "MeekPhills/citewire" + branch: "agent/citewire-orchestration-handoff" + based_on: "ff09b68ed811531eb0ca630b65daeaf06cc3304c" + current_head: "ff09b68ed811531eb0ca630b65daeaf06cc3304c" + mode: "research, synchronization planning, and Claude handoff preparation" + next_gate: "WS-002" + next_gate_name: "Canonical Citewire identity and authenticated authority decision" + integration_owner: "Fable L0 master orchestrator" + +scoped_pull_requests: + all_open_prs_draft: true + citewire_community: + url: "https://github.com/MeekPhills/citewire/pull/1" + head: "10aee95ac95bb437b4607723cd20fa5c8f9d1879" + draft: true + mergeable: "MERGEABLE" + citewire_landing: + url: "https://github.com/MeekPhills/citewire/pull/2" + head: "ff09b68ed811531eb0ca630b65daeaf06cc3304c" + draft: true + mergeable: "MERGEABLE" + citewire_cloud: + url: "https://github.com/MeekPhills/citewire-cloud/pull/1" + head: "69068275ca0e332e36304533aa0f6b5d2e291405" + draft: true + mergeable: "MERGEABLE" + openly_useful_link: + url: "https://github.com/Openly-Useful/openlyuseful.org/pull/8" + head: "28af5c7a5fdd0425ced2fe45f5c50e05946758de" + draft: true + mergeable: "MERGEABLE" + karaya_link: + url: "https://github.com/MeekPhills/karayagroup/pull/17" + head: "3a90e43d8797af9e7c0bc02d4c1ae6f51ebd19a6" + draft: true + mergeable: "MERGEABLE" + +external_observations: + citewire_org: + observed_on: "2026-08-15" + http: "HTTP responds 200 with a parked Porkbun page" + https: "TLS handshake fails" + state: "not a verified live Citewire landing destination" + claim_status: Verified + karaya_production: + observed_on: "2026-08-15" + state: "Industry News, About, nine-topic API, and read-only MCP initialize were reachable in routine smoke tests" + deployment_change_this_session: false + claim_status: Verified + citewire_cloud: + deployment_count_verified: 0 + deployment_change_this_session: false + claim_status: Historical + +mutation_guardrails: + deploy: + permitted: false + state: "No deployment is authorized or performed." + merge: + permitted: false + state: "No pull request merge is authorized or performed." + tag: + permitted: false + state: "No tag is authorized or performed." + publish: + permitted: false + state: "No npm package, GitHub release, MCP Registry, catalog, or other publication is authorized or performed." + provider_activation: + permitted: false + state: "No provider/source activation is authorized or performed." + data_mutation: + permitted: false + state: "No database write, migration, source toggle, historical corpus rewrite, threshold change, or automatic-publication change is authorized or performed." + dns_or_domain: + permitted: false + state: "No DNS, certificate, domain, host, or provider activation is authorized or performed." + paid_service_decision: + permitted: false + state: "No paid or fixed-cost service decision is authorized or performed." + secrets: + permitted: false + state: "No credential, raw key, secret, or private customer data may be created, copied, logged, or committed." + owner_screenshots: + permitted: false + state: "Do not alter, stage, delete, clean, or include any of the 49 screenshots under karayagroup-brand/site/handoff/redesign/: 41 are untracked and 8 are tracked." + +current_dependency_state: + community_archive_pin: + repository_path: "/Users/luismorrobel/karayagroup/citewire-cloud" + package: "citewire" + source: "https://github.com/MeekPhills/citewire/archive/10aee95ac95bb437b4607723cd20fa5c8f9d1879.tar.gz" + status: "verified current code pin; do not replace with an npm range until immutable Community publication and provenance verification" + cloud_alpha: + status: "draft and undeployed; docs-only pin reconciliation completed at 69068275ca0e332e36304533aa0f6b5d2e291405 with isolated install, syntax/diff, and 15/15 committed tests reported passed" + karaya_automation: + status: "no shadow state machine, Adjacent signal UI, automated editorial agent workflow, durable decision trace, exceptions-only console, assessment scheduler, canary, or production rollout is implemented" + +required_stop_conditions: + - "failed test or CI check" + - "unexpected diff or changed ownership boundary" + - "secret, credential, raw key, private customer data, or private transcript" + - "paid-service, provider, domain, DNS, deployment, or data decision requiring owner approval" + - "irreversible action lacking explicit owner approval" + - "attempt to merge visible Karaya copy without Luis read-aloud approval" + - "attempt to stage or alter owner screenshots" + +initial_parallel_execution_wave: + scope: "WS-002 only; do not start WS-003 through WS-016" + level_0: "establish controlled baseline, integrate evidence, and own the identity decision packet" + nested_fable: "frame retain-in-place and owner-approved move routes without selecting one" + luna: "independently verify exact names, refs, PRs, namespace visibility, and authority evidence" + terra: "independently review irreversible identity, provenance, registry, hosting, and legacy consequences" + mutation_boundary: "the only permitted write is the cited WS-002 decision packet; no external mutation" + +two_hour_schedule: + t_plus_0_to_30: "revalidate baseline and independently frame/verify the two identity routes" + t_plus_30_to_60: "Level 0 reconciles reports into the canonical identity decision packet" + t_plus_60_to_120: "stop at Luis's identity decision gate; factual packet corrections only through independent review" + +next_safe_sequence: + - "WS-002: obtain explicit canonical identity and authority decision with read-only evidence" + - "WS-003 and WS-004: plan history preservation and re-verify Community candidate only after WS-002" + - "WS-005: reconcile landing identity and verify a live HTTPS target only after a separately approved host/DNS action" + - "WS-006 and WS-007: validate and land downstream links only after WS-005 and separate merge approvals" + - "WS-008: owner-gated immutable release sequence; then WS-010 only" + - "WS-011: separate archive-pinned private-alpha readiness path after WS-009 and owner operating decisions" + - "WS-012: read-only Karaya production truth before WS-014 through WS-016" diff --git a/.claude/orchestration/recovery-ledger.yaml b/.claude/orchestration/recovery-ledger.yaml new file mode 100644 index 0000000..2c4171f --- /dev/null +++ b/.claude/orchestration/recovery-ledger.yaml @@ -0,0 +1,285 @@ +schema_version: 1 +artifact: recovery-ledger +program: citewire-open-source +captured_at: "2026-08-15T00:00:00-04:00" +scope: + - "MeekPhills/citewire Community candidate and citewire.org landing" + - "MeekPhills/citewire-cloud private-alpha candidate" + - "Openly-Useful/openlyuseful.org project-card link" + - "MeekPhills/karayagroup Industry News consumer link" +authority_order: + - "Luis's explicit live approval" + - "current implementation and reproducible behavior" + - "fresh test, CI, deployment, and direct HTTP evidence" + - "reviewed git history and pull-request diffs" + - "current GitHub and Linear state" + - "current repository documentation, including CLAUDE.md" + - "CITEWIRE_CODEX_HANDOFF.md, CITEWIRE_EXECUTION_CHECKPOINT.md, older instructions, and historical prompts" +claim_statuses: + Verified: "Direct local or live evidence recorded in this recovery pass." + Historical: "Recorded in a dated handoff or checkpoint; not re-executed in this pass." + Inferred: "Reasonable relationship drawn from verified evidence; needs a focused check before action." + Unknown: "No sufficient evidence for action." + Contradicted: "Sources conflict; the higher-trust or fresher source governs." +sources: + - id: S1 + path: "/Users/luismorrobel/karayagroup/CITEWIRE_CODEX_HANDOFF.md" + trust: high + freshness: "2026-08-13 historical handoff, with 2026-08-14 website continuation" + - id: S2 + path: "/Users/luismorrobel/karayagroup/CITEWIRE_EXECUTION_CHECKPOINT.md" + trust: high + freshness: "2026-08-13 checkpoint, with 2026-08-14 website continuation" + - id: S3 + path: "/Users/luismorrobel/karayagroup/citewire/.git" + trust: high + freshness: "local Git refs inspected 2026-08-15" + - id: S4 + path: "/Users/luismorrobel/karayagroup/citewire-cloud/package.json" + trust: high + freshness: "current local package manifest inspected 2026-08-15" + - id: S5 + path: "/Users/luismorrobel/karayagroup/citewire-cloud/package-lock.json" + trust: high + freshness: "current local lockfile inspected 2026-08-15" + - id: S6 + path: "/Users/luismorrobel/karayagroup/karayagroup-brand/site/handoff/redesign/" + trust: high + freshness: "tracked and untracked file count inspected 2026-08-15" + - id: S7 + path: "/Users/luismorrobel/karayagroup/karayagroup-brand/site/api/_lib/publish-policy.js" + trust: medium + freshness: "checked-in historical runtime policy inspected 2026-08-15" + - id: S8 + path: "/Users/luismorrobel/karayagroup/karayagroup-brand/supabase/seed/source_registry.verified.yaml" + trust: medium + freshness: "checked-in historical source evidence inspected 2026-08-15" + - id: S9 + path: "https://karaya.group/industry-news/feed.json" + trust: high + freshness: "live JSON Feed fetched and independently summarized 2026-08-15" +last_good_state: + citewire_community: + claim_status: Verified + branch: agent/citewire-product-launch + head: 10aee95ac95bb437b4607723cd20fa5c8f9d1879 + draft_pr: "https://github.com/MeekPhills/citewire/pull/1" + verified_properties: + - "head/ref and mergeable draft state were freshly read on 2026-08-15" + - "zero runtime and development dependencies; Node 18+ ESM; providers disabled by default" + historical_validation: + - "66/66 tests, 5/5 release checks, 22 syntax checks, package and secret gates passed in historical evidence" + provenance: [S1, S2, S3] + trust: high + citewire_cloud: + claim_status: Verified + branch: agent/cloud-alpha-http + head: 69068275ca0e332e36304533aa0f6b5d2e291405 + implementation_base: ad7e58fb2ac3f6ebc4c7d0247c105955dd9696b0 + draft_pr: "https://github.com/MeekPhills/citewire-cloud/pull/1" + community_archive_pin: 10aee95ac95bb437b4607723cd20fa5c8f9d1879 + pin_locations: + - package.json + - package-lock.json + properties: + - "15/15 fresh committed test gate, syntax, direct HTTP, and concurrent account-isolation checks passed after the docs-only synchronization" + - "Node 18/22 CI runs 31893670759 and 31893673430 passed at 69068275ca0e332e36304533aa0f6b5d2e291405" + - "one-way Community import and fail-closed account-scoped service composition documented" + - "draft, unpublished, and undeployed" + provenance: [S1, S2, S4, S5] + trust: high + citewire_landing: + claim_status: Verified + branch: agent/citewire-landing-site + head: ff09b68ed811531eb0ca630b65daeaf06cc3304c + base: 10aee95ac95bb437b4607723cd20fa5c8f9d1879 + draft_pr: "https://github.com/MeekPhills/citewire/pull/2" + verified_properties: + - "20-file stacked landing and website-metadata diff" + - "70/70 committed tests, 5/5 release checks, package dry run, and diff/secret checks passed freshly on the exact head" + historical_validation: + - "Node 18/22 green runs 31849200115 and 31849291099; 31 syntax and routine browser checks recorded" + provenance: [S1, S2, S3] + trust: high + openly_useful_link: + claim_status: Historical + branch: agent/citewire-site-link + head: 28af5c7a5fdd0425ced2fe45f5c50e05946758de + base_main: cf137f9b77d68d16c41cd90f1af8d2df3b9972f4 + draft_pr: "https://github.com/Openly-Useful/openlyuseful.org/pull/8" + properties: + - "exact two-file diff: index.html and scripts/validate_site.py" + - "validation runs 31849408964 and 31849412743 and Vercel preview recorded green" + provenance: [S1, S2] + trust: high + karaya_link: + claim_status: Verified + branch: agent/citewire-site-link + head: 3a90e43d8797af9e7c0bc02d4c1ae6f51ebd19a6 + base_main: 9c1506320771faf177f3675ef5ea1c1eff36fe81 + draft_pr: "https://github.com/MeekPhills/karayagroup/pull/17" + verified_properties: + - "exact three-file diff: bridge document, existing About-page link target, and committed regression" + - "CI run 31849281233 and preview recorded green" + historical_validation: + - "16-page build, 409/409 tests, registry, audit, compliance, diff, and secret gates recorded" + provenance: [S1, S2, S3] + trust: high + karaya_production: + claim_status: Verified + main: 9c1506320771faf177f3675ef5ea1c1eff36fe81 + properties: + - "https://karaya.group, /industry-news, /industry-news/about, and /api/v1/news/topics returned 200 in routine smoke evidence" + - "topics API returned nine topics" + - "MCP initialize reported protocol 2025-06-18 and karaya-news-mcp 1.0.0" + - "live About page retains the working GitHub Citewire link until citewire.org is healthy" + provenance: [S1, S2] + trust: high +completed: + - id: REC-001 + claim_status: Verified + claim: "Community provider-compliance repair is present at 10aee95ac95bb437b4607723cd20fa5c8f9d1879 and remains a draft PR #1 candidate." + provenance: [S1, S2, S3] + trust: high + - id: REC-002 + claim_status: Verified + claim: "Cloud implementation base ad7e58fb2ac3f6ebc4c7d0247c105955dd9696b0 pins Community archive 10aee95ac95bb437b4607723cd20fa5c8f9d1879 in package.json and package-lock.json. Docs-only head 69068275ca0e332e36304533aa0f6b5d2e291405 reconciles all four active narrative references and preserves the future ^0.2.0 gate." + provenance: [S1, S2, S4, S5] + trust: high + - id: REC-003 + claim_status: Historical + claim: "The Community landing branch, Openly Useful link branch, and Karaya link branch were pushed as green, mergeable draft PRs without production deployment." + provenance: [S1, S2] + trust: high + - id: REC-004 + claim_status: Verified + claim: "Karaya production is live and healthy under its verified routine smoke contract; it has not been switched to citewire.org." + provenance: [S1, S2] + trust: high + - id: REC-005 + claim_status: Verified + claim: "Owner screenshot inventory under karayagroup-brand/site/handoff/redesign totals 49 files: 8 tracked and 41 untracked. The 41 untracked files are unstaged and must be preserved." + provenance: [S6] + trust: high + - id: REC-006 + claim_status: Historical + claim: "KAR-66 was created for the dedicated open-source program and linked to completed KAR-48 and KAR-36; the complete Karaya Launch Log received the decision entry." + provenance: [S1, S2] + trust: high +partial: + - id: REC-101 + claim_status: Verified + claim: "Citewire landing implementation is complete in draft PR #2, but the public domain is not ready for it." + blocking_condition: "citewire.org is parked over HTTP and its HTTPS handshake fails; no Citewire Vercel project was found." + provenance: [S1, S2] + trust: high + - id: REC-102 + claim_status: Historical + claim: "Openly Useful PR #8 and Karaya PR #17 are code-complete draft link changes, held until citewire.org resolves to verified HTTPS content." + blocking_condition: "Merging now would point a production-visible link to a broken destination." + provenance: [S1, S2] + trust: high + - id: REC-103 + claim_status: Historical + claim: "Community and Cloud candidate code is verified for owner review but immutable release setup and owner release actions remain incomplete." + blocking_condition: "release environment, private vulnerability reporting, npm trusted-publishing verification, final merge, tag, publication, registry, and catalog actions are separately gated." + provenance: [S1, S2] + trust: high + - id: REC-104 + claim_status: Inferred + claim: "The open-source program command is a governed design and execution framework, not a completed migration or deployed hosted runtime." + blocking_condition: "canonical organization/repository identity, legacy disposition, provider/model choice, cost cap, migration path, and publishing authority remain undecided." + provenance: [S1, S2] + trust: high +superseded: + - id: REC-201 + claim_status: Historical + claim: "Cloud's former Community archive pin 6c89b6ea4c8b080fe2ffa166c41eb3113059c894 was superseded by 10aee95ac95bb437b4607723cd20fa5c8f9d1879." + replacement: "ad7e58fb2ac3f6ebc4c7d0247c105955dd9696b0 package.json and package-lock.json, with narrative reconciliation at 69068275ca0e332e36304533aa0f6b5d2e291405" + provenance: [S1, S2, S4, S5] + trust: high + - id: REC-202 + claim_status: Historical + claim: "The initial Karaya base-repair sequencing is complete: PR #16 merged into agent/fix-fuzzy-candidate-test at b45af558ec0ebea3a2f9d692b2ce087e92a2379b, then PR #15 merged to main at f3610e4e3eddfaa1c89a398f369ac6c1386662ed; the later approved bridge reached main at 9c1506320771faf177f3675ef5ea1c1eff36fe81." + provenance: [S1, S2] + trust: high + - id: REC-203 + claim_status: Historical + claim: "The previous live About-page destination was GitHub Community, not citewire.org; it remains the correct live destination until the domain gate is satisfied." + provenance: [S1, S2] + trust: high +contradicted: + - id: REC-301 + claim_status: Contradicted + topic: "Karaya root deployment description" + lower_trust_claim: "Root AGENTS.md describes an undeployed one-page Astro site with no news application." + governing_resolution: "Repository-local Karaya CLAUDE.md and SESSION_HANDOFF.md, plus fresh production smoke evidence, establish a live Industry News system. Do not use the stale root description for execution decisions." + provenance: [S1, S2] + trust: high + - id: REC-302 + claim_status: Contradicted + topic: "Cloud dependency pin" + lower_trust_claim: "Earlier checkpoint sections name archive commit 6c89b6e as current." + governing_resolution: "Current package.json and package-lock.json verify the 10aee95 archive pin at Cloud head ad7e58f." + provenance: [S1, S2, S4, S5] + trust: high + - id: REC-303 + claim_status: Contradicted + topic: "Citewire public-site availability" + lower_trust_claim: "Local landing branch and passing preview/CI can be read as a public-site launch." + governing_resolution: "The local site artifact and drafts are not the live domain. citewire.org is parked over HTTP and HTTPS fails; treat public landing availability as not ready." + provenance: [S1, S2] + trust: high + - id: REC-304 + claim_status: Contradicted + topic: "Missing Claude-specific handoff" + lower_trust_claim: "A requested file named CITEWIRE_CLAUDE_CODE_HANDOFF.md was expected by a continuation instruction." + governing_resolution: "CITEWIRE_CODEX_HANDOFF.md exists; CITEWIRE_CLAUDE_CODE_HANDOFF.md is absent from the workspace. This recovery ledger and PROJECT_HANDOFF.md are the durable replacement, not a claim that the missing file was found." + provenance: [S1] + trust: high +unknowns: + - id: REC-401 + claim_status: Unknown + topic: "Canonical identity and migration" + detail: "No Openly-Useful/citewire repository is verified as created. The legacy repository disposition, package and registry identity, migration plan, and compatibility commitment have not been approved." + action_boundary: "Do not create or rename repositories, alter visibility, migrate code or issues, or publish packages without explicit owner authorization." + provenance: [S1, S2] + trust: high + - id: REC-402 + claim_status: Unknown + topic: "Hosted runtime and operations" + detail: "Cloud has no deployment. Participants, credentials and rotation, domain and Origin policy, persistence, retention, OAuth, billing, quotas, support, terms, privacy, provider/model selection, and cost cap are unresolved." + action_boundary: "No provider activation, paid service, production deployment, account creation, or credential delivery is authorized." + provenance: [S1, S2] + trust: high + - id: REC-403 + claim_status: Verified + topic: "Feed signal: 50 / 16-over-cap / one trailer" + detail: "A fresh live JSON Feed fetch returned 50 items. Mechanical inspection found 16 content_text values longer than the current 480-character provisional cap and one item whose content_text contains 'appeared first on POWER Magazine'. Current code contains the intended gate, so this proves stored-corpus policy drift and does not by itself prove the present ingest path bypasses policy." + action_boundary: "Inventory affected rows and production migration/runtime truth read-only before proposing any revision-aware remediation. Do not alter production data, thresholds, sources, or migrations without exact owner approval." + provenance: [S7, S9] + trust: high + - id: REC-404 + claim_status: Unknown + topic: "Fresh remote PR, CI, Vercel, GitHub, and Linear state" + detail: "Historical IDs are recorded above, but any mutation or merge decision needs a fresh read-only remote check at execution time." + action_boundary: "Do not infer a green check, mergeability, deployment, issue status, or repository availability from historical evidence alone." + provenance: [S1, S2] + trust: high +safety_state: + claim_status: Verified + no_secret_detected: true + no_irreversible_action_in_recovery: true + preserved_owner_assets: + total: 49 + tracked: 8 + untracked: 41 + rule: "Never edit, stage, delete, clean, or include the untracked owner screenshots in a broad commit." + prohibited_without_explicit_owner_approval: + - "repository creation, visibility, organization, or legacy-history changes" + - "merge, deploy, domain attachment, DNS, provider activation, migration, or outbound email" + - "tag, GitHub release, npm publication, MCP Registry or catalog submission" + - "paid-service, model, or provider decision" + - "visible Karaya copy change without read-aloud approval" + provenance: [S1, S2, S6] + trust: high diff --git a/.claude/orchestration/streams/WS-001.md b/.claude/orchestration/streams/WS-001.md new file mode 100644 index 0000000..3522138 --- /dev/null +++ b/.claude/orchestration/streams/WS-001.md @@ -0,0 +1,122 @@ +# WS-001 — Orchestration evidence and execution control + +## Objective + +Keep a single, evidence-backed execution record for the Citewire open-source +program. This stream coordinates work. It does not implement product behavior, +create accounts, or make public changes. + +## Status + +**Partial / safe to continue as documentation only.** Recovery artifacts are +being established on `agent/citewire-orchestration-handoff`; no execution +authority is created by them. + +## Provenance + +- `CITEWIRE_CODEX_HANDOFF.md` and `CITEWIRE_EXECUTION_CHECKPOINT.md` +- Current local Citewire worktree at + `ff09b68ed811531eb0ca630b65daeaf06cc3304c` +- `.claude/orchestration/recovery-ledger.yaml` + +Trust: high for local Git and current artifacts; high but historical for the +dated checkpoint and handoff. + +## Last-good state + +The program had no durable `.claude/orchestration/` package. Community, Cloud, +landing, Openly Useful, and Karaya work were separated into draft branches and +owner-gated follow-on actions. + +## Completed + +- Pickup evidence was consolidated without changing product code. +- The recovery ledger records exact SHAs, PRs, incomplete owner gates, and + protected owner assets. + +## Remaining + +- Keep recovery, work graph, execution state, verification evidence, handoff, + and stream briefs mutually consistent. +- Re-read remote state before any GitHub, Linear, or deployment mutation. +- Record outcomes only after the described checks have actually passed. + +## Contradictions and unknowns + +- Root Karaya deployment documentation is stale and cannot govern the live + Industry News program. +- `CITEWIRE_CLAUDE_CODE_HANDOFF.md` is missing; do not claim it was recovered. +- Remote PR, CI, Vercel, GitHub, and Linear states require fresh checks. + +## Dependencies + +None. This stream is the prerequisite control record for WS-002 through +WS-008. + +## Owned paths + +- `PROJECT_HANDOFF.md` +- `CLAUDE.md` managed orchestration block only +- `.claude/orchestration/**` + +No product, configuration, screenshot, or deployment path is owned here. + +## Binary definition of done + +- Every active stream has a concise, independently executable brief. +- Recovery facts distinguish Verified, Historical, Inferred, Unknown, and + Contradicted claims. +- Every planned mutation has a named owner, check, rollback, and approval + boundary. +- YAML parses and all intra-artifact stream IDs and paths resolve. + +## Artifact + +`PROJECT_HANDOFF.md`, `.claude/orchestration/recovery-ledger.yaml`, +`.claude/orchestration/work-graph.yaml`, +`.claude/orchestration/execution-state.yaml`, +`.claude/orchestration/verification-evidence.md`, and this stream directory. + +## Checks + +- **Baseline:** parse all orchestration YAML and inspect `git diff --check`. +- **Focused:** verify every cited SHA, PR, path, and owner gate against fresh + local or remote evidence before changing its claim status. +- **Integration:** independently review the handoff and work graph for missing + dependencies, duplicate owners, accidental production steps, and forbidden + screenshot paths. + +## Rollback + +Revert only the focused orchestration commit or restore the last verified +artifact version. Never use broad reset/clean operations and never touch owner +screenshots. + +## Mappings + +- Linear: `KAR-66` (open-source program); relates to completed `KAR-48` and + `KAR-36`. +- GitHub: coordination only; no PR is merged by this stream. + +## Claude tier + +Level 0 Fable master coordinator. Delegate bounded evidence or implementation +work only after this record identifies a safe owner and dependency order. + +## Reviewer and integrator + +- Independent reviewer: Terra for work-graph and contradiction review. +- Exact-reference reviewer: Luna. +- Integrator: Sol parent orchestrator. + +## First safe action + +Parse the orchestration YAML, run `git diff --check`, and reconcile only +evidence that can be inspected read-only. + +## Escalation + +Stop for Luis if a stream would create a repository, alter identity or legacy +history, merge, deploy, change DNS, activate a provider, migrate data, choose +a paid service, publish, tag, release, submit a registry/catalog, or change +visible Karaya copy. diff --git a/.claude/orchestration/streams/WS-002.md b/.claude/orchestration/streams/WS-002.md new file mode 100644 index 0000000..1c2a082 --- /dev/null +++ b/.claude/orchestration/streams/WS-002.md @@ -0,0 +1,117 @@ +# WS-002 — Canonical identity and authority decisions + +## Objective + +Resolve the owner-controlled identity model for an open-source Citewire while +preserving `MeekPhills/citewire` as the known legacy Community candidate until +an explicitly approved transition exists. + +## Status + +**Blocked on owner decisions.** Planning and evidence collection are allowed; +repository creation, renaming, transfer, visibility changes, package identity, +and legacy disposition are not authorized. + +## Provenance + +- `$launch-citewire-open-source` command described in the Citewire handoff +- Community candidate: `10aee95ac95bb437b4607723cd20fa5c8f9d1879`, draft PR #1 +- Landing candidate: `ff09b68ed811531eb0ca630b65daeaf06cc3304c`, draft PR #2 +- Historical check: `Openly-Useful/citewire` was proposed but not visible + +Trust: high for local commits and recorded owner gates; any current GitHub +organization availability is Unknown until freshly checked. + +## Last-good state + +`MeekPhills/citewire` is the public MIT Community candidate, remains a draft +release candidate, and is not yet the approved canonical `Openly-Useful` +repository. `citewire@0.2.0` is unpublished. + +## Completed + +- The open-source program command captures an owner-gated canonical-repo + proposal, full MCP direction, Karaya custom-consumer boundary, and policy + guardrails. +- KAR-66 was historically created to track the program. + +## Remaining + +- Luis decides canonical organization and repository slug. +- Luis decides whether and how the legacy `MeekPhills/citewire` history is + retained, forked, transferred, archived, or documented. +- Luis decides package, registry, and naming continuity before any immutable + release action. + +## Contradictions and unknowns + +- `Openly-Useful/citewire` being proposed does not establish that it exists, + can be created, or should be canonical. +- A local landing site at `ff09b68` does not establish public-domain readiness. +- Ownership, organization permissions, release reviewer configuration, and + npm trusted-publisher access are Unknown. + +## Dependencies + +- WS-001 orchestration evidence. +- Explicit Luis decisions for canonical identity and legacy disposition. + +## Owned paths + +Future owner-approved identity documents, repository metadata, and public +README links. Do not modify them until the owner decision is recorded. + +## Binary definition of done + +- The canonical organization/repository and legacy treatment are written in an + owner-approved decision record. +- Fresh GitHub evidence confirms the chosen target is accessible to the owner. +- Package, registry, documentation, and migration impacts are enumerated. +- No identity mutation happens before the decision record and explicit approval. + +## Artifact + +An owner-approved identity decision record linked from `PROJECT_HANDOFF.md` +and KAR-66, with fresh GitHub evidence. + +## Checks + +- **Baseline:** read-only `gh repo view` and local remote/branch inspection. +- **Focused:** verify organization authority, candidate repository name, + README/package links, and release-environment prerequisites. +- **Integration:** Terra confirms the identity choice does not imply unapproved + migration, publication, or a broken Karaya destination. + +## Rollback + +Before any mutation, the rollback is to make no identity change. After an +approved reversible metadata draft, revert only its focused commit. A created +or transferred repository is not assumed reversible and requires an owner plan. + +## Mappings + +- Linear: `KAR-67`, child of program `KAR-66`. +- GitHub: `MeekPhills/citewire` issue #3 plus draft PR #1 and draft PR #2; + proposed `Openly-Useful/citewire` is not a verified repository. + +## Claude tier + +Level 1 Fable nested planner for decision framing; Level 2 Opus only for an +owner-approved, scoped implementation. No agent has authority to decide it. + +## Reviewer and integrator + +- Independent reviewer: Terra architecture/authority review. +- Exact-reference reviewer: Luna. +- Integrator: Sol parent orchestrator. + +## First safe action + +Read the program command and collect a fresh, read-only organization/repository +availability check. Record the result as Verified or Unknown. + +## Escalation + +Escalate to Luis for any identity choice, repository creation or transfer, +legacy repository setting, package or registry identity, release environment, +or public-facing naming change. diff --git a/.claude/orchestration/streams/WS-003.md b/.claude/orchestration/streams/WS-003.md new file mode 100644 index 0000000..ce5e5e6 --- /dev/null +++ b/.claude/orchestration/streams/WS-003.md @@ -0,0 +1,133 @@ +# WS-003 — Legacy history and runtime migration plan + +## Objective + +Resolve a retain-in-place route or create and, only after separate exact owner +approval, execute a reversible history-preserving canonical repository +migration. Planning alone does not complete this stream or unblock immutable +release. + +## Status + +**Not started / blocked on WS-002 and owner approval.** No source migration, +repository transfer, database migration, provider activation, account setup, +or runtime deployment has occurred. + +## Provenance + +- Community at `10aee95ac95bb437b4607723cd20fa5c8f9d1879`, draft PR #1 +- Cloud at `ad7e58fb2ac3f6ebc4c7d0247c105955dd9696b0`, draft PR #1, importing + that exact Community archive +- Karaya production main `9c1506320771faf177f3675ef5ea1c1eff36fe81` +- `$launch-citewire-open-source` historical program command + +Trust: high for the local code boundaries; Unknown for every target runtime, +data, identity, and operational decision not yet approved. + +## Last-good state + +Community is a dependency-free, provider-disabled Node 18+ ESM package. Cloud +is an undeployed private-alpha boundary with account-isolation regressions. +Karaya is a live customized consumer and must not become a generic Citewire +remote by implication. + +## Completed + +- Code boundaries and one-way Community-to-Cloud import are documented. +- The program command identifies the need for a forkable full MCP, automated + editorial workflow, exceptions-only console, and cadence assessments. +- No production migration or runtime activation has been performed. + +## Remaining + +- Define approved source-history treatment and branch/release lineage. +- Define data, account, credential, provider, model, retention, and rollback + migration contracts. +- Specify how Karaya consumes adapters while preserving its editorial and + account isolation boundaries. +- Produce a migration rehearsal only after contracts and authority exist. +- If Luis selects retain-in-place, record and independently verify the canonical + refs and legacy disposition. If Luis selects a move, run a separately approved + Phase B and verify source/destination history through an isolated fresh clone. + +## Contradictions and unknowns + +- The requested direction toward automated reviews does not authorize automatic + publishing of unsupported, rights-unknown, or unreviewed content. +- Migration scope, data ownership, target repository, runtime provider, model, + costs, retention, and compatibility guarantees are Unknown. +- No current evidence establishes a generic hosted Citewire runtime. + +## Dependencies + +- WS-001 orchestration controls. +- WS-002 canonical identity decision. +- Owner approval of data, account, provider, model, cost, legal, privacy, and + operational contracts. + +## Owned paths + +Future migration design, compatibility matrix, and rehearsal evidence only. +Do not change Community, Cloud, Karaya, GitHub, database, or provider paths +under this stream without an approved child workstream. + +## Binary definition of done + +- A source, data, account, runtime, provider, and rollback inventory exists. +- Each proposed operation is classified reversible, irreversible, or manual. +- A no-write rehearsal proves ordering and identifies owner gates. +- The selected route itself is verified: either recorded retain-in-place state, + or a separately owner-approved Phase B with full-history/ref/clone evidence + and retained rollback. +- A plan without route verification is not complete and cannot unblock WS-008. + +## Artifact + +Versioned migration plan, compatibility matrix, rollback plan, and read-only +rehearsal record linked from KAR-66. + +## Checks + +- **Baseline:** inspect Git history, manifests, architecture documents, and + existing account-isolation regressions without mutation. +- **Focused:** validate each proposed import, adapter provenance, data mapping, + credential boundary, and rollback action against the approved contract. +- **Integration:** Terra verifies Karaya remains a customized consumer and that + migration cannot silently activate providers or publish editorial material. + +## Rollback + +Until an owner-approved migration begins, rollback is no action. Every future +data or identity step requires an explicit reversible procedure, backup proof, +and a stop condition before execution. + +## Mappings + +- Linear: `KAR-67`, child of program `KAR-66`. +- GitHub: `MeekPhills/citewire` issue #3, Community draft PR #1, and only a + later owner-approved target repository. Cloud PR #1 is a downstream consumer, + not the migration target. + +## Claude tier + +Level 1 Fable nested planner. Level 2 Opus may implement only a separately +approved, bounded rehearsal or migration task. Level 3 Sonnet validates +contracts and fixtures; it never applies migrations. + +## Reviewer and integrator + +- Independent reviewer: Terra migration and product-architecture review. +- Exact-reference reviewer: Luna. +- Integrator: Sol parent orchestrator. + +## First safe action + +Write a read-only inventory of repositories, interfaces, data stores, owner +gates, and rollback feasibility. Mark every unresolved operational decision +Unknown rather than inferring it. + +## Escalation + +Escalate to Luis for any source-history change, repository migration, database +migration, provider or model selection, credential/data access, paid service, +runtime deployment, customer/account action, or compatibility commitment. diff --git a/.claude/orchestration/streams/WS-004.md b/.claude/orchestration/streams/WS-004.md new file mode 100644 index 0000000..b9fd8df --- /dev/null +++ b/.claude/orchestration/streams/WS-004.md @@ -0,0 +1,130 @@ +# WS-004 — Community candidate and provider-compliance release gate + +## Objective + +Preserve and independently re-verify the Community candidate at +`10aee95ac95bb437b4607723cd20fa5c8f9d1879` while keeping the immutable release +path owner-gated. + +## Status + +**Code complete / immutable release blocked.** `MeekPhills/citewire` draft PR +#1 remains the release candidate. It is not merged, tagged, published, or +submitted to any registry/catalog. + +## Provenance + +- Community branch `agent/citewire-product-launch` +- SHA `10aee95ac95bb437b4607723cd20fa5c8f9d1879` +- Draft PR #1: `https://github.com/MeekPhills/citewire/pull/1` +- Historical checks: 66/66 tests, 5/5 release checks, 22 syntax checks, + manifest/package/diff/secret gates, Node 18 and Node 22 CI green + +Trust: high historical evidence, requiring a fresh check immediately before a +merge or release action. + +## Last-good state + +The candidate is MIT, dependency-free, Node 18+ ESM, provider-disabled by +default, and has documented attribution, pacing, bounded excerpts, and +operator responsibilities. npm contains `citewire@0.1.0`; `0.2.0` is not +published. + +## Completed + +- Provider-condition and release-hardening work is in the current candidate. +- GDELT/Semantic Scholar attribution, arXiv/dblp pacing, Crossref contact + configuration, Europe PMC acknowledgment, canonical links, and current + OpenAlex documentation are recorded as repaired. +- The official MCP publisher validation historically passed. + +## Remaining + +- Fresh read-only PR, CI, provider-condition, and release-workflow review. +- Owner setup for protected `release` environment, private vulnerability + reporting, npm trusted publishing, and final review. +- Separate owner approval for merge, preflight, tag, npm publication, GitHub + release, MCP Registry publication, and catalog submission. + +## Contradictions and unknowns + +- Old references to Community pin `6c89b6e` are superseded by `10aee95`. +- A green draft PR does not create release authority. +- Actual Crossref contact, shared scaling limiter, current upstream terms, and + all public registry visibility are operationally Unknown until checked. + +## Dependencies + +- WS-001 evidence control. +- WS-002 identity decision for any canonical-repo change. +- WS-008 is the onward immutable-release gate and depends on this completed + candidate verification; it is not a prerequisite for WS-004. + +## Owned paths + +`src/`, `test/`, `docs/providers.md`, `docs/releasing.md`, +`docs/distribution.md`, package metadata, and release workflow only when a +separately scoped Community change is approved. + +## Binary definition of done + +- Fresh baseline and focused Community checks pass on the exact SHA. +- The candidate remains dependency-free, ESM, provider-disabled by default, + and attribution/rights/pacing checks remain covered by committed regressions. +- Required release setup has fresh evidence and Luis separately authorizes each + immutable step. +- Public records are independently visible before `docs/distribution.md` stops + saying `PENDING`. + +## Artifact + +Fresh Community verification evidence and, only after approval, a focused PR or +release-preflight record tied to the exact commit. + +## Checks + +- **Baseline:** isolated-cache clean install; `npm test`; `npm run + release:check`; documented syntax, package, diff, and secret checks. +- **Focused:** reuse committed provider, HTTP, RPC, pacing, platform, and + release-metadata regressions; validate MCP manifest and release workflow + pinning without ad hoc artifacts. +- **Integration:** Terra independently reviews provider compliance, release + preconditions, rights/attribution posture, and the downstream Cloud archive + pin; Sol reconciles the result with WS-005 and WS-008. + +## Rollback + +Before a release, remain on the verified candidate and make no immutable +change. For an approved focused code fix, revert only the focused commit after +tests. Never delete tags, unpublish packages, or alter registry history as a +routine rollback. + +## Mappings + +- GitHub: `MeekPhills/citewire` draft PR #1 and identity issue #3. +- Linear: `KAR-67`; completed `KAR-48` remains historical provenance. + +## Claude tier + +Level 2 Opus implementation owner for a scoped Community fix, nested under a +Level 1 Fable plan. Level 3 Sonnet runs focused regressions and documentation +checks. Level 0 Fable retains release gates. + +## Reviewer and integrator + +- Independent reviewer: Terra release/rights review. +- Exact-reference reviewer: Luna. +- Integrator: Sol parent orchestrator. + +## First safe action + +Run a fresh read-only review of PR #1 and its exact SHA, then reproduce the +committed baseline checks in an isolated cache. Stop on any failed check or +unexpected diff. + +## Escalation + +Escalate to Luis before merge, protected-environment configuration, private +vulnerability reporting configuration, npm trusted-publisher configuration, +tag, release, publication, MCP Registry/catalog submission, provider +activation, or paid-service decision. diff --git a/.claude/orchestration/streams/WS-005.md b/.claude/orchestration/streams/WS-005.md new file mode 100644 index 0000000..ce18d7f --- /dev/null +++ b/.claude/orchestration/streams/WS-005.md @@ -0,0 +1,133 @@ +# WS-005 — Citewire landing and HTTPS destination gate + +## Objective + +Bring the already-tested Citewire landing artifact to a verified HTTPS +destination only after Luis approves the exact Vercel project, domain, and DNS +operations. Keep all public-link consumers on safe destinations until then. + +## Status + +**Implementation complete / public deployment blocked.** The local landing is +draft PR #2. The live `citewire.org` destination is not usable for the new +site. + +## Provenance + +- Branch `agent/citewire-landing-site` +- SHA `ff09b68ed811531eb0ca630b65daeaf06cc3304c`, based on Community + `10aee95ac95bb437b4607723cd20fa5c8f9d1879` +- Draft PR #2: `https://github.com/MeekPhills/citewire/pull/2` +- Historical Node 18/22 runs: `31849200115`, `31849291099` +- Live 2026-08-14/15 evidence: `citewire.org` A records + `207.207.210.107` and `207.207.210.229`; HTTP parked/default host; HTTPS + handshake failure; LGAM Vercel team has no Citewire project + +Trust: high for local branch and recorded live observation; repeat live checks +before any public mutation. + +## Last-good state + +The dependency-free static `site/` implementation has canonical/social +metadata, self-hosted OFL fonts, an Openly Useful-inspired visual system, +locked-down Vercel configuration, and committed regressions. It is not the live +domain. Karaya currently links to working GitHub Community instead. + +## Completed + +- Exact 20-file landing and website-metadata PR is drafted and clean. +- Historical isolated-cache, Node 18/22, release/syntax, secret/diff, nine-path + routine HTTP smoke, and browser-width checks passed. +- npm dry run excludes `site/`; Community package surface remains separate. + +## Remaining + +- Freshly verify PR #2 and its stacked base. +- Obtain explicit approval for Vercel project creation or selection, domain + attachment, DNS records, and production deployment. +- Deploy only after approval, then independently verify `https://citewire.org` + delivers the intended landing, TLS is valid, canonical/assets work, and no + old parked content remains. +- Only then unblock WS-006 and WS-007 link merges. + +## Contradictions and unknowns + +- Passing local/preview checks are not proof of live-domain readiness. +- The known parked HTTP response and failed HTTPS handshake contradict any + claim that citewire.org already hosts the landing. +- Hosting project ownership, DNS authority, current registrar configuration, + desired domain topology, and production deployment authority are Unknown. + +## Dependencies + +- WS-001 evidence control. +- WS-004 Community candidate and WS-002 identity decisions for final public + metadata direction. +- Explicit Luis approval for all provider, domain, and DNS mutations. + +## Owned paths + +`site/**`, website/package metadata, tests covering the site, and a future +approved Vercel configuration. DNS and provider settings are not owned until +the owner approves them. + +## Binary definition of done + +- PR #2 remains a focused 20-file landing/metadata diff on its verified base. +- Fresh local baseline, focused site regressions, and routine HTTP smoke pass. +- Luis authorizes project/domain/DNS/deployment in writing. +- Independent live HTTPS checks prove correct content, valid TLS, canonical +URL, robots/sitemap/assets, and no parked host; then WS-006/WS-007 may proceed. + +## Artifact + +Focused landing PR evidence, owner-approved domain/deployment runbook, and +post-deployment live verification record. No provider changes before approval. + +## Checks + +- **Baseline:** isolated-cache install; Community `npm test`; `npm run + release:check`; site syntax/diff/secret checks; npm dry-run exclusion. +- **Focused:** reuse `test/site.test.mjs` and the committed metadata, link, + accessibility/default, and hosting-policy regressions; run the routine local + HTTP and browser-width smoke suite. +- **Integration:** independent Terra review of HTTPS, public claims, and + cross-site link safety; Luna verifies exact URLs and delivery headers; Sol + confirms WS-006/WS-007 stay blocked until proof exists. + +## Rollback + +Before deployment, rollback is no provider or DNS change. After an approved +deployment, preserve the prior DNS/hosting configuration and use an +owner-approved reversible route change. Do not delete records, projects, or +release history as an automatic rollback. + +## Mappings + +- GitHub: `MeekPhills/citewire` draft PR #2 and identity issue #3, stacked on + draft PR #1. +- Linear: `KAR-67`. +- Downstream dependencies: Openly Useful PR #8 and Karaya PR #17. + +## Claude tier + +Level 1 Fable plans public deployment gates. Level 2 Opus owns a scoped, +approved landing/hosting change. Level 3 Sonnet runs static regressions and +routine smoke checks. Level 0 Fable retains public-mutation authorization. + +## Reviewer and integrator + +- Independent reviewer: Terra for design, public-claim, and deployment review. +- Exact-reference reviewer: Luna for DNS/URL/header evidence. +- Integrator: Sol parent orchestrator. + +## First safe action + +Repeat read-only HTTP, HTTPS/TLS, DNS, Vercel-project, and PR checks. Record +the exact result before asking Luis for the separate provider/domain approval. + +## Escalation + +Escalate to Luis before Vercel project creation, provider activation, domain +attachment, DNS change, production deployment, merge, publication, or any +public claim that citewire.org is live. diff --git a/.claude/orchestration/streams/WS-006.md b/.claude/orchestration/streams/WS-006.md new file mode 100644 index 0000000..7ccc170 --- /dev/null +++ b/.claude/orchestration/streams/WS-006.md @@ -0,0 +1,122 @@ +# WS-006 — Openly Useful project-card link + +## Objective + +Merge the focused Openly Useful project-card link to the Citewire canonical +website only after that destination is independently verified live over HTTPS. + +## Status + +**Code complete / held at external destination gate.** The draft is safe to +review but unsafe to merge while citewire.org serves parked HTTP content and +fails HTTPS. + +## Provenance + +- `Openly-Useful/openlyuseful.org` branch `agent/citewire-site-link` +- SHA `28af5c7a5fdd0425ced2fe45f5c50e05946758de` +- Base main `cf137f9b77d68d16c41cd90f1af8d2df3b9972f4` +- Draft PR #8: `https://github.com/Openly-Useful/openlyuseful.org/pull/8` +- Historical successful validation runs `31849408964` and `31849412743`, plus + a passing Vercel preview + +Trust: high historical evidence; fresh remote checks are required before merge. + +## Last-good state + +The PR is a two-file focused change, `index.html` and +`scripts/validate_site.py`, and preserves the intervening approved media-kit +work while adding Citewire assertions. No public link has been switched by this +stream. + +## Completed + +- The card has an accurate Citewire MCP description and targets + `https://citewire.org` in the draft. +- The validator checks the new link and social-card relationship. +- Green CI/preview evidence was recorded without production deployment. + +## Remaining + +- Wait for WS-005 to prove a correct public HTTPS destination. +- Freshly verify PR #8 diff, base, mergeability, CI, and preview. +- Review the visible card copy under the current Openly Useful design system. +- Merge only after both destination proof and the applicable owner approval. + +## Contradictions and unknowns + +- A green preview is not a green external destination. +- The draft's intended citewire.org URL is correct only after WS-005's live + HTTPS evidence; otherwise the existing production state is safer. +- Current Openly Useful repository permissions, main head, and PR checks are + Unknown until read again. + +## Dependencies + +- WS-005 live HTTPS destination gate. +- WS-001 orchestration control. +- Fresh remote PR/CI evidence and applicable owner approval. + +## Owned paths + +- `openlyuseful.org/index.html` +- `openlyuseful.org/scripts/validate_site.py` + +No Citewire, Karaya, DNS, provider, or deployment configuration is owned here. + +## Binary definition of done + +- citewire.org independently serves the intended HTTPS landing. +- PR #8 remains exactly the expected two-file change on a freshly verified + current main. +- Openly Useful validator, diff check, CI, and deployment preview pass. +- Merge evidence and post-merge public link verification are recorded. + +## Artifact + +Fresh PR #8 review, validator output, and post-merge URL verification evidence +linked from KAR-66. + +## Checks + +- **Baseline:** clean worktree, main/base ancestry, validator, and diff check. +- **Focused:** committed `scripts/validate_site.py` assertions for the Citewire + card, link, and retained social-card validation. +- **Integration:** Terra independently confirms the card claim and destination + fit the public-site state; Luna verifies exact target URLs; Sol requires + WS-005 evidence before authorizing merge sequencing. + +## Rollback + +Before merge, close or retain the draft without changing production. After an +approved merge, restore the prior card target in a focused, reviewed revert if +the destination later fails; do not use broad repository reset operations. + +## Mappings + +- GitHub: `Openly-Useful/openlyuseful.org` draft PR #8 and cross-repository + identity issue `MeekPhills/citewire#3`. +- Linear: `KAR-67`. +- Depends on GitHub `MeekPhills/citewire` draft PR #2 / WS-005. + +## Claude tier + +Level 3 Sonnet owns the bounded link/diff correction and committed validator +after a Level 1 Fable plan. A separate Opus session reviews public destination +and copy safety. Level 0 controls merge sequence and owner gates. + +## Reviewer and integrator + +- Independent reviewer: Terra for public copy/destination safety. +- Exact-reference reviewer: Luna for changed paths and URL assertions. +- Integrator: Sol parent orchestrator. + +## First safe action + +Read the current PR #8 state and run its committed validator in a clean +worktree. Do not update or merge it until WS-005 supplies fresh HTTPS proof. + +## Escalation + +Escalate to Luis before a public merge, deployment, DNS/domain mutation, any +visible copy rewrite, or redefinition of the canonical Citewire destination. diff --git a/.claude/orchestration/streams/WS-007.md b/.claude/orchestration/streams/WS-007.md new file mode 100644 index 0000000..3099501 --- /dev/null +++ b/.claude/orchestration/streams/WS-007.md @@ -0,0 +1,154 @@ +# WS-007 — Karaya Industry News Citewire destination link + +## Objective + +Safely update Karaya's existing Citewire Community link to the canonical +Citewire website only after that website is a verified HTTPS destination, +without altering approved visible copy, editorial behavior, account boundaries, +or protected owner assets. + +## Status + +**Code complete / held at live-link and owner gates.** Draft PR #17 must remain +unmerged while citewire.org is parked over HTTP and fails HTTPS. Karaya +production remains healthy with its current GitHub Community link. + +## Provenance + +- Karaya worktree `karayagroup-citewire-site-link` +- Branch `agent/citewire-site-link` +- SHA `3a90e43d8797af9e7c0bc02d4c1ae6f51ebd19a6` +- Base production main `9c1506320771faf177f3675ef5ea1c1eff36fe81` +- Draft PR #17: `https://github.com/MeekPhills/karayagroup/pull/17` +- Historical green CI `31849281233`, green preview, Node 22 16-page build, + 409/409 tests, registry/audit/compliance/diff/secret gates +- Owner screenshot inventory: 49 total, 8 tracked, 41 untracked and unstaged + +Trust: high for local commit and protected screenshot count; green remote +evidence is historical and must be refreshed before a merge. + +## Last-good state + +Karaya production at `9c1506320771faf177f3675ef5ea1c1eff36fe81` has passed +routine HTTP smoke: `/`, `/industry-news`, `/industry-news/about`, and +`/api/v1/news/topics` return 200; nine topics are returned; MCP initialize +reports protocol `2025-06-18` and `karaya-news-mcp` version `1.0.0`. The live +About page uses the working GitHub Community link. + +## Completed + +- PR #17 contains exactly the bridge document, About-page link target, and + committed regression. Approved paragraph text is unchanged. +- Full committed Karaya tests and ordinary routine smoke terminology were used; + no Cloud account-isolation surface changed. +- The 49 owner screenshots remain preserved: 41 are untracked and must not be + staged, edited, deleted, cleaned, or included by a broad commit. + +## Remaining + +- Wait for WS-005 independent proof that citewire.org is a correct HTTPS + landing. +- Freshly verify PR #17 base, exact diff, CI, preview, current production + health, and no screenshot change. +- Obtain Luis's approval for any visible copy change; current intended change is + link destination only and should not rewrite approved copy. +- Merge only after the destination gate and owner approval, then repeat the + documented Karaya production smoke and exact-link assertions. + +## Contradictions and unknowns + +- The stale root AGENTS.md does not describe the live Industry News system; + repository-local Karaya authority and fresh production evidence govern. +- A passing draft preview conflicts with a broken public citewire.org target; + live target safety wins. +- Current Karaya main, PR state, Vercel state, and owner approval status are + Unknown until freshly read. +- The historical feed signal `50 / 16-over-cap / one trailer` is not a basis + for changing this link-only PR; it belongs to separately authorized ingestion + verification. + +## Dependencies + +- WS-005 live HTTPS landing verification. +- WS-001 orchestration control. +- Fresh Karaya PR/CI/production verification and Luis approval gate. + +## Owned paths + +- `karayagroup-citewire-site-link/docs/citewire-product-bridge.md` +- `karayagroup-citewire-site-link/site/src/pages/industry-news/about.astro` +- `karayagroup-citewire-site-link/site/test/news-compliance.test.mjs` + +Explicitly excluded: `karayagroup-brand/site/handoff/redesign/**` owner +screenshots, production configuration, source activation, migrations, and +Cloud account-isolation code. + +## Binary definition of done + +- citewire.org independently provides the intended verified HTTPS landing. +- PR #17 remains exactly the intended three-file change on fresh main. +- Build, 409/409 committed tests, registry, audit, compliance, diff, secret, + routine HTTP smoke, and exact-link assertions pass again. +- Luis approves any visible-text change; if there is none, that fact is + recorded. Owner screenshot status is still exactly 49 total / 8 tracked / 41 + untracked after the work. +- Post-merge production returns healthy routine smoke and the exact citewire.org + destination is valid. + +## Artifact + +Fresh PR #17 review, screenshot-status audit, production smoke output, and +exact-link verification evidence linked from KAR-66 and the Launch Log. + +## Checks + +- **Baseline:** clean worktree, protected asset count, `git diff --check`, + dependency/audit/compliance gates, and fresh routine production HTTP smoke. +- **Focused:** reuse `site/test/news-compliance.test.mjs` plus the committed + bridge-link regression; no ad hoc test artifact; assert the approved + paragraph remains unchanged. +- **Integration:** Terra reviews Karaya brand/editorial boundary and production + safety; Luna verifies exact changed paths, status codes, topic count, MCP + protocol/version, and owner screenshot counts; Sol reconciles WS-005 proof. + +## Rollback + +Before merge, leave the live GitHub Community link untouched. After a focused, +approved merge, restore the prior link target with a focused revert if public +destination verification regresses. Never use broad reset/clean and never +touch the owner screenshots. + +## Mappings + +- GitHub: `MeekPhills/karayagroup` draft PR #17. +- Historical foundation: PR #16 to `b45af558ec0ebea3a2f9d692b2ce087e92a2379b`, + PR #15 to `f3610e4e3eddfaa1c89a398f369ac6c1386662ed`, and approved bridge + main `9c1506320771faf177f3675ef5ea1c1eff36fe81`. +- Linear: `KAR-67`; historical related work `KAR-48` and `KAR-36`. +- GitHub dependency issue: `MeekPhills/citewire#3`. + +## Claude tier + +Level 3 Sonnet owns the bounded link-only adjustment and committed +build/test/link checks under Level 1 Fable planning. A separate Opus session +reviews Karaya copy/compliance and production safety. Level 0 retains copy, +merge, and production gates. + +## Reviewer and integrator + +- Independent reviewer: Terra for editorial/product and production review. +- Exact-reference reviewer: Luna for link target, paths, tests, screenshot + inventory, and live endpoint evidence. +- Integrator: Sol parent orchestrator. + +## First safe action + +Recheck the citewire.org live destination, PR #17 exact diff, production smoke, +and screenshot count read-only. Stop if any changed screenshot, failed test, +unexpected diff, or broken endpoint is observed. + +## Escalation + +Escalate to Luis before merge, production deployment, any visible-copy rewrite, +source/provider activation, database migration, provider/account setting, paid +service, or any action involving the protected owner screenshots. diff --git a/.claude/orchestration/streams/WS-008.md b/.claude/orchestration/streams/WS-008.md new file mode 100644 index 0000000..62ef16b --- /dev/null +++ b/.claude/orchestration/streams/WS-008.md @@ -0,0 +1,140 @@ +# WS-008 — Immutable Community release and public registry gate + +## Objective + +Run the immutable-release sequence for a final approved Community candidate +only after all technical, identity, rights, and owner gates are satisfied. + +## Status + +**Not started / manual owner gate.** No release environment, tag, GitHub +release, npm `citewire@0.2.0`, MCP Registry entry, or catalog submission is +verified as complete. + +## Provenance + +- Community candidate `10aee95ac95bb437b4607723cd20fa5c8f9d1879`, draft PR #1 +- `docs/releasing.md` and `docs/distribution.md` +- Historical release review in `CITEWIRE_CODEX_HANDOFF.md` and + `CITEWIRE_EXECUTION_CHECKPOINT.md` + +Trust: high for the unperformed release status and documented gates; current +organization/nmp/registry configuration is Unknown until freshly inspected. + +## Last-good state + +The package is not published beyond npm `citewire@0.1.0`. Community remains a +draft, zero-dependency, provider-disabled candidate. Cloud uses the immutable +Community archive pin `10aee95` but remains draft and undeployed. + +## Completed + +- Release workflow protection and preflight requirements are documented. +- Historical Community release checks, provider condition repairs, secret scan, + MCP manifest validation, and draft CI gates passed. +- No irreversible release action was taken during recovery. + +## Remaining + +- Fresh final code/release review and exact main-ancestor confirmation. +- Owner configures or approves protected GitHub `release` environment with Luis + as required reviewer and `v*` tag restriction. +- Owner verifies private vulnerability reporting and npm trusted publishing for + the exact repository, workflow, and environment. +- Owner authorizes merge, no-publication release preflight, then each tag, + publication, GitHub release, registry, and catalog action separately. +- Independently verify every public record before updating distribution status. + +## Contradictions and unknowns + +- Draft CI success and a passing no-publication preflight do not authorize a + tag or publication. +- `citewire@0.2.0` availability, release environment, private vulnerability + reporting, npm publisher trust, Registry record, and catalog state are + Unknown until fresh provider-facing read checks. +- WS-002 may change the canonical identity and must resolve before a permanent + release identity is selected. + +## Dependencies + +- WS-001 orchestration control. +- WS-002 owner-approved canonical identity. +- WS-004 final Community verification. +- Explicit Luis approval for every irreversible operation. + +## Owned paths + +Community release workflow, package/version metadata, release documentation, +and distribution records only after a separately approved scoped release task. +No Cloud/Karaya/runtime/provider/DNS path is owned here. + +## Binary definition of done + +- Fresh tests and release checks pass for the exact approved main commit. +- Protected environment and npm trusted-publishing configuration are verified + by the owner and recorded without exposing credentials. +- A manual no-publication preflight succeeds with both publication toggles + false. +- Luis separately authorizes tag, npm publication, GitHub release, MCP Registry + publication, and catalog submission; each completed record is independently + visible and accurate. +- `docs/distribution.md` remains `PENDING` until the corresponding public + record is observed. + +## Artifact + +Exact release decision record, preflight logs without secrets, immutable +commit/tag mapping, and independent public-record verification evidence. + +## Checks + +- **Baseline:** isolated-cache install; `npm test`; `npm run release:check`; + package/diff/secret checks; current main ancestry and clean-worktree check. +- **Focused:** reuse committed provider, release-metadata, workflow, manifest, + and packaging regressions; inspect OIDC/workflow/environment configuration + without reading credentials. +- **Integration:** Terra independently reviews rights, release sequencing, + public claims, and ownership gates; Luna reconciles exact version/tag/URL + identifiers; Sol confirms no downstream Cloud/website assertion outruns the + immutable public record. + +## Rollback + +Before publication, do not create an immutable record. After any owner-approved +immutable action, use the documented incident/release response rather than +destructive tag deletion or unpublish. Correct public records with a new, +explicitly authorized release if required. + +## Mappings + +- GitHub: `MeekPhills/citewire` draft PR #1, identity issue #3, and future + separately approved release. +- npm: `citewire@0.1.0` is historical current public baseline; `0.2.0` is not + yet verified published. +- Registry/catalog: no verified public entry. +- Linear: `KAR-67`; historical release preparation `KAR-48`. + +## Claude tier + +Level 0 Fable owns immutable-gate orchestration. Level 1 Fable plans only an +approved release sequence. Level 2 Opus may run a scoped preflight. Level 3 +Sonnet validates committed tests and metadata. No tier may publish without Luis. + +## Reviewer and integrator + +- Independent reviewer: Terra release and rights reviewer. +- Exact-reference reviewer: Luna for package/tag/registry identifiers. +- Integrator: Sol parent orchestrator. + +## First safe action + +Freshly inspect the current PR #1, release environment, npm trusted-publisher, +package version, GitHub tags/releases, and registry/catalog visibility read +only. Record Unknown rather than attempting configuration. + +## Escalation + +Escalate to Luis before protected-environment creation/configuration, privacy +or vulnerability-reporting setting change, npm trust configuration, merge, +tag, package publication, GitHub release, Registry/catalog submission, provider +activation, paid-service decision, or any irreversible public record. diff --git a/.claude/orchestration/streams/WS-009.md b/.claude/orchestration/streams/WS-009.md new file mode 100644 index 0000000..f4d5616 --- /dev/null +++ b/.claude/orchestration/streams/WS-009.md @@ -0,0 +1,112 @@ +# WS-009 — Citewire Cloud documentation alignment + +## objective + +Align Cloud documentation with the verified immutable Community archive pin and the private-alpha boundary. Keep Cloud undeployed and owner-gated. Do not turn documentation alignment into a deployment, commercial, or npm decision. + +## status + +VERIFIED COMPLETE — docs-only repair is pushed; Cloud remains draft and undeployed. + +## provenance + +- Repository: /Users/luismorrobel/karayagroup/citewire-cloud. +- Runtime baseline: ad7e58fb2ac3f6ebc4c7d0247c105955dd9696b0 on agent/cloud-alpha-http. +- Current docs-aligned head: 69068275ca0e332e36304533aa0f6b5d2e291405. +- package.json and package-lock.json pin Community to 10aee95ac95bb437b4607723cd20fa5c8f9d1879. +- The docs-only commit changes exactly README.md, docs/ALPHA-DEPLOYMENT-CHECKLIST.md, docs/ARCHITECTURE.md, and docs/OWNER-DECISIONS.md. Old 6c89b6e references are gone from those owned docs. + +## last-good + +Cloud commit ad7e58f remains the runtime last-good. Commit 6906827 is its four-file prose successor. Isolated install, syntax/check, diff checks, and 15/15 committed tests passed after the docs sync. Draft PR #1 remains green and undeployed. + +## completed + +- Replaced stale Cloud documentation pin references with 10aee95a. +- Preserved the temporary-pin explanation and later npm ^0.2.0 gate. +- Preserved private-alpha, no-availability, no-participant, and no-cost claims. No runtime or owner-screenshot file changed. + +## remaining + +- Keep PR #1 draft and undeployed. +- Treat npm ^0.2.0 as a separately reviewed transition only after verified publication. +- Reconcile this evidence into the parent handoff and Launch Log; no further Cloud implementation is implied. + +## unknowns + +Participant approval, credential lifecycle, exact production Origin policy, persistence, OAuth, billing, quotas, support, legal terms, privacy, and deployment ownership remain unresolved. No Cloud deployment exists. + +## dependencies + +- Community identity/release decision: WS-002 through WS-008, KAR-67, and MeekPhills/citewire issue 3. +- This stream records the completed package/lockfile archive-pin verification; + WS-011 consumes that baseline for the separate owner-gated alpha path. +- WS-010 is the later post-publication npm-range migration and is not a + prerequisite for archive-pinned readiness. + +## owned paths + +- /Users/luismorrobel/karayagroup/citewire-cloud/README.md +- /Users/luismorrobel/karayagroup/citewire-cloud/docs/ALPHA-DEPLOYMENT-CHECKLIST.md +- /Users/luismorrobel/karayagroup/citewire-cloud/docs/ARCHITECTURE.md +- /Users/luismorrobel/karayagroup/citewire-cloud/docs/OWNER-DECISIONS.md + +## binary DoD + +- [x] No stale 6c89b6e Cloud pin remains in owned docs. +- [x] Each owned doc names 10aee95a as the temporary archive pin and preserves the post-publication npm transition gate. +- [x] Docs state that Cloud is undeployed and do not claim availability, participants, pricing, support, or provider activation. +- [x] Isolated install, syntax/check, git diff --check, 15/15 tests, direct HTTP smoke, and concurrent account-isolation tests pass. +- [x] One focused docs commit; no Community runtime, DNS, Vercel, registry, paid-service, secret, or owner-screenshot change. + +## artifact + +Docs-only commit 69068275ca0e332e36304533aa0f6b5d2e291405 and its verification report. No new test artifact is needed. + +## baseline + +Runtime ad7e58fb2ac3f6ebc4c7d0247c105955dd9696b0; current docs head 69068275ca0e332e36304533aa0f6b5d2e291405. + +## focused checks + +Run rg for 6c89b6e, 10aee95a, deployed, available, published, billing, and OAuth in README.md and docs. Run isolated-cache npm ci, npm test, npm run check, and git diff --check. Use only committed Cloud HTTP and account-isolation regressions. Do not add ad hoc fixtures or scripts. + +## integration checks + +- Manifest and lockfile resolve to the same Community SHA. +- Cloud remains a one-way Community import with no Karaya policy or credential. +- PR #1 remains draft and GitHub reports no deployment. + +## rollback + +If prose exceeds the four owned docs or any check fails, stop and restore only the focused docs commit after review. Do not revert the runtime pin, rewrite Community history, or alter remote infrastructure. + +## GitHub mapping + +- Draft PR #1: https://github.com/MeekPhills/citewire-cloud/pull/1. +- Docs head: 69068275ca0e332e36304533aa0f6b5d2e291405. + +## Linear mapping + +- Parent: KAR-66. +- Identity/release dependency: KAR-67. + +## Claude tier + +Level 3 Sonnet for bounded documentation maintenance. Use Level 2 Opus if wording changes product, legal, commercial, or deployment claims. + +## reviewer + +Luna exact-reference reviewer; Terra boundary reviewer for ambiguous claims. + +## integrator + +Level 0 Sol/Fable master reconciles the cross-repository state. + +## first action + +Read the four owned docs and record the current pin grep before any further change. + +## escalation + +Stop on an unexpected file, owner-screenshot change, secret, provider/model or paid-service choice, participant action, DNS/Vercel/deployment action, merge, or publication request. diff --git a/.claude/orchestration/streams/WS-010.md b/.claude/orchestration/streams/WS-010.md new file mode 100644 index 0000000..ff793c6 --- /dev/null +++ b/.claude/orchestration/streams/WS-010.md @@ -0,0 +1,90 @@ +# WS-010 — Post-publication Cloud npm-range migration + +## objective + +Replace Cloud's temporary immutable Community archive pin with the verified +published npm range only after WS-008 completes and public provenance is +independently verified. + +## status + +BLOCKED — `citewire@0.2.0` is not published and no dependency change is +authorized. + +## provenance + +- Cloud head `69068275ca0e332e36304533aa0f6b5d2e291405` retains the exact + `10aee95ac95bb437b4607723cd20fa5c8f9d1879` archive pin. +- The archive-pinned clean install, 15/15 committed tests, direct HTTP smoke, + concurrent account-isolation tests, syntax/diff checks, and Node 18/22 CI are + verified predecessor evidence recorded by WS-009. +- The documented future target is `^0.2.0`, but no npm artifact exists yet. + +## remaining + +- Complete WS-008 under separate owner approvals. +- Independently verify the published package's version, `mcpName`, integrity, + provenance, and canonical repository identity. +- Change only `package.json` and `package-lock.json`, then reproduce the full + committed Cloud verification suite. Keep the PR draft and undeployed. + +## dependencies + +- WS-008 immutable Community release and public provenance verification. +- WS-009 provides the completed archive-pin baseline; WS-011 does not depend on + this later migration. + +## owned paths + +- `/Users/luismorrobel/karayagroup/citewire-cloud/package.json` +- `/Users/luismorrobel/karayagroup/citewire-cloud/package-lock.json` + +## binary DoD + +- [ ] npm independently reports the exact owner-approved Community artifact. +- [ ] Both Cloud manifests use the documented npm range and expected integrity. +- [ ] Isolated-cache clean install, full committed suite, syntax/diff checks, + direct HTTP smoke, and concurrent account-isolation tests pass. +- [ ] Node 18/22 CI is green on the exact draft PR head. +- [ ] No deployment, merge, tag, publication, registry action, provider + activation, secret, paid-service decision, or account-boundary regression + occurs. + +## checks + +Use `/private/tmp/citewire-cloud-npm-cache`, the repository's committed tests, +and its documented direct HTTP and concurrent account-isolation smokes. Do not +create ad hoc test artifacts. + +## artifact + +The expected output is the focused, independently reviewed two-manifest npm +range change in draft Cloud PR #1 plus recorded clean-install, test, direct HTTP, +concurrent account-isolation, diff, and Node 18/22 CI evidence. + +## rollback + +Revert the focused two-manifest dependency change before merge and retain the +verified exact archive pin. Never substitute an unverified range or copied +transport. + +## mappings + +- GitHub: draft `MeekPhills/citewire-cloud` PR #1. +- Linear: KAR-66, with Community release authority tracked in KAR-67. + +## Claude hierarchy + +Opus owns dependency provenance and account-boundary interpretation. A separate +Terra session independently reviews supply-chain and account-isolation evidence. +Level 0 integrates. + +## first action + +After WS-008 only, read public npm provenance for the exact released Community +version. Leave both Cloud manifests untouched until that evidence passes. + +## escalation + +Stop on absent or wrong provenance, a failed test, unexpected lockfile diff, +secret, npm publication request, deployment, merge, or account crossover. diff --git a/.claude/orchestration/streams/WS-011.md b/.claude/orchestration/streams/WS-011.md new file mode 100644 index 0000000..f71dd48 --- /dev/null +++ b/.claude/orchestration/streams/WS-011.md @@ -0,0 +1,113 @@ +# WS-011 — Citewire Cloud private-alpha boundary + +## objective + +Review the authenticated Cloud HTTP entry point as a private-alpha candidate. Verify authentication-before-dispatch, stable fail-closed behavior, immutable account context, input allowlisting, and Community-to-Cloud composition. Keep the candidate undeployed and do not choose participants, vendors, pricing, or commercial availability. + +## status + +OWNER-GATED READY — implementation and verification are complete; alpha operations are not approved. + +## provenance + +- Repository/head: /Users/luismorrobel/karayagroup/citewire-cloud, 69068275ca0e332e36304533aa0f6b5d2e291405 on agent/cloud-alpha-http. +- Runtime implementation baseline: ad7e58fb2ac3f6ebc4c7d0247c105955dd9696b0. +- Draft PR #1: https://github.com/MeekPhills/citewire-cloud/pull/1. +- Runtime paths: api/mcp.js, src/auth.js, src/http.js, src/tools.js. + +## last-good + +Missing, malformed, and invalid credentials produce the same generic 401 and do not dispatch MCP. Invalid configuration produces generic 503. Raw bearer keys and service exception text are not exposed. Each request has immutable account context, brief-service input is allowlisted, and absent/throwing stateful services fail closed. GitHub reports zero Cloud deployments. + +## completed + +- Community HTTP transport is imported rather than copied. +- Concurrent account-isolation regression exercises the actual handler. +- Default composition injects no datastore, billing, OAuth, or vendor. +- Node 18/22 CI, isolated install, direct HTTP smoke, syntax/check, and committed suite are green. + +## remaining + +- Decide separately whether a private alpha exists. +- If approved, define participants, credential lifecycle, exact Origin policy, endpoint ownership, retention, privacy, support, quotas, and incident response. +- Keep Cloud out of public Karaya copy until actually launched and verified. + +## unknowns + +No approved participant list, raw-key lifecycle, production Origin policy, persistence service, billing/OAuth contract, customer terms, privacy notice, support posture, or deployment identifier exists. No provider/model/cost choice is made here. + +## dependencies + +- WS-009 exact archive-pin verification and documentation correction. +- WS-010 is a separate later npm-range migration, not a hard dependency. +- Owner approval before deployment or participant access. + +## owned paths + +- /Users/luismorrobel/karayagroup/citewire-cloud/api/mcp.js +- /Users/luismorrobel/karayagroup/citewire-cloud/src/auth.js +- /Users/luismorrobel/karayagroup/citewire-cloud/src/http.js +- /Users/luismorrobel/karayagroup/citewire-cloud/src/tools.js +- /Users/luismorrobel/karayagroup/citewire-cloud/docs/ALPHA-DEPLOYMENT-CHECKLIST.md +- /Users/luismorrobel/karayagroup/citewire-cloud/test/ + +## binary DoD + +- [x] Auth precedes MCP dispatch with stable non-secret errors. +- [x] Per-request account context is immutable and concurrent accounts remain isolated through the real HTTP handler. +- [x] Stateful tools fail closed without injected services. +- [x] Community remains the one-way stateless/read-only dependency. +- [x] Existing tests, syntax/checks, direct HTTP smoke, account-isolation tests, and Node 18/22 CI pass. +- [ ] Owner has approved participant, deployment, credentials, domain, retention, terms, privacy, support, and cost posture. + +## artifact + +Draft PR #1, committed Cloud implementation/tests, and owner-gated alpha checklist. No deployment artifact exists. + +## baseline + +Runtime candidate ad7e58fb2ac3f6ebc4c7d0247c105955dd9696b0; current docs head 69068275ca0e332e36304533aa0f6b5d2e291405. + +## focused checks + +Run isolated-cache npm ci, npm test, npm run check, and git diff --check. Exercise auth variants, direct HTTP, and concurrent account-isolation smoke with existing tests. Do not send live provider traffic or add fixtures. + +## integration checks + +- Cross-check Community HTTP behavior at 10aee95a. +- Confirm Cloud imports no Karaya credentials, editorial policy, source registry, voice rules, or stored article content. +- Confirm draft PR green and no deployment. + +## rollback + +On auth, isolation, or secret-scan failure, stop and keep the last-good undeployed candidate. Never deploy as a diagnostic or loosen fail-closed behavior to make a smoke pass. + +## GitHub mapping + +- Draft PR #1: https://github.com/MeekPhills/citewire-cloud/pull/1. +- Docs-sync runs: 31893670759 and 31893673430. + +## Linear mapping + +- Parent: KAR-66. +- Identity dependency: KAR-67. + +## Claude tier + +Level 2 Opus for security/account-isolation interpretation; Level 3 Sonnet for mechanical checks under review. + +## reviewer + +Terra independently reviews security. Luna verifies paths, counts, check runs, and deployment state. + +## integrator + +Level 0 Sol/Fable master. No alpha operator is implied. + +## first action + +Read the architecture, owner decisions, and auth/HTTP tests, then run the clean committed verification wave from the pinned head. + +## escalation + +Stop on a secret, account crossover, unbounded service error, provider, participant, credential, DNS, deployment, or public-availability action. diff --git a/.claude/orchestration/streams/WS-012.md b/.claude/orchestration/streams/WS-012.md new file mode 100644 index 0000000..adf0afd --- /dev/null +++ b/.claude/orchestration/streams/WS-012.md @@ -0,0 +1,114 @@ +# WS-012 — Karaya production truth and corpus policy integrity + +## objective + +Establish dated, read-only truth for Karaya Industry News before autonomous editorial expansion. Reconcile live HTTP/MCP/feed observations with ingest and publication policy, classify stored-corpus drift, and prepare owner-reviewed remediation without database writes, source changes, or silent rewrites. + +## status + +RESEARCH READY — live surface is healthy; corpus and operational state need a fresh evidence artifact. + +## provenance + +- Production reference: repaired Karaya main at 9c1506320771faf177f3675ef5ea1c1eff36fe81. +- Required code worktree: `/Users/luismorrobel/karayagroup/karayagroup-production-audit`, freshly created as a clean isolated checkout from verified `origin/main` and recorded by Level 0 before this stream begins. +- Never use `karayagroup-live` for production truth and never use or write the protected `karayagroup-brand` owner-screenshot worktree. +- On 2026-08-15, /, /industry-news, /industry-news/about, and the topics API returned 200. +- Topics returned nine slugs: ai-compute, data-centers, power-cooling, gpu-systems, cloud-colocation, capital-financing-ma, supply-chain, policy-governance, and benchmarks-research. +- MCP initialize at /mcp succeeded with protocol 2025-06-18, server karaya-news-mcp version 1.0.0, and read-only instructions. +- The observed 50-item production JSON feed contained 16 summaries over the provisional 480-character cap and one appeared first on POWER Magazine trailer. + +## last-good + +Current code strips known boilerplate and applies the 480-character gate. Live oversize/trailer observations establish stored-corpus drift, not proof of an ingest-gate bypass. Production is intentionally unchanged. + +## completed + +- Public Industry News, About, topics API, and MCP surfaces are reachable. +- Current publication policy, source conditions, revisions path, and summary cap are documented. +- GitHub issue #18 and Linear KAR-69 capture this scope. +- Owner screenshots remain untouched: 49 files exist in the owner handoff area, including 41 untracked assets in the separate owner worktree. + +## remaining + +- Record read-only migration 0007–0010 application state. +- Record effective source/circuit-breaker state, cron health, queue age, latest runs, and current production source count. +- Classify each affected row by policy version, source mode, length, boilerplate, attribution, rights posture, and revision history. +- Present remediation options that preserve revisions and audit history. Any write, migration, source toggle, provider activation, or rewrite is separate. + +## unknowns + +Live migration state, effective source count versus registry count, circuit-breakers, cron/queue health, affected-row provenance, and revision lineage are not established by public HTTP smoke alone. + +## dependencies + +- No implementation dependency for read-only truth collection. +- WS-014 waits for this evidence; WS-015 and WS-016 depend on the classified baseline. + +## owned paths + +- Read-only inspection of runtime and migration paths in the fresh production-audit worktree. +- Sole write ownership: `/Users/luismorrobel/karayagroup/karayagroup-production-audit/docs/production-truth-2026-08-15.md`. +- No runtime, migration, test, configuration, database, corpus, or protected-owner-asset write ownership. + +## binary DoD + +- [ ] Dated read-only evidence covers migrations, effective sources, circuit-breakers, cron, queue, runs, and source count. +- [ ] Every affected row has policy/source/length/boilerplate/attribution/rights/revision classification. +- [ ] Code, registry, database, and public-feed contradictions are resolved or marked Unknown. +- [ ] Remediation preserves audit/revision history and remains owner-gated. +- [x] No database write, migration, source toggle, provider activation, or silent rewrite occurred. +- [x] Owner screenshots remain unmodified, unstaged, and untracked. + +## artifact + +Planned `docs/production-truth-2026-08-15.md` with dated evidence, row-level classification, and no-write disposition. Existing committed tests are inputs; do not create ad hoc test artifacts. + +## baseline + +Live production `9c150632...`; the implementation baseline must be refreshed from verified `origin/main`. The historical `karayagroup-live` and protected `karayagroup-brand` worktrees are excluded. + +## focused checks + +Routine HTTP smoke for public pages/endpoints; read-only MCP initialize and tool inspection; read-only feed retrieval with deterministic count/length/trailer report; existing build/test/registry/audit/compliance checks only as needed. Never apply migrations or invoke mutating admin APIs. + +## integration checks + +- Compare live 480-character observations with publish-policy.js and ingest normalization. +- Compare live source/circuit state with registry without treating YAML count as runtime truth. +- Pass the classified baseline to WS-014. + +## rollback + +Evidence is read-only. If proof would require mutation, record Unknown and stop. Delete no rows, rollback no migrations, and rewrite no stored content. + +## GitHub mapping + +- Issue #18: https://github.com/MeekPhills/karayagroup/issues/18. +- Link PR #17 is separate and remains draft. + +## Linear mapping + +- Parent: KAR-66. +- Work item: KAR-69. +- Existing console/source-health follow-up: KAR-53. + +## Claude tier + +Level 2 Opus for production-readiness and contradiction analysis; Level 3 Sonnet for bounded read-only endpoint evidence under review. + +## reviewer + +Terra reconciles code, feed, and operational-state claims. Luna checks URLs, SHAs, migration names, counts, and screenshot preservation. + +## integrator + +Level 0 Sol/Fable master controls the dependency gate into WS-014. + +## first action + +Level 0 first records the fresh clean production-audit worktree and exact base SHA. Then run routine public smoke tests and MCP initialize before any privileged read-only inspection. + +## escalation + +Stop on database write, migration, source toggle, provider activation, secret, paid-service decision, queue mutation, silent rewrite, screenshot change, or contradiction that cannot be marked Unknown. diff --git a/.claude/orchestration/streams/WS-013.md b/.claude/orchestration/streams/WS-013.md new file mode 100644 index 0000000..a592bf9 --- /dev/null +++ b/.claude/orchestration/streams/WS-013.md @@ -0,0 +1,106 @@ +# WS-013 — Versioned public MCP contract and resources + +## objective + +Design a backward-compatible Community MCP expansion for article discovery, source/topic metadata, inclusion explanations, health, and MCP resources. Keep Community stateless, provider-neutral, read-only, attribution-first, MIT-licensed, and independent of Karaya credentials and editorial state. + +## status + +PLANNED — design only; no runtime contract change is authorized. + +## provenance + +- Baseline: citewire release branch agent/citewire-product-launch at 10aee95ac95bb437b4607723cd20fa5c8f9d1879. +- Existing tools: news.list, news.get, news.topics, news.about. +- Existing transports: stdio and stateless HTTP. +- GitHub issue 4 verifies resources/list, resources/read, inclusion tiers, reason tags, and durable decision traces are absent. + +## last-good + +Community remains dependency-free, Node 18+ ESM, self-hostable, stateless, read-only, and provider-disabled by default. Existing news.* compatibility is the rollback target. + +## completed + +- Current platform contract, MCP implementation, and committed tests are the compatibility baseline. +- GitHub issue MeekPhills/citewire#4 and Linear KAR-68 are the future-design anchors. + +## remaining + +- Approve an ADR defining versioning, capability discovery, exact schemas, rights/attribution fields, and compatibility. +- Add committed fixtures and routine stdio/direct-HTTP smoke coverage after approval. +- Obtain independent protocol and rights review. +- Keep Karaya inclusion policy and private decision state outside Community. + +## unknowns + +Resource URI scheme, negotiation strategy, inclusion vocabulary, reason tags, health semantics, and trace retention/ownership are not approved. + +## dependencies + +WS-002 canonical identity only. This design may proceed in parallel with later +release planning and does not block the scoped Community 0.2 candidate or +Karaya's independent shadow-safety work. + +## owned paths + +Design-only ownership: `citewire/docs/platform-contract.md` and +`citewire/docs/adr-public-mcp-contract-v1.md`. Runtime and test paths remain +read-only until a separately approved implementation stream is serialized after +WS-004. + +## binary DoD + +- [ ] Approved ADR and versioning path. +- [ ] Exact tool/resource schemas include attribution, canonical links, rights status, inclusion explanation, and health without Karaya state. +- [ ] Committed fixtures and routine stdio/direct-HTTP smoke plan pass. +- [ ] Existing news.* behavior remains unchanged and no duplicate semantics exist. +- [ ] Independent protocol and rights review is recorded. +- [ ] No runtime, package, registry, or deployment mutation before approval. + +## artifact + +Planned ADR, companion fixtures, and focused compatibility tests. Reuse committed tests; create no disposable artifacts. + +## baseline + +10aee95ac95bb437b4607723cd20fa5c8f9d1879. + +## focused checks + +Run existing npm test, syntax checks, git diff --check, stdio initialize, direct HTTP initialize, and tool-list smoke. Do not call live providers. + +## integration checks + +Verify additive capability discovery, no Community dependency on Karaya secrets/policy/database, and one-way Cloud consumption. + +## rollback + +If compatibility or rights is unresolved, keep the ADR as a proposal and do not modify src. Existing news.* behavior remains. + +## GitHub mapping + +Issue 4: https://github.com/MeekPhills/citewire/issues/4. + +## Linear mapping + +Parent KAR-66; work item KAR-68. + +## Claude tier + +Level 2 Opus for protocol/rights design; Level 3 Sonnet for bounded fixtures after review. + +## reviewer + +Terra protocol/rights review; Luna exact schema, path, and fixture review. + +## integrator + +Level 0 Sol/Fable master enforces Community/Karaya separation. + +## first action + +Inventory current tool schemas and tests before naming a new resource or field. + +## escalation + +Stop on a breaking contract, Karaya-specific field/credential, rights ambiguity, provider activation, publication, registry submission, secret, or deployment. diff --git a/.claude/orchestration/streams/WS-014.md b/.claude/orchestration/streams/WS-014.md new file mode 100644 index 0000000..66bb2e1 --- /dev/null +++ b/.claude/orchestration/streams/WS-014.md @@ -0,0 +1,113 @@ +# WS-014 — Rights-aware policy, evaluation, and shadow workflow + +## objective + +Define and validate a deterministic, auditable shadow state machine for Karaya ingest, relevance, summarization, verification, and publishing. Routine human review may be removed only after rights, attribution, evidence, and independent-agent agreement gates are proven. + +## status + +PLANNED — shadow/replay only; production thresholds remain unchanged. + +## provenance + +- Karaya production baseline: main at 9c1506320771faf177f3675ef5ea1c1eff36fe81. +- Current bands: below 0.55 quarantine; 0.55–0.8199 review; at least 0.82 auto-eligible subject to the full gate. +- Proposed shadow bands: below 0.50 held; 0.50–0.5999 adjacent-only after independent agreement with an Adjacent signal badge/reason tag; at least 0.60 standard candidate. +- Existing policy, attribution/redaction gates, source conditions, revisions, and tests are the baseline. + +## last-good + +Unknown rights, missing attribution, provider failure, agent disagreement, weak evidence, and policy conflicts hold an item. No live threshold or publication behavior changed. + +## completed + +- Existing policy gate, summary cap, source-mode rules, revisions, and audit behavior are implemented and tested. +- Automated review/summarization/posting and recurring assessment direction is recorded without a model/provider/cost choice. +- GitHub issue 19 and Linear KAR-70 capture required order and holds. + +## remaining + +- Version the policy/data contract and immutable decision-trace fields. +- Replay the classified corpus after WS-012; shadow output must not expand publication. +- Define independent roles/agreement and controlled reason tags. +- Define 15-minute ingest, hourly health, daily audit, weekly calibration, and monthly source/provider/security/cost assessments. +- Carry only a non-visible label token or proposed copy. WS-015 exclusively owns + the read-aloud gate for any visible label or reason-tag copy. + +## unknowns + +Historical row policy versions, rights lineage, agreement threshold, calibration quality, summary method, provider/model terms, cost ceiling, and badge copy are unknown. + +## dependencies + +WS-012 is a hard prerequisite. WS-013 may supply only generic fields. WS-015 and WS-016 wait for this contract. + +## owned paths + +In the required fresh `karayagroup-production-audit` worktree only: +`docs/adr-editorial-policy-shadow-state-machine.md`, +`site/api/_lib/ingest/classify.js`, `site/api/_lib/ingest/process.js`, +`site/api/_lib/publish-policy.js`, `site/test/ingest.test.mjs`, +`site/test/ingest-worker.test.mjs`, and `site/test/publish-policy.test.mjs`. +No `karayagroup-live` or `karayagroup-brand` path is writable. + +## binary DoD + +- [ ] Versioned state machine names every gate and transition. +- [ ] Replay and independent agreement are deterministic and hold unknown/disagreeing cases. +- [ ] Lower bands remain shadow-only and live thresholds unchanged. +- [ ] Assessment outputs are reproducible. +- [ ] Any label is non-visible placeholder data only; visible-copy approval is + deferred to WS-015. +- [ ] WS-012 proves existing schema sufficiency. If a migration, backfill, or + configuration write is needed, this stream stops for a separately approved, + reversible subtask with snapshot and rollback evidence. +- [x] No provider/model/cost choice, migration, activation, threshold change, or automated production publish. + +## artifact + +Planned `docs/adr-editorial-policy-shadow-state-machine.md`, deterministic replay fixtures/results, and updates to existing committed policy tests. No ad hoc fixtures. + +## baseline + +Karaya production 9c150632... and current policy tests; preserve all 49 owner screenshots, including 41 untracked and 8 tracked files. + +## focused checks + +Run existing policy/ingest tests and full Karaya build/test/registry/audit/compliance gates if runtime files change. Use committed deterministic replay data. + +## integration checks + +Compare replay with WS-012 classification; keep traces private to Karaya; confirm production thresholds and publication counts are unchanged. + +## rollback + +Retain the report, keep affected items held/reviewed under current rules, and revert focused implementation before any canary. + +## GitHub mapping + +Issue 19: https://github.com/MeekPhills/karayagroup/issues/19. + +## Linear mapping + +Parent KAR-66; work item KAR-70. + +## Claude tier + +Level 2 Opus for policy/rights/evaluation; Level 1 nested Fable for role coordination; Level 3 Sonnet for bounded tests. + +## reviewer + +Terra rights/safety reviewer; Luna deterministic fixture and path reviewer. + +## integrator + +Level 0 Sol/Fable master enforces sequence and approvals. + +## first action + +Read WS-012 evidence and existing policy tests; inventory states before touching a threshold or UI string. + +## escalation + +Stop on live threshold/publishing change, activation, model/provider/cost choice, migration, secret, rights uncertainty, or unapproved visible copy. diff --git a/.claude/orchestration/streams/WS-015.md b/.claude/orchestration/streams/WS-015.md new file mode 100644 index 0000000..f3cf264 --- /dev/null +++ b/.claude/orchestration/streams/WS-015.md @@ -0,0 +1,111 @@ +# WS-015 — Adjacent signals, exceptions console, and assessments + +## objective + +After WS-012 and WS-014 prove the automated path, replace routine review with an exceptions-only surface. Expose controlled reason tags, Adjacent signal handling, decision traces, health and assessments, explicit reprocess/reject/one-item approval, and a tested global pause. + +## status + +PLANNED — current console remains live and unchanged; no adjacent UI or automated publishing exists. + +## provenance + +- Karaya production baseline: main at 9c1506320771faf177f3675ef5ea1c1eff36fe81. +- Existing console: /admin and read-only /admin/sources; remaining dedupe/dead-letter/kill-switch/source-activation work is anchored by KAR-53. +- No Adjacent signal UI, inclusion-tier fields, new agent workflow state, durable trace, or assessment scheduler exists. +- Cadence from KAR-66: 15-minute ingest, hourly health, daily audit, weekly calibration, monthly source/provider/security/cost review. + +## last-good + +Existing authorization, publication gate, revisions, audit rows, and source-health view remain the baseline. Routine review is not removed yet. + +## completed + +Current admin routes, auth, source-health helpers, publication/revision helpers, and committed tests are available. Target exception actions and cadence are requirements, not implementation claims. + +## remaining + +- Define exception schema and reason tags. +- Show inclusion tier, source attribution, agent agreement, trace, and health without secrets/article bodies. +- Implement and test reprocess, reject, explicit approval, and global pause as audited/replay-safe actions. +- Add assessment outputs and failed-agent escalation. +- Obtain read-aloud approval for badge and reason-tag copy. + +## unknowns + +Final roles, trace retention, assessment storage/scheduler, alert destination, exception SLA, exact copy, and paid-service need are unresolved. + +## dependencies + +WS-012 and WS-014 are hard prerequisites. WS-013 supplies generic fields only. WS-016 waits for pause and rollback tests. + +## owned paths + +In the required fresh `karayagroup-production-audit` worktree only: +`site/api/admin.js`, `site/api/_lib/editorial-auth.js`, +`site/api/_lib/editorial-queries.js`, `site/api/news-page.js`, +`site/api/_lib/render.js`, `site/src/pages/industry-news/shell.astro`, +`site/src/styles/`, `site/test/admin.test.mjs`, `site/test/news-page.test.mjs`, +and `docs/adjacent-signal-console-runbook.md`. The PR #17-owned +`about.astro` and `news-compliance.test.mjs` are explicitly excluded. Shared +paths require predecessor completion and a recorded Level 0 ownership transfer. + +## binary DoD + +- [ ] Routine bypass only follows deterministic rights, attribution, quality, and independent-agreement gates. +- [ ] Exceptions UI shows tier, reason, attribution, agreement, trace, and health. +- [ ] Reprocess, reject, approval, and global pause are authorized, audited, replay-safe, and tested. +- [ ] Assessment cadence and escalation are reproducible. +- [ ] Visible copy has Luis read-aloud approval. +- [ ] Existing schema is sufficient, or a separately approved reversible + migration/backfill/configuration subtask with snapshot and rollback evidence + has completed before implementation resumes. +- [ ] No production publishing expansion or provider/model/cost choice. + +## artifact + +Planned `docs/adjacent-signal-console-runbook.md`, committed route/policy tests, and assessment fixtures. No ad hoc artifacts or live queue rows. + +## baseline + +Production 9c150632... and current console/auth baseline; preserve owner screenshots. + +## focused checks + +Run existing admin auth, publication, revision, source-health, and MCP tests; full build/registry/audit/compliance/diff/secret checks for runtime changes; deterministic pause/replay tests. + +## integration checks + +Confirm pause blocks automated and manual publishing and writes a truthful audit result. Confirm role boundaries, attribution, revisions, source terms, and no Community leakage. + +## rollback + +Keep current review/publication gates. If pause or audit fails, disable only the new workflow and hold items for the existing path. Do not delete history. + +## GitHub mapping + +Issue 19: https://github.com/MeekPhills/karayagroup/issues/19. Related follow-up: KAR-53. + +## Linear mapping + +Parent KAR-66; work item KAR-70; related KAR-53. + +## Claude tier + +Level 2 Opus for authorization/audit/failure modes; Level 1 nested Fable coordination; Level 3 Sonnet for bounded UI/tests after approval. + +## reviewer + +Terra security/rights/state-transition review; Luna route/test/screenshot-scope review. + +## integrator + +Level 0 Sol/Fable master owns synchronization. + +## first action + +Inventory mutating admin paths and current tests before designing the exceptions-only surface. + +## escalation + +Stop on public copy without approval, auth/RLS change, migration, queue mutation, source toggle, provider/model/cost choice, secret, deployment, or failed pause test. diff --git a/.claude/orchestration/streams/WS-016.md b/.claude/orchestration/streams/WS-016.md new file mode 100644 index 0000000..71f20ea --- /dev/null +++ b/.claude/orchestration/streams/WS-016.md @@ -0,0 +1,105 @@ +# WS-016 — Controlled canary and rollback drill + +## objective + +Prepare and, only after explicit owner authorization, run a bounded canary for the rights-safe automated editorial workflow. Lower score bands and Adjacent signal remain shadow-only until policy, console, assessments, and rollback are proven. + +## status + +PLANNED — no canary, deployment, threshold change, or automated publishing is authorized. + +## provenance + +- Production baseline: main at 9c1506320771faf177f3675ef5ea1c1eff36fe81. +- Required order in Karaya issue 19/KAR-70: production truth; policy/data contract; deterministic replay/shadow; assessments; read-aloud approval; exceptions console/global pause; canary/rollback. +- Existing production gate, review fallback, revisions, audit trail, and smoke tests are the rollback baseline. + +## last-good + +Current production remains healthy and unchanged. No new automated workflow is enabled by this program. + +## completed + +Required order and owner gates are documented. Existing tests and production verification provide a rollback baseline. No deployment artifact exists. + +## remaining + +- Write a runbook for cohort/source scope, feature flag, holds, pause, metrics, abort criteria, and rollback. +- Prove replay, pause, and rollback using committed tests in a non-production shadow context. +- Obtain Luis read-aloud approval and separate canary deployment approval. +- If approved, record exact commit, deployment, cohort, times, assessments, and rollback evidence. + +## unknowns + +Canary cohort/source, deployment target, flag owner, monitoring, abort thresholds, retention, support, and cost are unresolved. No provider/model is selected. + +## dependencies + +WS-012 truth; WS-014 shadow policy; WS-015 exceptions/pause; explicit owner +deployment approval. WS-013 generic contract is an optional consult, not a hard +dependency. + +## owned paths + +In the required fresh `karayagroup-production-audit` worktree only: +`site/api/cron/ingest.js`, `site/vercel.json`, +`docs/industry-news-runbook.md`, `docs/go-live-runbook.md`, and +`docs/autonomous-editorial-canary-runbook.md`. Earlier policy, console, and test +paths are read-only unless Level 0 records an explicit serialized ownership +transfer after predecessor completion. + +## binary DoD + +- [ ] Reviewed runbook defines bounded cohort, kill switch, hold, metrics, abort criteria, rollback, and evidence. +- [ ] Shadow/replay and pause/rollback tests pass. +- [ ] Luis approves visible copy and separately authorizes canary deployment. +- [ ] If executed, canary is auditable and promoted/rolled back only by explicit owner decision. +- [x] No canary, deployment, threshold/source/provider activation, migration, or automated publishing occurred. + +## artifact + +Planned `docs/autonomous-editorial-canary-runbook.md`, committed pause/rollback regressions, and only if approved a dated canary evidence record. No live deployment artifact exists. + +## baseline + +Production 9c150632... and current test/build baseline; exclude all 49 owner screenshots from the stream, including 41 untracked and 8 tracked files. + +## focused checks + +Run existing policy, ingest, admin, revision, and MCP tests; full build/registry/audit/compliance/diff/secret checks for runtime changes; deterministic pause/abort/replay/rollback checks. + +## integration checks + +Confirm no publication on rights/attribution failure or disagreement, global pause blocks every path, and production/link state remains unchanged without approval. + +## rollback + +Capture the pre-canary SHA and deployment. On abort, pause first, stop publishing, restore prior configuration/commit, and verify public smoke and audit evidence. Never delete history or force-reset a shared branch. + +## GitHub mapping + +Issue 19: https://github.com/MeekPhills/karayagroup/issues/19. No canary PR or deployment exists. + +## Linear mapping + +Parent KAR-66; work item KAR-70; related KAR-53. + +## Claude tier + +Level 1 nested Fable for sequencing, Level 2 Opus rollout review, Level 3 Sonnet for bounded tests only. + +## reviewer + +Terra rollout/rollback review; Luna exact deployment/commit and screenshot-scope review. + +## integrator + +Level 0 Sol/Fable master is the only execution coordinator. Luis retains deployment/copy gates. + +## first action + +Confirm WS-012 through WS-015 are complete and independently reviewed. If not, keep this stream blocked. + +## escalation + +Stop on failed pre-canary test, secret, migration, activation, paid-service/model decision, Vercel/DNS action, unapproved copy, or irreversible action without owner approval. diff --git a/.claude/orchestration/verification-evidence.md b/.claude/orchestration/verification-evidence.md new file mode 100644 index 0000000..f9616d9 --- /dev/null +++ b/.claude/orchestration/verification-evidence.md @@ -0,0 +1,78 @@ +# Verification evidence — Citewire open-source program + +Evidence date: 2026-08-15, America/New_York. Verified synchronization record for the Claude handoff. The Pickup phase was read-only; the reviewed synchronization phase created tracker mappings, updated draft PR descriptions, pushed the four-file Cloud documentation correction, and prepared this orchestration branch. It is not authority to merge, deploy, publish, activate providers, apply migrations, submit registries, or choose paid services. + +## claim status + +Verified means directly observed in local state, committed tests, GitHub/Linear reads, or dated live smoke. Historical means carried from an earlier verified run. Inferred means bounded interpretation. Unknown means not established. Contradicted means two sources disagree and the resolution is recorded below. + +## exact local heads + +| worktree | branch | head/status | +| --- | --- | --- | +| citewire | agent/citewire-orchestration-handoff | controlled handoff package based on ff09b68ed811531eb0ca630b65daeaf06cc3304c; before its focused commit only `.claude/`, `CLAUDE.md`, and `PROJECT_HANDOFF.md` are expected, and after commit the checkout must be clean at the recorded orchestration head | +| citewire release ref | agent/citewire-product-launch | 10aee95ac95bb437b4607723cd20fa5c8f9d1879, clean release candidate | +| citewire-cloud | agent/cloud-alpha-http | 69068275ca0e332e36304533aa0f6b5d2e291405, clean docs-aligned head; runtime baseline ad7e58f | +| karayagroup-brand | agent/citewire-product-bridge | 60130c88a3c89098736839bbd5e82c4af6ff9958, all 49 screenshots preserved: 41 untracked and 8 tracked | +| karayagroup-citewire-site-link | agent/citewire-site-link | 3a90e43d8797af9e7c0bc02d4c1ae6f51ebd19a6, clean | +| openlyuseful.org | agent/citewire-site-link | 28af5c7a5fdd0425ced2fe45f5c50e05946758de, clean | +| karayagroup-live | gmorrobel15/kar-35-wire-industry-news-pages-feeds-and-detail-routes-to-live | 1c63a3897317273d97c7bb4e71b0d283c5ff1bd6 | + +## PRs and checks + +- Citewire PR #1, head 10aee95a into main, draft/mergeable: Node 18/22 successful in 31750915019 and 31750916990. +- Citewire PR #2, head ff09b68 into agent/citewire-product-launch, draft/mergeable: Node 18/22 successful in 31849200115 and 31849291099; exact 20-file landing diff. +- Cloud PR #1, head 6906827 into main, draft/mergeable: Node 18/22 successful in 31893670759 and 31893673430; earlier runtime checks 31752801534 and 31752804098 successful; no deployment. +- Openly Useful PR #8, head 28af5c7 into current main cf137f9, draft/mergeable: validate runs 31849408964 and 31849412743 plus green Vercel preview. +- Karaya PR #17, head 3a90e43 into production main 9c150632, draft/mergeable: build-and-check 31849281233 plus green Vercel preview. It remains held because citewire.org is not live over HTTPS. +- Historical Karaya sequence: PR #16 into feature branch, PR #15 to main, PR #14 to main at 9c150632; main CI 31754108234 passed 408/408, 16-page build, registry/audit/compliance. This does not authorize PR #17. + +## local verification + +- Community release/landing branch: fresh isolated install, 70/70 committed tests, 5/5 release checks, 27-file npm dry run at 23,870 packed bytes, package excludes the landing and orchestration artifacts, and diff/secret checks. The first sandboxed suite run could not bind 127.0.0.1; the unchanged suite passed 70/70 with localhost binding permitted. +- Cloud runtime/docs: isolated install, 15/15 tests, syntax/check, direct HTTP smoke, concurrent account-isolation and input-allowlist regression, zero npm vulnerabilities, diff/secret checks. Commit 6906827 changes exactly four prose files. +- Karaya link: 409/409, 16-page build, registry/audit/compliance/diff/secret checks. +- Openly Useful: committed validator and diff checks. +- All tests reuse committed suites. No ad hoc test artifact was created. + +## live evidence on 2026-08-15 + +- citewire.org HTTP returned 200 from openresty with X-Powered-By PHP/8.0.25 and X-Service pixie-default. HTTPS TLS handshake failed. A records were 207.207.210.107 and 207.207.210.229; no MX answer; SOA was under Porkbun/Cloudflare. The committed landing is not live. Openly-Useful/citewire was not visible in the authorized read check. +- Karaya /, /industry-news, /industry-news/about, and /api/v1/news/topics returned 200. +- Topics count was nine: ai-compute, data-centers, power-cooling, gpu-systems, cloud-colocation, capital-financing-ma, supply-chain, policy-governance, benchmarks-research. +- Karaya /mcp initialize succeeded with protocol 2025-06-18, server karaya-news-mcp 1.0.0, and read-only instructions. +- The observed 50-item JSON feed contained 16 summaries over the provisional 480-character cap and one appeared first on POWER Magazine trailer. Current code applies the cap, so this is classified as stored-corpus drift, not proof of gate bypass. Migration/source/cron/queue/revision state remains unknown pending WS-012. + +## GitHub issues + +- MeekPhills/citewire#3, canonical identity/history/release, maps to WS-002 through WS-008 and KAR-67: https://github.com/MeekPhills/citewire/issues/3. +- MeekPhills/citewire#4, versioned public MCP contract/resources, maps to WS-013 and KAR-68: https://github.com/MeekPhills/citewire/issues/4. +- MeekPhills/karayagroup#18, production truth/corpus integrity, maps to WS-012 and KAR-69: https://github.com/MeekPhills/karayagroup/issues/18. +- MeekPhills/karayagroup#19, automated editorial pipeline/exceptions console, maps to WS-014 through WS-016 and KAR-70: https://github.com/MeekPhills/karayagroup/issues/19. + +## Linear + +KAR-66 parent is In Progress. KAR-67, KAR-68, KAR-69, and KAR-70 are Todo. KAR-53 remains the related console/source-health/dedupe/dead-letter/kill-switch anchor. Launch Log document ID is 7f791900-c44b-489f-b0af-e1464784e367. + +## contradiction resolutions + +1. Cloud code/docs contradiction resolved by docs-only 6906827: all four docs now state the 10aee95a temporary pin and future npm gate. +2. Karaya code/feed contradiction is bounded as stored-corpus drift until WS-012 reads migration, source, cron, queue, and revision state. No silent rewrite. +3. Working Karaya GitHub link versus proposed citewire.org link remains unresolved: PR #17 stays draft until HTTPS landing and canonical identity verify. +4. Karaya vendored Community provider adapters are pass-through in its read-only MCP; this is not Cloud and not a broad powered-by claim. +5. Registry YAML counts are not runtime source truth; missing runtime state is Unknown. +6. GLO/fantasyhq material was rejected as unrelated to Citewire/Karaya. No GLO issue, fantasyhq migration, branch, or deployment was used or changed. + +## explicit actions not taken + +- No Openly-Useful/citewire creation, transfer, archive, fork, or rename. +- No Citewire Vercel project, DNS/domain attachment, citewire.org repair, landing deployment, merge, tag, GitHub Release, npm publish, MCP Registry/catalog submission. +- No Cloud deployment, participant invite, credential issuance/rotation, provider/model/cost choice, paid service, billing, OAuth, or public-availability claim. +- No Karaya migration, database write, source toggle, provider activation, production threshold change, automated publishing, canary, or corpus rewrite. +- No visible Karaya copy change or merge without Luis read-aloud approval. +- No owner screenshot edit, stage, delete, clean, or overwrite. All 49 screenshot files remain preserved: 41 untracked and 8 tracked. +- No unrelated GLO/fantasyhq mutation. + +## handoff gate + +The initial two-hour gate is WS-002 only: obtain the canonical identity and authority decision before repository migration, release metadata, landing deployment, or immutable publication. WS-012 is an independent later read-only branch and is not launched in that wave. After corpus integrity, the Karaya order is WS-014 shadow policy/replay, WS-015 exceptions console/assessments, then WS-016 canary only after explicit owner approval. WS-009 records the verified exact archive pin; WS-010 is the blocked post-publication npm-range migration; WS-011 is a separate owner-gated archive-pinned private-alpha path. Stop on failed tests, unexpected diff, secret, paid-service decision, provider activation, migration, deployment, or irreversible action. diff --git a/.claude/orchestration/work-graph.yaml b/.claude/orchestration/work-graph.yaml new file mode 100644 index 0000000..8f06c43 --- /dev/null +++ b/.claude/orchestration/work-graph.yaml @@ -0,0 +1,1033 @@ +schema_version: 1 +artifact: citewire-orchestration-work-graph +as_of: "2026-08-15" +claim_status: Verified +canonical_orchestration_repository: + path: "/Users/luismorrobel/karayagroup/citewire" + repository: "MeekPhills/citewire" + branch: "agent/citewire-orchestration-handoff" + head: "ff09b68ed811531eb0ca630b65daeaf06cc3304c" + base_commit: "ff09b68ed811531eb0ca630b65daeaf06cc3304c" + state: "orchestration artifacts are being prepared locally; no commit or push is represented by this file" + +source_of_truth_order: + - "latest explicit owner direction" + - "current implementation and reproducible behavior" + - "fresh test, CI, deployment, and direct HTTP evidence" + - "reviewed git history and pull-request diffs" + - "current GitHub and Linear state" + - "repository documentation" + - "historical handoffs and chat claims" + +repositories: + - name: "Citewire Community" + repository: "MeekPhills/citewire" + path: "/Users/luismorrobel/karayagroup/citewire" + current_branch: "agent/citewire-orchestration-handoff" + current_head: "ff09b68ed811531eb0ca630b65daeaf06cc3304c" + main_head: "14eb968fd2da80b7a1adc3078cc1ba514b8bcfa5" + - name: "Citewire Cloud" + repository: "MeekPhills/citewire-cloud" + path: "/Users/luismorrobel/karayagroup/citewire-cloud" + current_branch: "agent/cloud-alpha-http" + current_head: "69068275ca0e332e36304533aa0f6b5d2e291405" + main_head: "7157df992b2877f0b1ca1f552b80f52d246e5730" + - name: "Openly Useful website" + repository: "Openly-Useful/openlyuseful.org" + path: "/Users/luismorrobel/karayagroup/openlyuseful.org" + current_branch: "agent/citewire-site-link" + current_head: "28af5c7a5fdd0425ced2fe45f5c50e05946758de" + main_head: "cf137f9b77d68d16c41cd90f1af8d2df3b9972f4" + - name: "Karaya Citewire-link worktree" + repository: "MeekPhills/karayagroup" + path: "/Users/luismorrobel/karayagroup/karayagroup-citewire-site-link" + current_branch: "agent/citewire-site-link" + current_head: "3a90e43d8797af9e7c0bc02d4c1ae6f51ebd19a6" + main_head: "9c1506320771faf177f3675ef5ea1c1eff36fe81" + - name: "Historical Karaya live worktree, never use for new production work" + repository: "MeekPhills/karayagroup" + path: "/Users/luismorrobel/karayagroup/karayagroup-live" + current_branch: "gmorrobel15/kar-35-wire-industry-news-pages-feeds-and-detail-routes-to-live" + current_head: "1c63a3897317273d97c7bb4e71b0d283c5ff1bd6" + main_head: "9c1506320771faf177f3675ef5ea1c1eff36fe81" + - name: "Required fresh Karaya production-audit worktree" + repository: "MeekPhills/karayagroup" + path: "/Users/luismorrobel/karayagroup/karayagroup-production-audit" + required_base: "fresh verified origin/main" + state: "must be created as a clean isolated worktree and recorded by Level 0 before WS-012 or any Karaya implementation stream begins" + - name: "Karaya owner-screenshot worktree" + repository: "MeekPhills/karayagroup" + path: "/Users/luismorrobel/karayagroup/karayagroup-brand" + current_branch: "agent/citewire-product-bridge" + current_head: "60130c88a3c89098736839bbd5e82c4af6ff9958" + main_head: "9c1506320771faf177f3675ef5ea1c1eff36fe81" + protected_untracked_path: "/Users/luismorrobel/karayagroup/karayagroup-brand/site/handoff/redesign/" + protected_untracked_count: 41 + +current_pull_requests: + - repository: "MeekPhills/citewire" + number: 1 + title: "Prepare citewire 0.2.0 Community release candidate" + url: "https://github.com/MeekPhills/citewire/pull/1" + draft: true + mergeable: "MERGEABLE" + base: "main" + head_branch: "agent/citewire-product-launch" + head: "10aee95ac95bb437b4607723cd20fa5c8f9d1879" + - repository: "MeekPhills/citewire" + number: 2 + title: "Add the citewire.org landing site" + url: "https://github.com/MeekPhills/citewire/pull/2" + draft: true + mergeable: "MERGEABLE" + base: "agent/citewire-product-launch" + head_branch: "agent/citewire-landing-site" + head: "ff09b68ed811531eb0ca630b65daeaf06cc3304c" + - repository: "MeekPhills/citewire-cloud" + number: 1 + title: "Add authenticated private-alpha MCP HTTP entry point" + url: "https://github.com/MeekPhills/citewire-cloud/pull/1" + draft: true + mergeable: "MERGEABLE" + base: "main" + head_branch: "agent/cloud-alpha-http" + head: "69068275ca0e332e36304533aa0f6b5d2e291405" + - repository: "Openly-Useful/openlyuseful.org" + number: 8 + title: "Link the Citewire project website" + url: "https://github.com/Openly-Useful/openlyuseful.org/pull/8" + draft: true + mergeable: "MERGEABLE" + base: "main" + head_branch: "agent/citewire-site-link" + head: "28af5c7a5fdd0425ced2fe45f5c50e05946758de" + - repository: "MeekPhills/karayagroup" + number: 17 + title: "Link Industry News to citewire.org" + url: "https://github.com/MeekPhills/karayagroup/pull/17" + draft: true + mergeable: "MERGEABLE" + base: "main" + head_branch: "agent/citewire-site-link" + head: "3a90e43d8797af9e7c0bc02d4c1ae6f51ebd19a6" + +critical_paths: + identity_and_immutable_release: ["WS-001", "WS-002", "WS-003", "WS-004", "WS-008", "WS-010"] + secure_website_and_downstream_links: ["WS-001", "WS-002", "WS-004", "WS-005", "WS-006"] + karaya_corpus_and_automation: ["WS-001", "WS-012", "WS-014", "WS-015", "WS-016"] + cloud_private_alpha: ["WS-001", "WS-009", "WS-011"] + +dependency_unlocks: + WS-002: ["WS-003", "WS-004", "WS-013"] + WS-003: ["WS-008"] + WS-004: ["WS-005", "WS-008"] + WS-005: ["WS-006", "WS-007"] + WS-008: ["WS-010"] + WS-009: ["WS-011"] + WS-012: ["WS-014", "WS-015", "WS-016"] + WS-014: ["WS-015"] + WS-015: ["WS-016"] + +independent_parallel_branches: + - ["WS-009", "WS-012"] + - ["WS-013", "WS-012"] + - ["WS-006", "WS-007"] + - ["WS-010", "WS-011"] + +shared_mutable_state: + - resource: "Citewire canonical GitHub, npm, MCP Registry, and website identity" + serialized_by: "WS-002" + affected_streams: ["WS-003", "WS-004", "WS-005", "WS-006", "WS-007", "WS-008", "WS-010"] + - resource: "Karaya production database and source/circuit-breaker configuration" + serialized_by: "WS-014" + affected_streams: ["WS-014", "WS-015", "WS-016"] + - resource: "Karaya public copy and visual labels" + serialized_by: "WS-015" + affected_streams: ["WS-007", "WS-015", "WS-016"] + owner_gate: "Luis read-aloud approval before merge of visible copy" + +serialized_changes: + - "Canonical identity and repository/history decisions precede any merge, transfer, archive, or public release action." + - "A verified HTTPS destination precedes either downstream citewire.org link merge." + - "Community npm publication and registry submission precede Cloud conversion from the immutable archive pin to an npm range." + - "Read-only Karaya production truth precedes any policy, corpus, source, database, or automated-publication change." + - "Shadow evaluation and measured calibration precede a visible Adjacent signal label, exceptions-only console, canary, or production rollout." + - "WS-012 owns read-only production evidence output only. WS-014 owns policy/state-machine paths, WS-015 owns admin/UI/console paths, and WS-016 owns rollout/configuration/runbook paths. Any shared path requires predecessor completion and a recorded Level 0 ownership transfer before a later write." + +cross_repository_integration_points: + - source: "Citewire Community" + consumer: "Citewire Cloud" + contract: "Community HTTP transport imported through the immutable archive pin at 10aee95ac95bb437b4607723cd20fa5c8f9d1879; replace only after published npm provenance is verified." + - source: "Citewire website" + consumer: "Openly Useful website" + contract: "Downstream CTA/link must resolve to the canonical, live HTTPS destination before PR #8 merge." + - source: "Citewire website" + consumer: "Karaya Industry News" + contract: "Downstream source attribution/link must resolve to the canonical, live HTTPS destination before PR #17 merge." + - source: "Citewire Community provider adapters" + consumer: "Karaya Industry News" + contract: "Karaya remains a customized consumer; Karaya editorial state, provider credentials, policy, voice, source rights, and redactions do not enter the MIT Community package." + +manual_only_blockers: + - "Owner selects and authenticates the canonical GitHub organization, repository disposition, npm ownership, MCP Registry namespace, and citewire.org DNS/deployment authority." + - "Owner approves any repository create, transfer, archive, DNS change, deployment, merge, tag, npm publication, registry/catalog submission, provider activation, or paid-service decision." + - "Luis reads and approves any visible Karaya label or copy before merge." + - "Owner authorizes any production database migration, corpus rewrite, source toggle, threshold change, automated publishing, canary, or rollback drill." + +work_streams: + - id: "WS-001" + parent_cluster: "Program orchestration and durable Claude handoff" + objective: "Create a verified, executable orchestration package without changing product behavior or external systems." + priority: "P0" + status: "in_progress" + current_verified_state: + claim_status: "Verified" + state: "The orchestration branch is agent/citewire-orchestration-handoff at ff09b68ed811531eb0ca630b65daeaf06cc3304c; no orchestration commit or push is represented yet." + evidence: ["git status and HEAD inspection on 2026-08-15"] + production_readiness_category: "governance, traceability, and handoff" + risk: + level: "high" + statement: "An incomplete or stale graph can cause an irreversible action to be taken in the wrong order." + complexity: "medium" + uncertainty: "low" + repository: "/Users/luismorrobel/karayagroup/citewire" + exclusive_ownership_paths: + - "/Users/luismorrobel/karayagroup/citewire/PROJECT_HANDOFF.md" + - "/Users/luismorrobel/karayagroup/citewire/CLAUDE.md" + - "/Users/luismorrobel/karayagroup/citewire/.claude/orchestration/" + dependencies: [] + dependents: ["WS-002", "WS-009", "WS-012"] + binary_definition_of_done: "All required handoff and orchestration artifacts parse, cross-reference exactly these 16 streams, contain no secrets or private transcripts, have an inspected focused diff, and are committed only after independent review." + acceptance_criteria: + - "Every active stream has stable ownership, dependency, binary DoD, verification, rollback, GitHub/Linear mapping, Claude tier, reviewer, and escalation rule." + - "No artifact claims an external mutation that has not been independently verified." + baseline_checks: + working_directory: "/Users/luismorrobel/karayagroup/citewire" + commands: ["ruby -e 'require \"yaml\"; YAML.load_file(\".claude/orchestration/work-graph.yaml\")'", "git diff --check", "git status --short"] + focused_implementation_checks: + - "Validate all YAML artifacts mechanically." + - "Cross-check every WS identifier, dependency, repository path, current SHA, GitHub URL, and Linear identifier." + integration_checks: + - "Independent Luna identifier/path review." + - "Independent Terra architecture, work-graph, and Claude-hierarchy review." + expected_artifact: "/Users/luismorrobel/karayagroup/citewire/.claude/orchestration/work-graph.yaml" + rollback_boundary: "Documentation-only artifact commit; revert the dedicated orchestration commit without altering product code or external state." + github_mapping: + repository: "MeekPhills/citewire" + branch: "agent/citewire-orchestration-handoff" + pull_request: null + status: "No dedicated GitHub issue or pull request exists yet; a focused draft PR is required before this artifact is merged." + linear_mapping: + issue: "KAR-66" + status: "In Progress" + role: "Program parent" + claude_execution_tier: "Fable L0 master orchestrator" + independent_reviewer: "Terra work-graph reviewer" + integration_owner: "Fable L0 master orchestrator" + first_safe_action: "Read the durable artifacts, validate their YAML and references, then inspect the exact diff before any commit." + escalation_condition: "Stop if any artifact introduces a secret, a private transcript, a conflicting source-of-truth claim, or an unverified external-state assertion." + + - id: "WS-002" + parent_cluster: "Canonical Citewire identity, authority, and public release" + objective: "Obtain an explicit, authenticated owner decision for Citewire's canonical GitHub organization/repository, npm identity, MCP Registry identity, citewire.org authority, and legacy-repository disposition." + priority: "P0" + status: "blocked" + current_verified_state: + claim_status: "Verified" + state: "Citewire Community remains MeekPhills/citewire; citewire.org serves a parked page over HTTP and its HTTPS TLS handshake fails. No authenticated authority proof, canonical-identity decision, repository transfer, archive, DNS change, or deployment is recorded." + evidence: ["fresh HTTP/TLS observation on 2026-08-15", "GitHub issue #3", "Linear KAR-67"] + production_readiness_category: "identity, ownership, domain, and release authority" + risk: + level: "critical" + statement: "An incorrect canonical identity or unproven authority can make links, immutable packages, registry records, and repository history permanently inconsistent." + complexity: "high" + uncertainty: "high" + repository: "/Users/luismorrobel/karayagroup/citewire" + exclusive_ownership_paths: + - "/Users/luismorrobel/karayagroup/citewire/docs/canonical-identity-decision.md" + dependencies: ["WS-001"] + dependents: ["WS-003", "WS-004", "WS-005", "WS-013"] + binary_definition_of_done: "Luis records one explicit canonical identity and repository disposition; authenticated authority is independently verified; the decision names the sole allowed public GitHub, npm, MCP Registry, and website identities; no irreversible action is performed without separate exact approval." + acceptance_criteria: + - "The decision says whether MeekPhills/citewire is retained, transferred, or archived after history preservation." + - "The decision names the canonical organization and public repository before metadata, links, or release records change." + - "Authority evidence is retained without credentials." + baseline_checks: + working_directory: "/Users/luismorrobel/karayagroup/citewire" + commands: ["git remote -v", "git log -1 --format=%H", "npm view citewire versions --json"] + focused_implementation_checks: + - "Read-only proof that the selected GitHub organization, domain/DNS account, npm package ownership, and MCP Registry namespace are reachable by the owner." + - "Independent review of exact public names before editing manifest, documentation, or links." + integration_checks: + - "Verify citewire.org resolves over HTTPS only after a separately approved deployment/DNS action." + - "Verify any selected public identity is consistent across Community, Cloud, Openly Useful, and Karaya." + expected_artifact: "/Users/luismorrobel/karayagroup/citewire/docs/canonical-identity-decision.md" + rollback_boundary: "Decision and evidence only until an owner separately approves the chosen external action; no external change is authorized by this stream." + github_mapping: + repository: "MeekPhills/citewire" + issue: "https://github.com/MeekPhills/citewire/issues/3" + status: "open" + linear_mapping: + issue: "KAR-67" + status: "Todo" + url: "https://linear.app/lgam/issue/KAR-67/citewire-canonical-identity-history-migration-website-and-release" + claude_execution_tier: "Fable L1 identity-and-release orchestrator with Opus authority review" + independent_reviewer: "Opus release and identity reviewer" + integration_owner: "Fable L0 master orchestrator" + first_safe_action: "Request the explicit owner decision and read-only authenticated authority evidence; do not create, transfer, archive, deploy, or change DNS." + escalation_condition: "Stop for an ambiguous identity, unavailable authority, a paid-service decision, any DNS/provider action, or a request to infer repository disposition." + + - id: "WS-003" + parent_cluster: "Canonical Citewire identity, authority, and public release" + objective: "Resolve either a retain-in-place route or an owner-approved, history-preserving canonical repository migration, and verify the selected route before public metadata or immutable release." + priority: "P0" + status: "blocked" + current_verified_state: + claim_status: "Inferred" + state: "The owner requested an Openly Useful public repository ready for open source and forking, while retaining the legacy project as historical. The selected organization, target repository, transfer-versus-mirror mechanism, and archive setting are not decided." + evidence: ["latest owner direction", "GitHub issue #3", "Linear KAR-67"] + production_readiness_category: "repository history, maintainability, and public governance" + risk: + level: "critical" + statement: "A transfer, archive, or rewrite without an approved method can lose discoverability, change package provenance, or break downstream links." + complexity: "high" + uncertainty: "high" + repository: "/Users/luismorrobel/karayagroup/citewire" + exclusive_ownership_paths: + - "/Users/luismorrobel/karayagroup/citewire/docs/history-migration-runbook.md" + - "/private/tmp/citewire-history-verification-clone" + dependencies: ["WS-002"] + dependents: ["WS-008"] + binary_definition_of_done: "Phase A records the owner-selected retain-in-place or move route. For retain-in-place, canonical refs and legacy disposition are explicitly recorded and reverified. For a move, Phase B executes only under a separate exact owner approval, preserves full verified history, validates source/destination refs through an isolated fresh clone, records legacy disposition, and proves rollback before public metadata or release action. A plan alone does not unblock WS-008." + acceptance_criteria: + - "No force-push, history rewrite, repository deletion, or archive occurs without exact owner approval." + - "The chosen method preserves commit reachability and the destination's default branch policy." + - "Existing PRs, npm provenance, registry references, and downstream links are explicitly reconciled." + - "WS-003 completes only after the selected route itself is verified: recorded retain-in-place state or independently checked owner-approved migration execution." + baseline_checks: + working_directory: "/Users/luismorrobel/karayagroup/citewire" + commands: ["git fsck --full", "git log --all --decorate --oneline", "git remote -v"] + focused_implementation_checks: + - "Compare commit counts and named release-candidate commits before and after the approved operation." + - "Clone the selected destination into an isolated temporary directory and verify refs and remotes." + integration_checks: + - "Re-verify PR #1, PR #2, Openly Useful PR #8, Karaya PR #17, npm provenance, and documentation URLs against the chosen identity." + expected_artifact: "/Users/luismorrobel/karayagroup/citewire/docs/history-migration-runbook.md" + rollback_boundary: "No active remote/ref mutation until a dry-run plan and separate owner approval exist; preserve the legacy remote and isolated verified clone until the owner accepts the result." + github_mapping: + repository: "MeekPhills/citewire" + issue: "https://github.com/MeekPhills/citewire/issues/3" + status: "open; same composite identity issue as WS-002" + linear_mapping: + issue: "KAR-67" + status: "Todo" + claude_execution_tier: "Opus cross-repository migration owner under Fable L1 identity-and-release orchestration" + independent_reviewer: "Opus git-history reviewer" + integration_owner: "Fable L0 master orchestrator" + first_safe_action: "Produce a read-only source/destination/ref inventory after WS-002; do not alter remotes or repository settings." + escalation_condition: "Stop if the owner has not selected the destination or legacy disposition, or if a command would rewrite history, transfer, archive, or delete a repository." + + - id: "WS-004" + parent_cluster: "Canonical Citewire identity, authority, and public release" + objective: "Re-verify the existing Community 0.2.0 candidate and reconcile its package, MCP, provider, documentation, security, and release metadata with the selected canonical identity before immutable release." + priority: "P0" + status: "completed_but_reverification_required" + current_verified_state: + claim_status: "Verified" + state: "Draft PR #1 is mergeable from agent/citewire-product-launch at 10aee95ac95bb437b4607723cd20fa5c8f9d1879. Fresh stacked-branch verification passed 70/70 committed tests, 5/5 release checks, package inspection, and diff/secret checks; fresh GitHub reads show Node 18/22 green on PR #1. Identity-sensitive re-verification remains required after WS-002 and before release action." + evidence: ["fresh local committed-suite verification on 2026-08-15", "GitHub PR #1 and CI metadata on 2026-08-15"] + production_readiness_category: "package correctness, security, protocol compatibility, and release preflight" + risk: + level: "high" + statement: "A stale candidate could publish invalid immutable metadata or move provider conditions into the wrong public identity." + complexity: "medium" + uncertainty: "medium" + repository: "/Users/luismorrobel/karayagroup/citewire" + exclusive_ownership_paths: + - "/Users/luismorrobel/karayagroup/citewire/package.json" + - "/Users/luismorrobel/karayagroup/citewire/package-lock.json" + - "/Users/luismorrobel/karayagroup/citewire/server.json" + - "/Users/luismorrobel/karayagroup/citewire/src/" + - "/Users/luismorrobel/karayagroup/citewire/test/" + - "/Users/luismorrobel/karayagroup/citewire/docs/providers.md" + - "/Users/luismorrobel/karayagroup/citewire/docs/releasing.md" + - "/Users/luismorrobel/karayagroup/citewire/.github/workflows/release.yml" + dependencies: ["WS-002"] + dependents: ["WS-005", "WS-008"] + binary_definition_of_done: "The exact candidate passes clean isolated install, committed Community tests, release metadata checks, syntax checks, package inspection, secret scan, and Node 18/22 CI; all public identity fields match the owner-approved canonical decision; the PR remains draft unless separately approved." + acceptance_criteria: + - "Community remains zero-dependency, ESM, Node 18+, provider-disabled-by-default, and provider-neutral." + - "No Karaya editorial policy, credentials, source configuration, or redactions enter Community." + - "package.json, server.json, release workflow, SECURITY.md, SUPPORT.md, docs, and changelog agree on public identity and version." + baseline_checks: + working_directory: "/Users/luismorrobel/karayagroup/citewire" + commands: ["npm ci --cache /private/tmp/citewire-npm-cache", "npm test", "npm run release:check", "npm pack --dry-run --json", "git diff --check"] + focused_implementation_checks: + - "Run committed HTTP, stdio, RPC, provider, platform, and release-metadata suites." + - "Validate server.json with the documented MCP publisher preflight without publishing." + - "Search candidate diff and tracked files for secrets before any release action." + integration_checks: + - "Confirm PR #1 remains draft, mergeable, and green on Node 18 and 22." + - "Confirm Cloud's immutable archive pin points to this exact reviewed candidate until WS-010." + expected_artifact: "/Users/luismorrobel/karayagroup/citewire/docs/community-release-preflight-2026-08-15.md" + rollback_boundary: "Revert only the focused candidate/preflight commit before merge; do not tag, publish, release, or submit a registry record." + github_mapping: + repository: "MeekPhills/citewire" + pull_request: "https://github.com/MeekPhills/citewire/pull/1" + issue: "https://github.com/MeekPhills/citewire/issues/3" + status: "open draft PR; open identity issue" + linear_mapping: + issue: "KAR-67" + status: "Todo" + claude_execution_tier: "Opus release-preflight owner under Fable L1 identity-and-release orchestration" + independent_reviewer: "Opus security and MCP compatibility reviewer" + integration_owner: "Fable L0 master orchestrator" + first_safe_action: "Run the committed preflight suite against the exact PR #1 head after WS-002; do not change release metadata before the identity decision." + escalation_condition: "Stop on any failed test, unexpected package file, public-contract regression, secret, version collision, or release-action prompt." + + - id: "WS-005" + parent_cluster: "Canonical Citewire identity, authority, and public release" + objective: "Make the landing implementation and citewire.org canonical identity converge only after authority and HTTPS deployment are explicitly approved." + priority: "P0" + status: "blocked" + current_verified_state: + claim_status: "Verified" + state: "Draft PR #2 is mergeable from agent/citewire-landing-site at ff09b68ed811531eb0ca630b65daeaf06cc3304c. citewire.org returns a parked page over HTTP; HTTPS fails TLS." + evidence: ["GitHub PR #2 metadata on 2026-08-15", "fresh citewire.org HTTP/TLS observation on 2026-08-15"] + production_readiness_category: "website correctness, HTTPS, DNS, and public discoverability" + risk: + level: "critical" + statement: "Merging or linking a landing page before the canonical secure destination is live could direct users to a parked or insecure page." + complexity: "high" + uncertainty: "high" + repository: "/Users/luismorrobel/karayagroup/citewire" + exclusive_ownership_paths: + - "/Users/luismorrobel/karayagroup/citewire/site/index.html" + - "/Users/luismorrobel/karayagroup/citewire/site/styles.css" + - "/Users/luismorrobel/karayagroup/citewire/site/styles/" + - "/Users/luismorrobel/karayagroup/citewire/site/brand/" + - "/Users/luismorrobel/karayagroup/citewire/site/vercel.json" + - "/Users/luismorrobel/karayagroup/citewire/test/site.test.mjs" + dependencies: ["WS-002", "WS-004"] + dependents: ["WS-006", "WS-007"] + binary_definition_of_done: "The owner-approved canonical website is deployed at citewire.org with valid HTTPS, expected page content and canonical URLs, no parked response, and independent HTTP/TLS/browser evidence; PR #2 is merged only with separate owner approval." + acceptance_criteria: + - "The public landing reflects the selected repository/organization and does not claim unavailable service, publication, registry acceptance, or deployment." + - "HTTP redirects safely to HTTPS or serves the owner-approved canonical behavior; HTTPS has a valid certificate and correct host." + - "The committed landing regression suite and deployment smoke checks pass." + baseline_checks: + working_directory: "/Users/luismorrobel/karayagroup/citewire" + commands: ["npm test", "node --test test/site.test.mjs", "git diff --check"] + focused_implementation_checks: + - "Run direct HTTP and TLS checks against citewire.org after an approved deployment/DNS action." + - "Verify title, canonical URL, robots, sitemap, and outbound links from the deployed response." + integration_checks: + - "Confirm PR #2 remains draft, mergeable, and green before any owner-approved merge." + - "Only then re-check the exact targets in Openly Useful PR #8 and Karaya PR #17." + expected_artifact: "/Users/luismorrobel/karayagroup/citewire/site/README.md" + rollback_boundary: "Revert the hosting/DNS deployment through the provider only after explicit owner approval; no automatic fallback, DNS mutation, or preview disclosure." + github_mapping: + repository: "MeekPhills/citewire" + pull_request: "https://github.com/MeekPhills/citewire/pull/2" + issue: "https://github.com/MeekPhills/citewire/issues/3" + status: "open draft PR; open identity issue" + linear_mapping: + issue: "KAR-67" + status: "Todo" + claude_execution_tier: "Fable L1 identity-and-release orchestrator with Opus deployment review" + independent_reviewer: "Opus web deployment and identity reviewer" + integration_owner: "Fable L0 master orchestrator" + first_safe_action: "Compare the draft landing's declared canonical URLs with the owner-selected identity and collect read-only DNS/TLS evidence." + escalation_condition: "Stop for an absent authority proof, DNS/provider activation, a certificate failure, a paid-service choice, or any deploy/merge action without exact owner approval." + + - id: "WS-006" + parent_cluster: "Downstream Citewire web integrations" + objective: "Safely land the Openly Useful Citewire link only after the canonical live HTTPS destination is independently verified." + priority: "P1" + status: "blocked" + current_verified_state: + claim_status: "Verified" + state: "Openly Useful draft PR #8 is mergeable at 28af5c7a5fdd0425ced2fe45f5c50e05946758de and changes the Citewire link plus site validation; it remains draft because citewire.org is parked and HTTPS fails." + evidence: ["GitHub PR #8 metadata on 2026-08-15", "Linear KAR-67"] + production_readiness_category: "downstream public-link integrity" + risk: + level: "high" + statement: "A merged downstream link can send users to the parked or insecure Citewire domain." + complexity: "low" + uncertainty: "low" + repository: "/Users/luismorrobel/karayagroup/openlyuseful.org" + exclusive_ownership_paths: + - "/Users/luismorrobel/karayagroup/openlyuseful.org/index.html" + - "/Users/luismorrobel/karayagroup/openlyuseful.org/scripts/validate_site.py" + dependencies: ["WS-005"] + dependents: [] + binary_definition_of_done: "PR #8's exact two-file diff passes the committed validation, points at the owner-approved live HTTPS Citewire destination, remains factual, and is merged only with separate owner approval." + acceptance_criteria: + - "The link uses the canonical URL selected in WS-002 and verified in WS-005." + - "No launch, registry, service, or availability claim exceeds verified state." + - "The diff remains limited to index.html and scripts/validate_site.py unless independently re-scoped." + baseline_checks: + working_directory: "/Users/luismorrobel/karayagroup/openlyuseful.org" + commands: ["python3 scripts/validate_site.py", "git diff --check"] + focused_implementation_checks: + - "Resolve and fetch the exact destination over HTTPS." + - "Run the committed Openly Useful site validation without adding temporary test artifacts." + integration_checks: + - "Reconfirm PR #8 draft/mergeable state and Vercel preview status after the target is live." + expected_artifact: "/Users/luismorrobel/karayagroup/openlyuseful.org/index.html" + rollback_boundary: "Revert the focused link commit or use the host's prior deployment only with owner approval; do not redirect to an unverified alternative." + github_mapping: + repository: "Openly-Useful/openlyuseful.org" + pull_request: "https://github.com/Openly-Useful/openlyuseful.org/pull/8" + related_issue: "https://github.com/MeekPhills/citewire/issues/3" + status: "open draft PR" + linear_mapping: + issue: "KAR-67" + status: "Todo" + claude_execution_tier: "Sonnet bounded downstream-link owner under Fable L1 identity-and-release orchestration" + independent_reviewer: "Luna link and exact-diff reviewer" + integration_owner: "Fable L0 master orchestrator" + first_safe_action: "Re-run the committed validator and verify the destination with direct HTTPS only after WS-005 succeeds." + escalation_condition: "Stop if citewire.org is not valid HTTPS, the diff expands, CI fails, or a merge/deploy action lacks owner approval." + + - id: "WS-007" + parent_cluster: "Downstream Citewire web integrations" + objective: "Safely land the Karaya Industry News citewire.org bridge only after the canonical live HTTPS destination and approved visible copy are independently verified." + priority: "P1" + status: "blocked" + current_verified_state: + claim_status: "Verified" + state: "Karaya draft PR #17 is mergeable at 3a90e43d8797af9e7c0bc02d4c1ae6f51ebd19a6 and contains the downstream Citewire link, bridge documentation, and a committed compliance regression; it remains draft because citewire.org is parked and HTTPS fails." + evidence: ["GitHub PR #17 metadata on 2026-08-15", "fresh citewire.org HTTP/TLS observation on 2026-08-15"] + production_readiness_category: "public-copy integrity, downstream link integrity, and Karaya compliance" + risk: + level: "high" + statement: "A public Karaya link to a noncanonical or broken site is a visible correctness failure; unapproved visible wording would bypass the read-aloud gate." + complexity: "medium" + uncertainty: "medium" + repository: "/Users/luismorrobel/karayagroup/karayagroup-citewire-site-link" + exclusive_ownership_paths: + - "/Users/luismorrobel/karayagroup/karayagroup-citewire-site-link/docs/citewire-product-bridge.md" + - "/Users/luismorrobel/karayagroup/karayagroup-citewire-site-link/site/src/pages/industry-news/about.astro" + - "/Users/luismorrobel/karayagroup/karayagroup-citewire-site-link/site/test/news-compliance.test.mjs" + dependencies: ["WS-005"] + dependents: [] + binary_definition_of_done: "PR #17's exact three-file diff passes the committed Karaya tests and build, the target is live HTTPS, Luis approves every changed visible word by read-aloud, and the PR is merged only with separate owner approval." + acceptance_criteria: + - "Karaya's custom editorial policy, data, credentials, voice, source rights, redactions, and approval gates stay outside the Community package." + - "No owner screenshots under karayagroup-brand/site/handoff/redesign/ are changed, staged, cleaned, or included." + - "The bridge does not make unverified Citewire deployment, registry, or availability claims." + baseline_checks: + working_directory: "/Users/luismorrobel/karayagroup/karayagroup-citewire-site-link/site" + commands: ["npm test", "npm run build", "git -C .. diff --check"] + focused_implementation_checks: + - "Run site/test/news-compliance.test.mjs and the normal MCP regression suite." + - "Fetch the exact Citewire target over HTTPS and inspect rendered visible copy before asking for read-aloud approval." + integration_checks: + - "Confirm PR #17 remains draft, mergeable, and green after rebasing only if independently required." + - "Confirm a production smoke test only after a separately approved merge and automatic deployment." + expected_artifact: "/Users/luismorrobel/karayagroup/karayagroup-citewire-site-link/docs/citewire-product-bridge.md" + rollback_boundary: "Revert only the bridge commit after owner approval; never touch the protected owner screenshot worktree." + github_mapping: + repository: "MeekPhills/karayagroup" + pull_request: "https://github.com/MeekPhills/karayagroup/pull/17" + related_issue: "https://github.com/MeekPhills/citewire/issues/3" + status: "open draft PR" + linear_mapping: + issue: "KAR-67" + status: "Todo" + claude_execution_tier: "Sonnet bounded Karaya bridge owner under Fable L1 identity-and-release orchestration" + independent_reviewer: "Opus Karaya copy/compliance reviewer" + integration_owner: "Fable L0 master orchestrator" + first_safe_action: "Re-run existing compliance and build checks; defer any visible copy review until WS-005 verifies the target." + escalation_condition: "Stop if visible copy changes, the target lacks HTTPS, screenshots appear in the diff, a test fails, or approval/merge/deploy authority is absent." + + - id: "WS-008" + parent_cluster: "Canonical Citewire identity, authority, and public release" + objective: "Complete the owner-gated immutable Community release and registry sequence only after identity, history, candidate, and release-environment preflight are independently verified." + priority: "P0" + status: "blocked" + current_verified_state: + claim_status: "Verified" + state: "citewire@0.1.0 is the only published npm version; 0.2.0 is unpublished. No release environment, tag, GitHub release, npm 0.2.0 publication, MCP Registry record, or catalog entry is verified." + evidence: ["CITEWIRE_CODEX_HANDOFF.md", "docs/releasing.md", "GitHub issue #3", "Linear KAR-67"] + production_readiness_category: "immutable release, supply chain, registry, and rollback" + risk: + level: "critical" + statement: "npm packages and public registry records are immutable or difficult to correct; incorrect release identity cannot be repaired by overwriting." + complexity: "high" + uncertainty: "medium" + repository: "/Users/luismorrobel/karayagroup/citewire" + exclusive_ownership_paths: + - "/Users/luismorrobel/karayagroup/citewire/.github/workflows/release.yml" + - "/Users/luismorrobel/karayagroup/citewire/package.json" + - "/Users/luismorrobel/karayagroup/citewire/server.json" + - "/Users/luismorrobel/karayagroup/citewire/CHANGELOG.md" + - "/Users/luismorrobel/karayagroup/citewire/docs/releasing.md" + - "/Users/luismorrobel/karayagroup/citewire/docs/distribution.md" + dependencies: ["WS-003", "WS-004"] + dependents: ["WS-010"] + binary_definition_of_done: "A separate explicit owner approval authorizes each irreversible step; the approved main commit is tagged once, a manual preflight runs with publication toggles false, npm publication is independently verified with provenance, the MCP Registry entry is independently verified, and a GitHub release occurs only after both public records are correct." + acceptance_criteria: + - "GitHub release environment has the owner-required reviewer and v* tag restriction." + - "npm trusted publishing points to the selected canonical repository, release workflow, and environment." + - "Private vulnerability reporting and maintenance contacts are configured according to the approved identity." + - "The release workflow refuses an occupied version and package/registry identities agree exactly." + baseline_checks: + working_directory: "/Users/luismorrobel/karayagroup/citewire" + commands: ["npm test", "npm run release:check", "npm pack --dry-run --json", "npm view citewire@0.2.0 version", "git diff --check"] + focused_implementation_checks: + - "Run the manual release workflow preflight with both publication toggles false from the exact approved tag." + - "After separately approved publication, verify npm version, mcpName, integrity, provenance, and the official MCP Registry record." + integration_checks: + - "Verify Cloud's transition plan only after npm publishes the exact approved version." + - "Verify no downstream URL or release documentation points to an obsolete identity." + expected_artifact: "/Users/luismorrobel/karayagroup/citewire/docs/distribution.md" + rollback_boundary: "Before publication, revert the focused release change; after publication, do not overwrite or retag, instead use the documented deprecation/fixed-patch path under separate owner approval." + github_mapping: + repository: "MeekPhills/citewire" + pull_request: "https://github.com/MeekPhills/citewire/pull/1" + issue: "https://github.com/MeekPhills/citewire/issues/3" + status: "open draft candidate and open identity/release issue" + linear_mapping: + issue: "KAR-67" + status: "Todo" + claude_execution_tier: "Fable L1 identity-and-release orchestrator with Opus release owner" + independent_reviewer: "Opus supply-chain and registry reviewer" + integration_owner: "Fable L0 master orchestrator" + first_safe_action: "Verify all owner setup entries and run no-publication preflight only after an exact approval for the selected tag/ref." + escalation_condition: "Stop on any requested merge, tag, publish, GitHub release, registry submission, version collision, missing release protection, or unsupported provenance evidence." + + - id: "WS-009" + parent_cluster: "Citewire Cloud private-alpha foundation" + objective: "Reconcile Cloud documentation with the verified immutable Community archive pin and preserve the explicit private-alpha owner gates." + priority: "P1" + status: "completed_freshly_verified" + current_verified_state: + claim_status: "Verified" + state: "Cloud documentation was reconciled in commit 69068275ca0e332e36304533aa0f6b5d2e291405 on agent/cloud-alpha-http. The focused four-file docs-only diff updates README.md plus docs/ALPHA-DEPLOYMENT-CHECKLIST.md, docs/ARCHITECTURE.md, and docs/OWNER-DECISIONS.md from 6c89b6ea4c8b080fe2ffa166c41eb3113059c894 to 10aee95ac95bb437b4607723cd20fa5c8f9d1879." + evidence: ["fresh git show and status inspection on 2026-08-15", "isolated install, syntax/diff checks, and 15/15 committed tests reported passed"] + production_readiness_category: "operational documentation and dependency traceability" + risk: + level: "medium" + statement: "Stale operator documentation can cause a reviewer to validate, replace, or deploy against the wrong Community candidate." + complexity: "low" + uncertainty: "low" + repository: "/Users/luismorrobel/karayagroup/citewire-cloud" + exclusive_ownership_paths: + - "/Users/luismorrobel/karayagroup/citewire-cloud/README.md" + - "/Users/luismorrobel/karayagroup/citewire-cloud/docs/ARCHITECTURE.md" + - "/Users/luismorrobel/karayagroup/citewire-cloud/docs/OWNER-DECISIONS.md" + - "/Users/luismorrobel/karayagroup/citewire-cloud/docs/ALPHA-DEPLOYMENT-CHECKLIST.md" + dependencies: ["WS-001"] + dependents: ["WS-011"] + binary_definition_of_done: "Every Cloud document names the verified 10aee95 archive pin or accurately states its replacement condition; no document claims deployment, public availability, or approved operator decisions; committed documentation checks pass." + acceptance_criteria: + - "The archive pin, its integrity evidence, and the later npm replacement condition agree across all Cloud docs." + - "Account isolation, fail-closed composition, owner gates, and no-deployment posture remain explicit." + - "No credential, participant, customer, or provider detail enters documentation." + baseline_checks: + working_directory: "/Users/luismorrobel/karayagroup/citewire-cloud" + commands: ["npm test", "npm run check", "git diff --check"] + focused_implementation_checks: + - "Search all tracked Cloud documentation for 6c89b6ea4c8b080fe2ffa166c41eb3113059c894 and reconcile every occurrence." + - "Review docs against package.json and package-lock.json only; do not change runtime behavior." + integration_checks: + - "Independent reviewer confirms no documentation implies Community publication or Cloud deployment." + - "Reconfirm Cloud PR #1 remains draft and does not absorb an unrelated documentation rewrite without review." + expected_artifact: "/Users/luismorrobel/karayagroup/citewire-cloud/docs/ALPHA-DEPLOYMENT-CHECKLIST.md" + rollback_boundary: "Revert the focused documentation commit; no runtime, provider, deployment, or registry state changes occur." + github_mapping: + repository: "MeekPhills/citewire-cloud" + pull_request: "https://github.com/MeekPhills/citewire-cloud/pull/1" + head: "69068275ca0e332e36304533aa0f6b5d2e291405" + status: "open draft private-alpha candidate; the focused documentation reconciliation is included and the PR remains undeployed" + linear_mapping: + issue: "KAR-66" + status: "In Progress" + role: "Program-level Cloud documentation follow-up; no distinct Linear child issue exists" + claude_execution_tier: "Sonnet bounded documentation owner under Fable L1 Cloud orchestration" + independent_reviewer: "Luna exact-pin and documentation reviewer" + integration_owner: "Fable L0 master orchestrator" + first_safe_action: "Keep the verified docs-only commit in the draft PR and re-check its exact four-file boundary if the PR changes." + escalation_condition: "Stop if a document change asks for a provider, participant, credential, domain, paid service, deployment, or runtime behavior decision." + + - id: "WS-010" + parent_cluster: "Citewire Cloud private-alpha foundation" + objective: "Replace the temporary immutable Community archive pin with the verified published Community npm range only after WS-008 completes and exact package provenance is independently verified." + priority: "P0" + status: "blocked" + current_verified_state: + claim_status: "Verified" + state: "Cloud currently imports Community from the exact 10aee95 archive and has committed regression coverage for direct HTTP and concurrent account isolation. The npm 0.2.0 release required for the documented range replacement is not published." + evidence: ["citewire-cloud/package.json and package-lock.json", "CITEWIRE_CODEX_HANDOFF.md", "docs/ALPHA-DEPLOYMENT-CHECKLIST.md"] + production_readiness_category: "dependency provenance, compatibility, and account isolation" + risk: + level: "critical" + statement: "Prematurely using a package range can consume an absent, wrong, or unverified immutable artifact and weaken the Community-to-Cloud compatibility boundary." + complexity: "medium" + uncertainty: "medium" + repository: "/Users/luismorrobel/karayagroup/citewire-cloud" + exclusive_ownership_paths: + - "/Users/luismorrobel/karayagroup/citewire-cloud/package.json" + - "/Users/luismorrobel/karayagroup/citewire-cloud/package-lock.json" + dependencies: ["WS-008"] + dependents: [] + binary_definition_of_done: "npm independently reports the approved Community version with expected mcpName, integrity, and provenance; Cloud package.json and lockfile use the documented npm range; clean isolated install, full committed tests, syntax checks, direct HTTP smoke, concurrent account-isolation smoke, diff check, and Node 18/22 CI pass; the PR remains draft and undeployed." + acceptance_criteria: + - "Community remains a one-way import and Cloud does not copy or fork its transport implementation." + - "Authentication precedes MCP dispatch; request account context remains immutable and filters unexpected caller fields." + - "Stateful entitled tools remain fail-closed when services are absent." + baseline_checks: + working_directory: "/Users/luismorrobel/karayagroup/citewire-cloud" + commands: ["npm ci --cache /private/tmp/citewire-cloud-npm-cache", "npm test", "npm run check", "git diff --check"] + focused_implementation_checks: + - "Run committed direct HTTP smoke tests for missing, malformed, invalid, and valid bearer handling." + - "Run committed concurrent account-isolation regression tests; do not create ad hoc test artifacts." + - "Inspect package-lock integrity and the Community import boundary." + integration_checks: + - "Confirm GitHub Node 18/22 CI is green on the exact draft PR head." + - "Confirm no deployment, provider activation, persistence, billing, OAuth, quota, or external account mutation occurred." + expected_artifact: "/Users/luismorrobel/karayagroup/citewire-cloud/package-lock.json" + rollback_boundary: "Revert the focused dependency change before merge; retain the exact archive pin until the published replacement passes all checks." + github_mapping: + repository: "MeekPhills/citewire-cloud" + pull_request: "https://github.com/MeekPhills/citewire-cloud/pull/1" + status: "open draft candidate; the npm-range replacement requires a separate reviewed change after publication" + linear_mapping: + issue: "KAR-66" + status: "In Progress" + role: "Program-level Cloud compatibility stream; no distinct Linear child issue exists" + claude_execution_tier: "Opus dependency and account-isolation owner under Fable L1 Cloud orchestration" + independent_reviewer: "Terra account-isolation and supply-chain reviewer" + integration_owner: "Fable L0 master orchestrator" + first_safe_action: "Read npm provenance for the exact released Community version only after WS-008; leave the archive pin untouched until that evidence exists." + escalation_condition: "Stop on absent/wrong provenance, a failed test, unexpected lockfile diff, secret, npm publication request, deploy request, or account-boundary regression." + + - id: "WS-011" + parent_cluster: "Citewire Cloud private-alpha foundation" + objective: "Resolve the documented private-alpha readiness gaps without deploying, choosing paid services, or expanding the account/data surface before owner authorization." + priority: "P1" + status: "blocked" + current_verified_state: + claim_status: "Verified" + state: "Cloud draft PR #1 is mergeable at 69068275ca0e332e36304533aa0f6b5d2e291405 with fresh clean-install, direct HTTP, concurrent account-isolation, and Node 18/22 evidence while retaining the exact 10aee95 archive pin. It has zero verified deployments and lacks owner decisions for participants, credentials, domain/origin policy, persistence, retention, OAuth, billing, quotas, support, terms, privacy, and deployment. This archive-pinned readiness path is separate from the later WS-010 npm-range migration." + evidence: ["GitHub PR #1 metadata on 2026-08-15", "CITEWIRE_CODEX_HANDOFF.md", "docs/OWNER-DECISIONS.md"] + production_readiness_category: "security, privacy, operations, and private-alpha governance" + risk: + level: "critical" + statement: "A private-alpha deployment without identities, revocation, retention, origin, and operational decisions can expose tenant data or create unsupported commitments." + complexity: "high" + uncertainty: "high" + repository: "/Users/luismorrobel/karayagroup/citewire-cloud" + exclusive_ownership_paths: + - "/Users/luismorrobel/karayagroup/citewire-cloud/.env.example" + - "/Users/luismorrobel/karayagroup/citewire-cloud/api/mcp.js" + - "/Users/luismorrobel/karayagroup/citewire-cloud/src/auth.js" + - "/Users/luismorrobel/karayagroup/citewire-cloud/src/http.js" + - "/Users/luismorrobel/karayagroup/citewire-cloud/src/plans.js" + - "/Users/luismorrobel/karayagroup/citewire-cloud/docs/OWNER-DECISIONS.md" + - "/Users/luismorrobel/karayagroup/citewire-cloud/docs/ALPHA-DEPLOYMENT-CHECKLIST.md" + dependencies: ["WS-009"] + dependents: [] + binary_definition_of_done: "The owner has approved the exact private-alpha operating decisions, a reviewed implementation satisfies the documented fail-closed and isolation checks, and a separate explicit deployment approval governs any deployment; no public availability claim is made." + acceptance_criteria: + - "Credentials are generated and distributed outside the repository; only intended non-secret hashes/configuration are used." + - "Origin policy, proxy duplicate-Authorization handling, account isolation, error behavior, revocation, retention, and incident handling are explicit and tested." + - "Persistence, billing, OAuth, provider activation, and paid infrastructure remain absent unless separately selected and approved." + baseline_checks: + working_directory: "/Users/luismorrobel/karayagroup/citewire-cloud" + commands: ["npm ci --cache /private/tmp/citewire-cloud-npm-cache", "npm test", "npm run check", "git diff --check"] + focused_implementation_checks: + - "Use committed HTTP and account-isolation regressions plus static secret scan." + - "Review exact configured Origin behavior and duplicate Authorization proxy invariant without writing real credentials." + integration_checks: + - "Verify exact deployment identifier, environment owner, and rollback procedure only after a separate deployment approval." + - "Verify Cloud remains private and undeployed before that approval." + expected_artifact: "/Users/luismorrobel/karayagroup/citewire-cloud/docs/ALPHA-DEPLOYMENT-CHECKLIST.md" + rollback_boundary: "No deployment or service activation is within this stream without an owner-approved rollback; code changes revert by focused commit only." + github_mapping: + repository: "MeekPhills/citewire-cloud" + pull_request: "https://github.com/MeekPhills/citewire-cloud/pull/1" + status: "open draft candidate" + linear_mapping: + issue: "KAR-66" + status: "In Progress" + role: "Program-level Cloud private-alpha stream; no distinct Linear child issue exists" + claude_execution_tier: "Opus security, privacy, and deployment-readiness owner under Fable L1 Cloud orchestration" + independent_reviewer: "Opus tenant-boundary and operational-risk reviewer" + integration_owner: "Fable L0 master orchestrator" + first_safe_action: "Convert unmade owner decisions into an explicit approval checklist and independently re-run committed isolation tests; do not deploy." + escalation_condition: "Stop for a paid-service decision, credential delivery, provider activation, deployment, retention decision, billing/OAuth choice, privacy/legal commitment, or unsupported account-boundary behavior." + + - id: "WS-012" + parent_cluster: "Karaya production truth, corpus integrity, and automated editorial controls" + objective: "Establish dated read-only production truth and prepare an owner-reviewed, rights-aware remediation decision for historical Industry News corpus drift." + priority: "P0" + status: "blocked" + current_verified_state: + claim_status: "Verified" + state: "Karaya Industry News, About, nine-topic API, and public MCP are live. The public JSON feed has 50 items; 16 exceed the current 480-character provisional cap and one retains a POWER Magazine syndication trailer. Current code strips known boilerplate and applies the cap, so the observed concern is stored-corpus drift rather than proof the current ingest gate is bypassed. Migrations 0007-0010, live source/circuit-breaker state, cron health, queue age, and effective source count are unknown or contradictory." + evidence: ["Linear KAR-69", "GitHub issue #18", "fresh Karaya HTTP/MCP smoke observation on 2026-08-15"] + production_readiness_category: "data integrity, rights compliance, observability, and rollback planning" + risk: + level: "critical" + statement: "Changing stored public content, sources, or migrations without evidence and an owner-approved rights-aware plan could alter published material or violate source obligations." + complexity: "high" + uncertainty: "high" + repository: "/Users/luismorrobel/karayagroup/karayagroup-production-audit" + exclusive_ownership_paths: + - "/Users/luismorrobel/karayagroup/karayagroup-production-audit/docs/production-truth-2026-08-15.md" + dependencies: ["WS-001"] + dependents: ["WS-014", "WS-015", "WS-016"] + binary_definition_of_done: "A dated read-only evidence packet covers deployed commit, migration history, source state, circuit breakers, cron health, queue age, effective source count, affected row counts, and exact policy drift; it offers rights/revision-aware remediation options with no database, source, provider, or public-content mutation." + acceptance_criteria: + - "No database mutation, migration, source toggle, provider activation, or silent historical rewrite occurs." + - "Every observed row class is reproducible from a documented read-only query or public response." + - "The response distinguishes current ingest behavior from historical stored-corpus drift." + baseline_checks: + working_directory: "/Users/luismorrobel/karayagroup/karayagroup-production-audit/site" + commands: ["npm test", "npm run build", "node --test test/mcp.test.mjs test/news-compliance.test.mjs", "git -C .. diff --check"] + focused_implementation_checks: + - "Use only read-only production metadata and public feed/API/MCP requests." + - "Run the committed ingestion, source, publish-policy, news API, news page, and compliance regressions." + integration_checks: + - "Repeat routine HTTP smokes for /, /industry-news, /industry-news/about, /api/v1/news/topics, and MCP initialize." + - "Independently reconcile observed data with deployed code and repository migration inventory." + expected_artifact: "/Users/luismorrobel/karayagroup/karayagroup-production-audit/docs/production-truth-2026-08-15.md" + rollback_boundary: "Read-only evidence only; any later data change requires a separate approved, reversible plan and snapshot/rollback procedure." + github_mapping: + repository: "MeekPhills/karayagroup" + issue: "https://github.com/MeekPhills/karayagroup/issues/18" + status: "open" + linear_mapping: + issue: "KAR-69" + status: "Todo" + url: "https://linear.app/lgam/issue/KAR-69/karaya-production-truth-and-corpus-policy-integrity" + claude_execution_tier: "Opus production-data and rights-integrity owner under Fable L1 Karaya orchestration" + independent_reviewer: "Opus data-integrity and rights reviewer" + integration_owner: "Fable L0 master orchestrator" + first_safe_action: "Level 0 first records a fresh clean isolated worktree created from verified origin/main at the nominated production-audit path; then collect only read-only deployment, migration, source, cron, queue, and corpus evidence. Never use karayagroup-live or karayagroup-brand." + escalation_condition: "Stop for a database write, migration, provider/source activation, corpus rewrite, unapproved access method, secret, or ambiguity about data rights." + + - id: "WS-013" + parent_cluster: "Public Citewire MCP contract and Community resources" + objective: "Design a versioned, backward-compatible public MCP expansion for discovery, source/topic metadata, inclusion explanations, health, and resources without moving Karaya-specific editorial state into Community." + priority: "P1" + status: "planned" + current_verified_state: + claim_status: "Verified" + state: "Community currently exposes news.list, news.get, news.topics, news.about, optional provider tools, stdio, and stateless HTTP. resources/list, resources/read, inclusion tiers, reason tags, and decision traces are absent." + evidence: ["Linear KAR-68", "GitHub issue #4", "Citewire source inventory on 2026-08-15"] + production_readiness_category: "public API compatibility, contract design, and documentation" + risk: + level: "high" + statement: "An unversioned contract expansion can break existing MCP clients or leak Karaya-specific policy into the MIT Community boundary." + complexity: "high" + uncertainty: "medium" + repository: "/Users/luismorrobel/karayagroup/citewire" + exclusive_ownership_paths: + - "/Users/luismorrobel/karayagroup/citewire/docs/platform-contract.md" + - "/Users/luismorrobel/karayagroup/citewire/docs/adr-public-mcp-contract-v1.md" + dependencies: ["WS-002"] + dependents: [] + binary_definition_of_done: "An independently reviewed ADR and compatibility plan define versioning, schemas, resources, rights fields, fixtures, error behavior, stdio/direct-HTTP smoke plan, and explicit exclusions for Karaya state; runtime and test implementation requires a separately approved, serialized implementation stream after WS-004, and no public contract code merges without green committed regressions." + acceptance_criteria: + - "Existing news.* tools and HTTP/stdio behavior remain backward compatible." + - "Any inclusion explanation is provider-neutral and carries no Karaya editorial state, credentials, source configuration, or protected data." + - "Resources enumerate and read predictably with documented errors and bounded content." + baseline_checks: + working_directory: "/Users/luismorrobel/karayagroup/citewire" + commands: ["npm test", "node --test test/rpc.test.mjs test/http.test.mjs test/platform.test.mjs", "git diff --check"] + focused_implementation_checks: + - "Add committed schema/fixture compatibility tests before implementation." + - "Run direct stdio and HTTP protocol smoke tests using committed test helpers." + integration_checks: + - "Review Community boundary against Karaya's independent policy/evaluation architecture." + - "Re-run Cloud compatibility tests after any public transport or tool-contract change." + expected_artifact: "/Users/luismorrobel/karayagroup/citewire/docs/adr-public-mcp-contract-v1.md" + rollback_boundary: "Design/ADR first; later code changes revert by focused commit and must preserve existing protocol behavior." + github_mapping: + repository: "MeekPhills/citewire" + issue: "https://github.com/MeekPhills/citewire/issues/4" + status: "open" + linear_mapping: + issue: "KAR-68" + status: "Todo" + url: "https://linear.app/lgam/issue/KAR-68/citewire-public-mcp-contract-and-resources" + claude_execution_tier: "Opus public-contract owner under Fable L1 Community-MCP orchestration" + independent_reviewer: "Opus MCP compatibility reviewer" + integration_owner: "Fable L0 master orchestrator" + first_safe_action: "Write and independently review the ADR and compatibility matrix before changing a tool, resource, transport, or package version." + escalation_condition: "Stop on an unversioned breaking change, a public-contract ambiguity, a Karaya-specific data/policy leak, or a release/registry action." + + - id: "WS-014" + parent_cluster: "Karaya production truth, corpus integrity, and automated editorial controls" + objective: "Define and prove a deterministic, rights-safe policy/evaluation/shadow state machine for automated editorial assessment without expanding production publication." + priority: "P1" + status: "blocked" + current_verified_state: + claim_status: "Verified" + state: "Current code deterministically quarantines relevance below 0.55, routes 0.55 through 0.8199 to review, and marks 0.82 or higher auto eligible subject to further gates; ingest still writes eligible items as needs_review. Proposed shadow bands are below 0.50 held, 0.50 through 0.5999 adjacent-only with automated agreement, and 0.60 or higher standard candidate. No shadow workflow, durable decision trace, or assessment scheduler exists." + evidence: ["site/api/_lib/ingest/classify.js", "site/api/cron/ingest.js", "Linear KAR-70"] + production_readiness_category: "policy safety, evaluation, auditability, and automated decision controls" + risk: + level: "critical" + statement: "Lowering scores or removing routine review without deterministic replay, audit trails, rights gates, and a global stop path could expand unsafe publication." + complexity: "high" + uncertainty: "high" + repository: "/Users/luismorrobel/karayagroup/karayagroup-production-audit" + exclusive_ownership_paths: + - "/Users/luismorrobel/karayagroup/karayagroup-production-audit/site/api/_lib/ingest/classify.js" + - "/Users/luismorrobel/karayagroup/karayagroup-production-audit/site/api/_lib/ingest/process.js" + - "/Users/luismorrobel/karayagroup/karayagroup-production-audit/site/api/_lib/publish-policy.js" + - "/Users/luismorrobel/karayagroup/karayagroup-production-audit/site/test/ingest.test.mjs" + - "/Users/luismorrobel/karayagroup/karayagroup-production-audit/site/test/ingest-worker.test.mjs" + - "/Users/luismorrobel/karayagroup/karayagroup-production-audit/site/test/publish-policy.test.mjs" + - "/Users/luismorrobel/karayagroup/karayagroup-production-audit/docs/adr-editorial-policy-shadow-state-machine.md" + dependencies: ["WS-012"] + dependents: ["WS-015", "WS-016"] + binary_definition_of_done: "An approved policy/data-contract ADR, deterministic replay fixtures, shadow-only state machine, decision trace schema, rights gates, and assessment criteria pass committed regression tests without changing published-item eligibility or production thresholds." + acceptance_criteria: + - "Shadow bands are configuration-backed and run without changing production publishing." + - "Every automated decision records policy version, input provenance, reason tags, rights/access result, evaluator agreement, and disposition." + - "No raw provider content, provider credential, or unapproved model/cost choice is introduced." + baseline_checks: + working_directory: "/Users/luismorrobel/karayagroup/karayagroup-production-audit/site" + commands: ["npm test", "node --test test/ingest.test.mjs test/ingest-worker.test.mjs test/publish-policy.test.mjs", "npm run build", "git -C .. diff --check"] + focused_implementation_checks: + - "Use committed deterministic fixture/replay tests and no ad hoc test artifacts." + - "Prove shadow outcomes cannot write published status, change source state, or alter historical corpus." + integration_checks: + - "Compare shadow decisions with WS-012 production truth and corpus classifications." + - "Independent review validates rights, policy trace, and global-stop design before WS-015." + - "WS-012 must prove existing schema sufficiency. If a migration, backfill, or configuration write is needed, stop and create a separately approved reversible subtask with snapshot and rollback evidence." + expected_artifact: "/Users/luismorrobel/karayagroup/karayagroup-production-audit/docs/adr-editorial-policy-shadow-state-machine.md" + rollback_boundary: "Keep shadow decisions non-publishing; revert focused policy/fixture commits before any production threshold or source-state change." + github_mapping: + repository: "MeekPhills/karayagroup" + issue: "https://github.com/MeekPhills/karayagroup/issues/19" + status: "open" + linear_mapping: + issue: "KAR-70" + status: "Todo" + url: "https://linear.app/lgam/issue/KAR-70/karaya-automated-editorial-pipeline-adjacent-signals-and-control" + claude_execution_tier: "Opus policy, evaluation, and data-contract owner under Fable L1 Karaya orchestration" + independent_reviewer: "Opus rights-safety and deterministic-replay reviewer" + integration_owner: "Fable L0 master orchestrator" + first_safe_action: "Draft the policy/data-contract ADR and replay matrix from WS-012 evidence; do not change thresholds or publishing behavior." + escalation_condition: "Stop for a production threshold change, automatic publishing, provider/model/cost selection, database migration, source activation, untraceable decision, or failed replay." + + - id: "WS-015" + parent_cluster: "Karaya production truth, corpus integrity, and automated editorial controls" + objective: "Build the owner-approved Adjacent signal label, reason tags, exceptions-only approval console, global pause, and regular assessment surface on top of the validated shadow state machine." + priority: "P1" + status: "blocked" + current_verified_state: + claim_status: "Verified" + state: "No Adjacent signal UI, inclusion-tier fields, agent workflow, durable decision trace, exceptions-only console, global pause control, or assessment scheduler is implemented. Existing KAR-53 remains the console/source-health follow-up anchor." + evidence: ["Linear KAR-70", "site source inventory on 2026-08-15"] + production_readiness_category: "user experience, accessibility, operational control, and assessment" + risk: + level: "high" + statement: "Visible labels can mislead users or violate approved voice; a console that becomes a publication bypass or lacks a tested pause/control path is unsafe." + complexity: "high" + uncertainty: "high" + repository: "/Users/luismorrobel/karayagroup/karayagroup-production-audit" + exclusive_ownership_paths: + - "/Users/luismorrobel/karayagroup/karayagroup-production-audit/site/api/admin.js" + - "/Users/luismorrobel/karayagroup/karayagroup-production-audit/site/api/_lib/editorial-auth.js" + - "/Users/luismorrobel/karayagroup/karayagroup-production-audit/site/api/_lib/editorial-queries.js" + - "/Users/luismorrobel/karayagroup/karayagroup-production-audit/site/api/news-page.js" + - "/Users/luismorrobel/karayagroup/karayagroup-production-audit/site/api/_lib/render.js" + - "/Users/luismorrobel/karayagroup/karayagroup-production-audit/site/src/pages/industry-news/shell.astro" + - "/Users/luismorrobel/karayagroup/karayagroup-production-audit/site/src/styles/" + - "/Users/luismorrobel/karayagroup/karayagroup-production-audit/site/test/admin.test.mjs" + - "/Users/luismorrobel/karayagroup/karayagroup-production-audit/site/test/news-page.test.mjs" + - "/Users/luismorrobel/karayagroup/karayagroup-production-audit/docs/adjacent-signal-console-runbook.md" + dependencies: ["WS-012", "WS-014"] + dependents: ["WS-016"] + binary_definition_of_done: "The console exposes only exceptions, every control is authorized/auditable and cannot bypass rights or global pause, scheduled assessments use recorded evidence, the Adjacent signal tier/reason tags are accessible and approved by Luis read-aloud, and all committed tests/build/compliance checks pass." + acceptance_criteria: + - "The visible non-standard label is exactly owner-approved, distinguishable without color alone, and paired with concise reason tags that explain why it appears." + - "The console requires editorial authentication and shows exception/decision evidence rather than a routine manual-review queue." + - "A global pause halts automated progression; its activation, effect, and recovery are tested." + - "Assessments are cadence-defined, reproducible, and do not silently change thresholds or publish content." + baseline_checks: + working_directory: "/Users/luismorrobel/karayagroup/karayagroup-production-audit/site" + commands: ["npm test", "node --test test/admin.test.mjs test/news-page.test.mjs test/news-compliance.test.mjs", "npm run build", "git -C .. diff --check"] + focused_implementation_checks: + - "Add committed accessibility, visual-tier, reason-tag, authorization, global-pause, and assessment-cadence tests." + - "Use existing compliance fixtures and avoid synthetic owner screenshots or ad hoc artifacts." + integration_checks: + - "Luis completes read-aloud approval of every changed visible label/tag/copy string." + - "Independent reviewer confirms UI behavior matches WS-014 decision traces and no unexpected fields reach publication." + expected_artifact: "/Users/luismorrobel/karayagroup/karayagroup-production-audit/docs/adjacent-signal-console-runbook.md" + rollback_boundary: "Feature is disabled by the tested global pause; revert focused UI/API changes and preserve decision logs. No history rewrite or silent label removal." + github_mapping: + repository: "MeekPhills/karayagroup" + issue: "https://github.com/MeekPhills/karayagroup/issues/19" + related_issue: "KAR-53" + status: "open; KAR-53 remains the existing console/source-health follow-up anchor" + linear_mapping: + issue: "KAR-70" + related_issue: "KAR-53" + status: "Todo" + claude_execution_tier: "Sonnet bounded console/UI/test owners under Fable L1 Karaya orchestration; Opus owns security and copy review" + independent_reviewer: "Opus authorization, accessibility, and copy-compliance reviewer" + integration_owner: "Fable L0 master orchestrator" + first_safe_action: "Create an implementation-ready UI/control specification from the approved WS-014 state contract; ask Luis for read-aloud approval before any visible copy merge." + escalation_condition: "Stop for unapproved visible copy, a routine manual-review queue, an unaudited control, missing pause test, threshold change, provider/model/cost choice, or data mutation." + + - id: "WS-016" + parent_cluster: "Karaya production truth, corpus integrity, and automated editorial controls" + objective: "Perform a separately approved, reversible canary and production rollout only after evidence proves the policy, console, rights controls, and global pause meet their binary gates." + priority: "P0" + status: "blocked" + current_verified_state: + claim_status: "Verified" + state: "No canary, production threshold change, autonomous publishing rollout, or rollback drill is authorized or recorded. Current production keeps launch-source ingestion in review rather than automatically publishing." + evidence: ["site/api/cron/ingest.js", "Linear KAR-70"] + production_readiness_category: "deployment, reliability, rollback, and production change control" + risk: + level: "critical" + statement: "An autonomous-publishing rollout without a controlled canary, monitoring, owner approval, and a tested rollback can alter public content at scale." + complexity: "high" + uncertainty: "high" + repository: "/Users/luismorrobel/karayagroup/karayagroup-production-audit" + exclusive_ownership_paths: + - "/Users/luismorrobel/karayagroup/karayagroup-production-audit/site/api/cron/ingest.js" + - "/Users/luismorrobel/karayagroup/karayagroup-production-audit/site/vercel.json" + - "/Users/luismorrobel/karayagroup/karayagroup-production-audit/docs/industry-news-runbook.md" + - "/Users/luismorrobel/karayagroup/karayagroup-production-audit/docs/go-live-runbook.md" + - "/Users/luismorrobel/karayagroup/karayagroup-production-audit/docs/autonomous-editorial-canary-runbook.md" + dependencies: ["WS-012", "WS-014", "WS-015"] + dependents: [] + binary_definition_of_done: "Luis separately approves a bounded canary, acceptance metrics, monitoring, pause trigger, and rollback drill; the canary passes all documented safety metrics; production rollout occurs only after independent review and remains reversible through the verified global pause and documented recovery procedure." + acceptance_criteria: + - "Canary scope, duration, data class, public exposure, success/failure thresholds, and owner are explicit." + - "No source/provider activation, database migration, public-copy change, or paid-service decision is bundled into the rollout." + - "Global pause and rollback drill are exercised before broader enablement, with evidence preserved." + baseline_checks: + working_directory: "/Users/luismorrobel/karayagroup/karayagroup-production-audit/site" + commands: ["npm test", "npm run build", "node --test test/ingest-worker.test.mjs test/publish-policy.test.mjs test/admin.test.mjs", "git -C .. diff --check"] + focused_implementation_checks: + - "Use committed regression suites plus approved canary observability checks; do not create a production-only ad hoc test artifact." + - "Verify pause, no-publish fallback, and recovery behavior against the exact deployed commit." + integration_checks: + - "Routine production HTTP/MCP smokes and post-canary corpus/right checks." + - "Independent reviewer validates change log, monitoring evidence, and rollout/rollback decision before each escalation." + expected_artifact: "/Users/luismorrobel/karayagroup/karayagroup-production-audit/docs/autonomous-editorial-canary-runbook.md" + rollback_boundary: "Tested global pause first; then the documented owner-approved recovery procedure. No automatic rollout or rollback and no database/corpus mutation without explicit approval." + github_mapping: + repository: "MeekPhills/karayagroup" + issue: "https://github.com/MeekPhills/karayagroup/issues/19" + status: "open" + linear_mapping: + issue: "KAR-70" + status: "Todo" + claude_execution_tier: "Fable L1 Karaya rollout orchestrator with Opus production-change owner" + independent_reviewer: "Opus production safety and rollback reviewer" + integration_owner: "Fable L0 master orchestrator" + first_safe_action: "Prepare a no-change canary/rollback plan from WS-012 through WS-015 evidence and request exact owner approval before any deployment or production setting change." + escalation_condition: "Stop for missing metrics, absent global-pause proof, unapproved deploy/canary/threshold/source/data change, provider activation, paid service, or any irreversible action." diff --git a/CLAUDE.md b/CLAUDE.md new file mode 100644 index 0000000..46ad3c1 --- /dev/null +++ b/CLAUDE.md @@ -0,0 +1,100 @@ +# CLAUDE.md + +This repository is the tracked orchestration home for the cross-repository +Citewire open-source program. Read `PROJECT_HANDOFF.md` and every file under +`.claude/orchestration/` before acting. + +Community Citewire must remain MIT licensed, zero-dependency, stateless, +read-only, provider-neutral, and Node 18+ ESM unless Luis explicitly approves a +versioned public-contract change. Providers stay disabled by default. + +Use routine smoke tests, committed regression tests, and account-isolation +terminology. Do not create ad hoc repository test artifacts. Preserve the +Community-to-Cloud one-way dependency and Karaya's separate customized policy. + + +## Managed Fable orchestration block + +Last synchronized: 2026-08-15 + +### Authority + +- Sol parent orchestrator is the Level 0 Fable master. "Sol parent + orchestrator" and "Fable L0 master" are the same authority, not separate + approvers or executors. +- Level 0 Fable master owns global truth, dependency release, integration, + GitHub/Linear synchronization, and stop/go judgment. +- Nested Fable orchestrators own composite clusters only after Level 0 releases + their dependencies. +- Opus owns architecture, security, privacy, data integrity, migrations, + cross-repository changes, root-cause analysis, and critical review. +- Sonnet owns bounded implementation, tests, fixtures, docs, accessibility, + CI/build repairs, deterministic verification, and runbooks. +- Implementers never serve as their own sole independent reviewer. When an + owner and reviewer use the same model tier, they must be separate + agents/sessions. The reviewer has no write ownership of the implementation + paths, does not reuse the implementer's conclusions as evidence, and reports + to Level 0 before integration. An implementer may never self-approve. + +### Source of truth + +1. Luis's latest explicit direction. +2. Current implementation and reproducible behavior. +3. Fresh tests, CI, deployment, and production evidence. +4. Git history and reviewed diffs. +5. Current GitHub and Linear state. +6. Current documentation. +7. Historical discussion. + +Classify material claims as Verified, Historical, Inferred, +Unknown, or Contradicted. Never treat a closed issue, commit message, old +handoff, or agent report as fresh proof. + +### Execution rules + +- Follow `.claude/orchestration/work-graph.yaml`; do not skip dependencies. +- Every agent gets one repository or non-overlapping owned paths, binary + acceptance criteria, required checks, rollback, reviewer, and escalation. +- Keep all Citewire, Cloud, Openly Useful, and Karaya product PRs draft until + their exact owner gates are satisfied. +- Canonical identity precedes immutable package or MCP Registry publication. +- Karaya production truth and corpus integrity precede threshold reduction or + automated publishing. +- Unknown rights, missing attribution, agent disagreement, low evidence, and + provider failures hold rather than publish. +- Jobs may report policy drift. They may not silently mutate policy. +- Preserve all 49 Karaya screenshot files in the separate owner worktree: + 41 untracked and 8 tracked. Never clean, stage, move, rewrite, or delete them. + +### Hard stops + +Stop on a failed test, unexpected diff, secret, target collision, overlapping +owner edit, paid-service decision, provider/source activation, migration, +production-data change, repository creation/transfer/archive, DNS/domain/TLS +change, deployment, merge, tag, npm/GitHub Release/MCP Registry/catalog action, +or visible Karaya copy without the required exact owner approval. + +### Initial action + +Revalidate the recorded baseline: all product worktrees except the protected +Karaya owner-screenshot inventory must be clean. The protected worktree has the +expected 41 untracked screenshots. The +Citewire orchestration worktree may contain only this controlled handoff +package and its exact orchestration commit; stop on any additional modified or +untracked path. Revalidate the protected Karaya inventory as exactly 49 +screenshots, 8 tracked and 41 untracked. Do not stage, clean, move, edit, or +delete any of them. + +Then execute WS-002 only: prepare the canonical identity decision packet. Do +not launch WS-012 during the initial two-hour wave; it remains an independent +later read-only branch that requires Level 0 authorization. If Luis has not +made the identity choice, stop at the decision gate. Do not infer it from the +phrase "Openly Useful" or from a non-visible GitHub target. + +The only permitted write in this initial wave is the cited WS-002 canonical +identity decision packet. It does not create authority for any external +action. Do not alter remotes, repository visibility, naming, security settings, +branch protection, GitHub settings, Vercel projects, hosting, certificates, +workflow configuration, or any external system. Stop before any external +mutation or irreversible action, even if it is not named above. + diff --git a/PROJECT_HANDOFF.md b/PROJECT_HANDOFF.md new file mode 100644 index 0000000..6db5a65 --- /dev/null +++ b/PROJECT_HANDOFF.md @@ -0,0 +1,396 @@ +# Citewire open-source program handoff + +Verified at: 2026-08-15, America/New_York + +This is the tracked, cross-repository source of truth for the next Claude Code +execution session. It is intentionally stored in the existing public Citewire +repository on `agent/citewire-orchestration-handoff`, stacked on the prepared +landing head `ff09b68ed811531eb0ca630b65daeaf06cc3304c`. The workspace root is not +a Git repository. Keeping the package here makes the handoff reviewable without +changing the exact diff of draft landing PR #2. + +## Project identity + +Citewire is a public, MIT-licensed, zero-dependency, Node 18+ ESM MCP package +for read-only news and research access. The current Community boundary is +stateless and provider-neutral. It supports stdio and Streamable HTTP, four +generic `news.*` tools when a platform adapter is configured, and ten optional +provider tools that are disabled by default. + +The requested next product is broader: + +- make Citewire a canonical, forkable open-source project under Openly Useful; +- preserve full Git history and keep the legacy repository readable as + historical provenance; +- keep Karaya Industry News as a separate, customized consumer; +- add a rights-aware public MCP contract and resources; +- replace routine human review only after a deterministic, independently + verified automated editorial path is proven; +- use an exceptions-only console, a global pause, and recurring assessments; +- evaluate `0.50-0.5999` items in shadow mode as `Adjacent signal` candidates + with controlled reason tags; +- use citewire.org as the canonical landing page after it is actually live. + +The current public identity is still `MeekPhills/citewire`, npm package +`citewire`, and MCP name `io.github.MeekPhills/citewire`. The proposed +`Openly-Useful/citewire` target is not visible, but GitHub privacy masking means +its availability is Unknown until an authorized organization-owner check. + +## Local repositories + +| Repository | Absolute path | Current verified branch and head | State | +| --- | --- | --- | --- | +| Citewire Community and landing | `/Users/luismorrobel/karayagroup/citewire` | `agent/citewire-orchestration-handoff`, based on `ff09b68ed811531eb0ca630b65daeaf06cc3304c` | Orchestration branch in progress; product PRs remain draft | +| Citewire Cloud | `/Users/luismorrobel/karayagroup/citewire-cloud` | `agent/cloud-alpha-http` at `69068275ca0e332e36304533aa0f6b5d2e291405` | Clean after docs sync; implementation base is `ad7e58f...`; exact Community archive pin is `10aee95...` | +| Openly Useful | `/Users/luismorrobel/karayagroup/openlyuseful.org` | `agent/citewire-site-link` at `28af5c7a5fdd0425ced2fe45f5c50e05946758de` | Clean draft link branch | +| Current Karaya link branch | `/Users/luismorrobel/karayagroup/karayagroup-citewire-site-link` | `agent/citewire-site-link` at `3a90e43d8797af9e7c0bc02d4c1ae6f51ebd19a6` | Clean and based on production main `9c150632...` | +| Karaya owner-asset worktree | `/Users/luismorrobel/karayagroup/karayagroup-brand` | `agent/citewire-product-bridge` at `60130c88...`, behind current main | Do not touch: 49 screenshots total, 41 untracked and 8 tracked | +| Historical Karaya feature worktree | `/Users/luismorrobel/karayagroup/karayagroup-live` | `1c63a389...`, 87 commits behind current main | Historical only; not production truth | + +The parent directory `/Users/luismorrobel/karayagroup` is not a Git +repository. Its old `README.md` and `CLAUDE.md` contain durable Karaya safety, +redaction, voice, and owner-copy rules, but their one-page, no-database, and +never-deployed state claims are superseded by the live Karaya implementation. + +## GitHub + +| Repository | Active item | Verified state | +| --- | --- | --- | +| `MeekPhills/citewire` | PR #1 | Draft, mergeable, head `10aee95...`, base `main`; Node 18/22 workflow run `31750916990` succeeded | +| `MeekPhills/citewire` | PR #2 | Draft, mergeable, head `ff09b68...`, base `agent/citewire-product-launch`; runs `31849200115` and `31849291099` succeeded | +| `MeekPhills/citewire` | Issue #3 | Canonical identity, history migration, website, and release; maps KAR-67 | +| `MeekPhills/citewire` | Issue #4 | Versioned public MCP contract and resources; maps KAR-68 | +| `MeekPhills/citewire-cloud` | PR #1 | Draft, mergeable, head `6906827...`; Node 18/22 runs `31893670759` and `31893673430` succeeded | +| `Openly-Useful/openlyuseful.org` | PR #8 | Draft, mergeable, head `28af5c7...`; runs `31849408964` and `31849412743` succeeded; preview passed | +| `MeekPhills/karayagroup` | PR #17 | Draft, mergeable, head `3a90e43...`; run `31849281233` succeeded; preview passed | +| `MeekPhills/karayagroup` | Issue #18 | Production truth and corpus integrity; maps KAR-69 | +| `MeekPhills/karayagroup` | Issue #19 | Automated editorial pipeline and exceptions console; maps KAR-70 | + +No repository has a Git tag, release, or milestone. The open PRs remain draft. +No submitted review or unresolved review thread was visible during recovery. + +## Linear + +- Workspace: `lgam` +- Team: Karaya Group, ID `b9ad52e1-0bb5-45cb-8f60-827e281bca39` +- Initiative: Karaya Group, ID `53ec5c44-4833-4d3a-a146-982062147eaf` +- Project: `karaya-site · build, deploy, DNS, email path`, ID + `cf2701e4-7c7c-4e46-941d-0d9f6332fff7` +- Parent program: KAR-66, In Progress +- Canonical identity/release child: KAR-67, Todo +- Public MCP contract child: KAR-68, Todo +- Production truth/corpus child: KAR-69, Todo; blocks KAR-70 +- Editorial automation child: KAR-70, Todo; related to KAR-53 +- Completed provenance: KAR-48 and KAR-36, Done +- Existing console/source-health follow-up: KAR-53, Backlog +- Stale dependency issue: KAR-24 is In Review even though linked PR #16 is + merged; tracker reconciliation is required +- Complete Launch Log document ID: + `7f791900-c44b-489f-b0af-e1464784e367` + +## Architecture + +```text +Citewire Community +MIT / Node >=18 / ESM / stateless / read-only +stdio + Streamable HTTP + platform tools + optional provider tools + | + +-- exact archive dependency --> Citewire Cloud + | private, account-scoped alpha + | undeployed, stateful tools fail closed + | + +-- prepared static site ------> citewire.org + currently parked and TLS-broken + +Karaya Industry News +Vercel + Astro/serverless + Supabase app schema +public pages/API/feeds + anonymous read-only MCP + protected editorial console +uses vendored citewire@0.1-era provider adapters, not a current package import + +Openly Useful +dependency-free static Vercel site and design-family reference +``` + +Community must not absorb Karaya credentials, source registry, editorial +state, voice rules, redactions, or proprietary policy. Cloud depends one-way on +Community. Karaya is a separate customized consumer with vendored-provider +provenance until a deliberate compatibility/update contract is approved. + +## Environment setup and routine checks + +### Community and landing + +```text +cd /Users/luismorrobel/karayagroup/citewire +npm ci --ignore-scripts --no-audit --no-fund --cache /private/tmp/citewire-claude-cache +npm test +npm run release:check +npm pack --dry-run --json --cache /private/tmp/citewire-claude-cache +git diff --check +``` + +CI uses Node 18 and Node 22. Reuse committed release, protocol, provider, and +site regressions. Do not create ad hoc test artifacts in the repository. + +### Cloud + +```text +cd /Users/luismorrobel/karayagroup/citewire-cloud +npm ci --ignore-scripts --no-audit --no-fund --cache /private/tmp/citewire-cloud-claude-cache +npm test +npm run check +git diff --check +``` + +Reuse `test/http.test.mjs`, including direct HTTP, input allowlist, and +concurrent account-isolation regressions. Use account-isolation terminology. + +### Karaya + +Run from the current production-main-derived worktree's `site/` directory: + +```text +npm ci +npm run build +npm test +node tools/check-registry.mjs +npm audit --omit=dev +``` + +Also run the repository's dependency gate, compliance grep, public HTTP routine +smokes, and MCP initialize/tools checks. Preserve every file under the separate +owner screenshot worktree. + +### Openly Useful + +```text +python3 scripts/validate_site.py +git diff --check +``` + +## Completed work + +- Community provider-compliance candidate is complete at `10aee95...`. +- Cloud package and lockfile already pin `10aee95...`; do not repeat that edit. +- Cloud account-boundary repair and committed concurrent account-isolation + regressions are complete at implementation base `ad7e58f...`. The four-file + documentation reconciliation is pushed at `6906827...`; fresh Node 18/22 CI + runs `31893670759` and `31893673430` passed. +- Karaya PR sequence #16 -> #15 -> #14 is complete; production main is + `9c150632...`. Do not replay it. +- Karaya Industry News, nine-topic API, and public read-only MCP are live. +- Citewire landing, Openly Useful link, and Karaya link branches are pushed and + CI-green, but remain draft. +- Four composite Linear children and four matching GitHub issues were created + for the reviewed remaining work; active PR bodies carry work-stream mappings. + +## Product decisions and constraints + +- Preserve Community as MIT, zero-dependency, stateless, read-only, and Node + 18+ ESM. +- Keep providers disabled by default. No paid/metered provider or NewsData.io + activation without an explicit provider, terms, budget, and failure-policy + decision. +- Preserve Cloud as a separate private, account-scoped product boundary. +- Keep Karaya as a customized consumer with its own source policy, voice, + redactions, labels, ranking, and presentation. +- "Remove review" means removing routine human review only after deterministic + rights gates and independent automated verification are proven. Unknown + rights, missing attribution, disagreement, low evidence, or provider failure + must hold. +- Provisional shadow bands only: `<0.50` held, `0.50-0.5999` adjacent-only with + automated agreement, `>=0.60` standard candidate. Current production remains + `<0.55` quarantine, `0.55-0.8199` review, `>=0.82` auto-eligible. +- `Adjacent signal` and all visible reason tags require historical calibration + and Luis's read-aloud approval before shipping. +- Jobs may report assessment findings. They must not silently change policy. + +## Current behavior and known failures + +Fresh on 2026-08-15: + +- `https://karaya.group/industry-news` and `/industry-news/about` return 200. +- `GET /api/v1/news/topics` returns nine expected slugs. +- MCP initialize returns protocol `2025-06-18`, server `karaya-news-mcp` + version `1.0.0`; tools/list returns 15 read-only tools. +- The public JSON feed returns 50 items. Sixteen summaries exceed the current + 480-character provisional cap and one retains an `appeared first on POWER + Magazine` trailer. This proves stored-corpus policy drift, not a present + ingest bypass. +- `http://citewire.org` serves a Porkbun parked-domain page. A separate check + briefly saw 502. `https://citewire.org` consistently fails TLS. The stable + conclusion is that the Citewire landing is not live or usable. +- Karaya migration files and handoffs contradict one another about migrations + 0007-0010. Production migration history, live source/circuit-breaker state, + cron health, queue age, and runtime source count are Unknown. +- The former four-document Cloud pin drift is resolved at `6906827...` without + changing runtime metadata or the future `^0.2.0` publication gate. + +## Production-readiness gaps + +P1: + +- canonical GitHub/npm/MCP identity and legacy disposition are undecided; +- citewire.org is parked and TLS-broken; +- Community 0.2 is draft and unpublished; +- Karaya stored corpus does not fully match current policy; +- live Karaya migration/source/cron/queue truth is unresolved; +- Cloud is deliberately undeployed and has no participant, endpoint, + persistence, OAuth, billing, retention, privacy, support, or rollback + decision; +- automated editorial workflow, global pause, assessment cadence, and canary + evidence do not exist. + +P2: + +- Community and Karaya MCP surfaces do not implement resources or the proposed + decision-trace/inclusion contract; +- provider rate controls are process-local rather than distributed; +- `why_it_matters` is not structurally guaranteed for public items; +- Astro-chain audit exceptions expire on 2026-09-04; +- recurring cross-site availability monitoring is not verified. + +## Critical path + +```text +Identity and immutable release: +WS-002 canonical identity and authority + -> WS-003 verified retain-in-place route or owner-approved history migration + -> WS-008 separately approved immutable release and registry publication +WS-002 -> WS-004 identity-consistent Community candidate -> WS-008 + +Secure website and downstream links: +WS-002 + WS-004 + -> WS-005 identity-consistent landing + owner-approved HTTPS deployment + -> WS-006 and WS-007 downstream links + +WS-012 Karaya production truth and corpus integrity + -> WS-014 policy/evaluation/shadow state machine + -> WS-015 approved labels, exceptions console, pause, and assessments + -> WS-016 owner-approved canary and production automation + +WS-009 Cloud docs is independent. +WS-010 waits for WS-008. +WS-011 remains a separate owner-gated private-alpha path. +WS-013 may design the future MCP contract after identity is settled, but does +not block an accurately scoped 0.2 release. +``` + +## Active streams + +The full structured graph is in `.claude/orchestration/work-graph.yaml` and +each stream has an executable brief under `.claude/orchestration/streams/`. + +| ID | Objective | Priority | Tracker | +| --- | --- | --- | --- | +| WS-001 | Durable orchestration package | P0 | This branch and draft PR | +| WS-002 | Canonical identity and authority decision | P0 | Citewire #3, KAR-67 | +| WS-003 | Full-history canonical repository path | P0 | Citewire #3, KAR-67 | +| WS-004 | Community identity reconciliation and preflight | P0 | Citewire PR #1, KAR-67 | +| WS-005 | Landing identity, hosting, TLS, and verification | P0 | Citewire PR #2, KAR-67 | +| WS-006 | Openly Useful link activation | P1 | Openly Useful PR #8, KAR-67 | +| WS-007 | Karaya link activation | P1 | Karaya PR #17, KAR-67 | +| WS-008 | Immutable Community release and registry | P0 | Citewire PR #1/#3, KAR-67 | +| WS-009 | Cloud old-pin documentation repair, completed at `6906827...` | P1 | Cloud PR #1, KAR-66 | +| WS-010 | Cloud switch to verified npm artifact | P0 | Cloud PR #1, KAR-67 | +| WS-011 | Cloud private-alpha readiness | P1 | Cloud PR #1, KAR-66 | +| WS-012 | Karaya production truth and corpus integrity | P0 | Karaya #18, KAR-69 | +| WS-013 | Public MCP contract and resources | P1 | Citewire #4, KAR-68 | +| WS-014 | Editorial policy, corpus, and shadow state machine | P1 | Karaya #19, KAR-70 | +| WS-015 | Adjacent signal, console, pause, assessments | P1 | Karaya #19, KAR-70/KAR-53 | +| WS-016 | Canary and production automation rollout | P0 | Karaya #19, KAR-70 | + +## Validation state + +Fresh external GitHub reads verified current PR state and CI workflow results. +Fresh public HTTP/MCP/feed checks verified the production facts above. Local +Git refs and worktree status were rechecked. One Luna Conductor report drifted +to unrelated `GLO-*`/FantasyHQ data and was rejected in full; its corrected +report returned to the Citewire/Karaya scope and supplies the mappings above. + +No secret, private chat transcript, owner screenshot, deployment credential, +raw account key, or paid-provider configuration belongs in these artifacts. + +## Deployment and release state + +- Karaya production is live at main `9c150632...`. +- Openly Useful production is live; PR #8 is preview-only and draft. +- Citewire landing is not deployed to citewire.org. +- Citewire Community 0.2 is not merged, tagged, published, released, or in the + official MCP Registry. +- Citewire Cloud is not deployed. +- No provider activation, migration, DNS change, source activation, automated + production publication, npm publication, registry/catalog submission, or + paid-service decision occurred in this orchestration session. + +## Manual-only blockers + +Luis must explicitly decide or approve: + +1. canonical repository owner/path and legacy disposition; +2. npm and MCP Registry identity, `mcpName`, security/support URLs; +3. target organization authority and repository creation if moving; +4. Vercel project creation, domain attachment, DNS, TLS, deployment, rollback; +5. Community merge, release environment, vulnerability reporting, trusted + publisher, tag, npm, GitHub Release, and MCP Registry steps; +6. read-only privileged Karaya production evidence access; +7. any corpus remediation or migration; +8. provider/model, terms, privacy/retention, budget, and failure policy; +9. visible `Adjacent signal` and reason-tag copy through read-aloud approval; +10. automation canary and production rollout. + +## Initial parallel execution wave + +The initial wave remains entirely inside WS-002. It does not start WS-003 +through WS-016. + +- Level 0 establishes the controlled baseline and owns the decision packet. +- A nested Fable session frames the retain-in-place and move-to-approved-org + identity routes without selecting one. +- A Luna session independently verifies exact repository names, refs, PRs, + namespace visibility, and available authority evidence. +- A Terra session independently reviews irreversible provenance, package, + registry, hosting, and legacy-disposition consequences. +- The two independent reports return to Level 0. Neither reviewer owns packet + implementation paths or may reuse the implementer's conclusions as proof. + +## Two-hour Claude execution schedule + +- T+0–30: revalidate the controlled baseline and independently frame/verify the + two identity routes. No repository, metadata, link, hosting, or external + mutation. +- T+30–60: Level 0 reconciles the reports into the canonical identity decision + packet with explicit Unknowns, consequences, authority needs, and rollback + boundaries. +- T+60–120: stop at Luis's identity decision gate. Do not start WS-003 through + WS-016. Only correct factual errors in the WS-002 packet through the same + independent review path. + +## Exact first Claude action + +Read `PROJECT_HANDOFF.md`, `CLAUDE.md`, and every file under +`.claude/orchestration/` in full before acting. Revalidate the recorded baseline: +all product worktrees except the protected Karaya owner-screenshot inventory +must be clean; that protected worktree is expected to contain its 41 untracked +screenshots. The Citewire orchestration checkout must +contain only the exact tracked handoff commit and no additional modified or +untracked path. Revalidate the protected Karaya inventory as exactly 49 +screenshots, 8 tracked and 41 untracked. Do not stage, clean, move, edit, or +delete any of them. Revalidate exact heads, draft PR states, citewire.org +HTTP/TLS, and Karaya routine smoke evidence. + +Execute WS-002 only. Produce the canonical identity decision packet comparing +retain-in-place and owner-approved move routes and their immutable consequences. +If Luis has not selected the identity and proven the required authority, stop +at that decision gate. Do not infer the choice from "Openly Useful" or from a +non-visible GitHub target. + +The only permitted write is the cited WS-002 canonical identity decision +packet. It does not create authority for any external action. Do not alter +remotes, repository visibility, naming, security settings, branch protection, +GitHub settings, Vercel projects, hosting, certificates, workflow +configuration, or any external system. Do not merge, deploy, create or transfer +a repository, change DNS, tag, publish, release, submit a registry/catalog, +apply a migration, modify production data, enable a source/provider, select a +paid service, issue credentials, or ship visible Karaya copy. Stop before any +external mutation or irreversible action, even if it is not named above. From d51a3ad43245535b87f17a46c624e7101e6fc082 Mon Sep 17 00:00:00 2001 From: MeekPhills <117056626+MeekPhills@users.noreply.github.com> Date: Sat, 15 Aug 2026 12:27:58 -0400 Subject: [PATCH 2/4] Synchronize handoff trackers and review fixes --- .claude/orchestration/execution-state.yaml | 15 ++++++++-- .claude/orchestration/streams/WS-008.md | 2 +- .claude/orchestration/streams/WS-009.md | 7 +++-- .claude/orchestration/streams/WS-013.md | 17 +++++++---- .../orchestration/verification-evidence.md | 5 ++-- .claude/orchestration/work-graph.yaml | 29 ++++++++++++------- PROJECT_HANDOFF.md | 14 +++++++-- 7 files changed, 63 insertions(+), 26 deletions(-) diff --git a/.claude/orchestration/execution-state.yaml b/.claude/orchestration/execution-state.yaml index e2ab1d7..5d5ed80 100644 --- a/.claude/orchestration/execution-state.yaml +++ b/.claude/orchestration/execution-state.yaml @@ -8,14 +8,20 @@ orchestration: repository: "MeekPhills/citewire" branch: "agent/citewire-orchestration-handoff" based_on: "ff09b68ed811531eb0ca630b65daeaf06cc3304c" - current_head: "ff09b68ed811531eb0ca630b65daeaf06cc3304c" - mode: "research, synchronization planning, and Claude handoff preparation" + package_commit: "80017d60c4396d704e0be55af4cd9cb1dc548b94" + head_resolution: "read the live draft PR #5 head; the final metadata commit cannot embed its own SHA" + mode: "verified handoff synchronized in draft PR #5; WS-002 is the next owner gate" next_gate: "WS-002" next_gate_name: "Canonical Citewire identity and authenticated authority decision" integration_owner: "Fable L0 master orchestrator" scoped_pull_requests: all_open_prs_draft: true + citewire_orchestration: + url: "https://github.com/MeekPhills/citewire/pull/5" + package_commit: "80017d60c4396d704e0be55af4cd9cb1dc548b94" + draft: true + mergeable: "MERGEABLE" citewire_community: url: "https://github.com/MeekPhills/citewire/pull/1" head: "10aee95ac95bb437b4607723cd20fa5c8f9d1879" @@ -124,6 +130,11 @@ two_hour_schedule: t_plus_30_to_60: "Level 0 reconciles reports into the canonical identity decision packet" t_plus_60_to_120: "stop at Luis's identity decision gate; factual packet corrections only through independent review" +synchronization_evidence: + github: "draft PR #5 exists with the exact orchestration package stacked on the draft landing branch" + linear: "KAR-66 links/comment updated, KAR-48 provenance comment added, and the complete Launch Log document appended without truncation" + launch_log_document: "7f791900-c44b-489f-b0af-e1464784e367" + next_safe_sequence: - "WS-002: obtain explicit canonical identity and authority decision with read-only evidence" - "WS-003 and WS-004: plan history preservation and re-verify Community candidate only after WS-002" diff --git a/.claude/orchestration/streams/WS-008.md b/.claude/orchestration/streams/WS-008.md index 62ef16b..2fdcb27 100644 --- a/.claude/orchestration/streams/WS-008.md +++ b/.claude/orchestration/streams/WS-008.md @@ -19,7 +19,7 @@ verified as complete. `CITEWIRE_EXECUTION_CHECKPOINT.md` Trust: high for the unperformed release status and documented gates; current -organization/nmp/registry configuration is Unknown until freshly inspected. +organization/npm/registry configuration is Unknown until freshly inspected. ## Last-good state diff --git a/.claude/orchestration/streams/WS-009.md b/.claude/orchestration/streams/WS-009.md index f4d5616..58e9196 100644 --- a/.claude/orchestration/streams/WS-009.md +++ b/.claude/orchestration/streams/WS-009.md @@ -38,9 +38,10 @@ Participant approval, credential lifecycle, exact production Origin policy, pers ## dependencies -- Community identity/release decision: WS-002 through WS-008, KAR-67, and MeekPhills/citewire issue 3. -- This stream records the completed package/lockfile archive-pin verification; - WS-011 consumes that baseline for the separate owner-gated alpha path. +- WS-001 orchestration control. +- WS-009 independently verifies the existing archive-pin baseline and does not + wait for WS-002 through WS-008. +- WS-011 consumes this baseline for the separate owner-gated alpha path. - WS-010 is the later post-publication npm-range migration and is not a prerequisite for archive-pinned readiness. diff --git a/.claude/orchestration/streams/WS-013.md b/.claude/orchestration/streams/WS-013.md index a592bf9..ce580ff 100644 --- a/.claude/orchestration/streams/WS-013.md +++ b/.claude/orchestration/streams/WS-013.md @@ -27,7 +27,8 @@ Community remains dependency-free, Node 18+ ESM, self-hostable, stateless, read- ## remaining - Approve an ADR defining versioning, capability discovery, exact schemas, rights/attribution fields, and compatibility. -- Add committed fixtures and routine stdio/direct-HTTP smoke coverage after approval. +- Specify the committed fixtures and routine stdio/direct-HTTP smoke coverage + that a later separately approved implementation stream must add and execute. - Obtain independent protocol and rights review. - Keep Karaya inclusion policy and private decision state outside Community. @@ -52,14 +53,17 @@ WS-004. - [ ] Approved ADR and versioning path. - [ ] Exact tool/resource schemas include attribution, canonical links, rights status, inclusion explanation, and health without Karaya state. -- [ ] Committed fixtures and routine stdio/direct-HTTP smoke plan pass. +- [ ] The ADR specifies committed fixtures and routine stdio/direct-HTTP smokes; + their creation and execution are explicitly assigned to a later serialized + implementation stream after WS-004. - [ ] Existing news.* behavior remains unchanged and no duplicate semantics exist. - [ ] Independent protocol and rights review is recorded. - [ ] No runtime, package, registry, or deployment mutation before approval. ## artifact -Planned ADR, companion fixtures, and focused compatibility tests. Reuse committed tests; create no disposable artifacts. +Planned ADR with companion fixture/test/smoke specifications. This design-only +stream creates no runtime fixture or test artifact. ## baseline @@ -67,7 +71,9 @@ Planned ADR, companion fixtures, and focused compatibility tests. Reuse committe ## focused checks -Run existing npm test, syntax checks, git diff --check, stdio initialize, direct HTTP initialize, and tool-list smoke. Do not call live providers. +Inspect the existing committed suite and helpers read-only, validate the ADR +diff, and define the later smoke matrix. Actual test and smoke execution belongs +to the separately approved implementation stream. Do not call live providers. ## integration checks @@ -87,7 +93,8 @@ Parent KAR-66; work item KAR-68. ## Claude tier -Level 2 Opus for protocol/rights design; Level 3 Sonnet for bounded fixtures after review. +Level 2 Opus for protocol/rights design; Level 3 Sonnet is reserved for bounded +fixture/test implementation only in the later approved stream. ## reviewer diff --git a/.claude/orchestration/verification-evidence.md b/.claude/orchestration/verification-evidence.md index f9616d9..588c657 100644 --- a/.claude/orchestration/verification-evidence.md +++ b/.claude/orchestration/verification-evidence.md @@ -10,7 +10,7 @@ Verified means directly observed in local state, committed tests, GitHub/Linear | worktree | branch | head/status | | --- | --- | --- | -| citewire | agent/citewire-orchestration-handoff | controlled handoff package based on ff09b68ed811531eb0ca630b65daeaf06cc3304c; before its focused commit only `.claude/`, `CLAUDE.md`, and `PROJECT_HANDOFF.md` are expected, and after commit the checkout must be clean at the recorded orchestration head | +| citewire | agent/citewire-orchestration-handoff | package commit 80017d60c4396d704e0be55af4cd9cb1dc548b94, pushed in draft PR #5; exact 22-file orchestration-only package based on ff09b68ed811531eb0ca630b65daeaf06cc3304c, followed only by verified synchronization metadata | | citewire release ref | agent/citewire-product-launch | 10aee95ac95bb437b4607723cd20fa5c8f9d1879, clean release candidate | | citewire-cloud | agent/cloud-alpha-http | 69068275ca0e332e36304533aa0f6b5d2e291405, clean docs-aligned head; runtime baseline ad7e58f | | karayagroup-brand | agent/citewire-product-bridge | 60130c88a3c89098736839bbd5e82c4af6ff9958, all 49 screenshots preserved: 41 untracked and 8 tracked | @@ -20,6 +20,7 @@ Verified means directly observed in local state, committed tests, GitHub/Linear ## PRs and checks +- Citewire PR #5, head 80017d6 into agent/citewire-landing-site, draft/mergeable: exact 22-file orchestration-only diff; CI was started and is recorded only as successful after the final verification pass. - Citewire PR #1, head 10aee95a into main, draft/mergeable: Node 18/22 successful in 31750915019 and 31750916990. - Citewire PR #2, head ff09b68 into agent/citewire-product-launch, draft/mergeable: Node 18/22 successful in 31849200115 and 31849291099; exact 20-file landing diff. - Cloud PR #1, head 6906827 into main, draft/mergeable: Node 18/22 successful in 31893670759 and 31893673430; earlier runtime checks 31752801534 and 31752804098 successful; no deployment. @@ -52,7 +53,7 @@ Verified means directly observed in local state, committed tests, GitHub/Linear ## Linear -KAR-66 parent is In Progress. KAR-67, KAR-68, KAR-69, and KAR-70 are Todo. KAR-53 remains the related console/source-health/dedupe/dead-letter/kill-switch anchor. Launch Log document ID is 7f791900-c44b-489f-b0af-e1464784e367. +KAR-66 parent is In Progress. KAR-67, KAR-68, KAR-69, and KAR-70 are Todo. KAR-53 remains the related console/source-health/dedupe/dead-letter/kill-switch anchor. KAR-24 is Todo and its merged PR #16 does not complete the Astro major upgrade. KAR-66 has the PR #5/issue mappings and a dated verification comment; KAR-48 has a provenance-only comment and remains Done. The complete Launch Log document `7f791900-c44b-489f-b0af-e1464784e367` was fetched in full, appended with the 2026-08-15 verified synchronization entry, saved, and re-read with its marker present. ## contradiction resolutions diff --git a/.claude/orchestration/work-graph.yaml b/.claude/orchestration/work-graph.yaml index 8f06c43..e0febb7 100644 --- a/.claude/orchestration/work-graph.yaml +++ b/.claude/orchestration/work-graph.yaml @@ -6,9 +6,9 @@ canonical_orchestration_repository: path: "/Users/luismorrobel/karayagroup/citewire" repository: "MeekPhills/citewire" branch: "agent/citewire-orchestration-handoff" - head: "ff09b68ed811531eb0ca630b65daeaf06cc3304c" + package_commit: "80017d60c4396d704e0be55af4cd9cb1dc548b94" base_commit: "ff09b68ed811531eb0ca630b65daeaf06cc3304c" - state: "orchestration artifacts are being prepared locally; no commit or push is represented by this file" + state: "focused orchestration commit pushed in draft PR #5; no product or external-system mutation" source_of_truth_order: - "latest explicit owner direction" @@ -24,7 +24,7 @@ repositories: repository: "MeekPhills/citewire" path: "/Users/luismorrobel/karayagroup/citewire" current_branch: "agent/citewire-orchestration-handoff" - current_head: "ff09b68ed811531eb0ca630b65daeaf06cc3304c" + verified_package_commit: "80017d60c4396d704e0be55af4cd9cb1dc548b94" main_head: "14eb968fd2da80b7a1adc3078cc1ba514b8bcfa5" - name: "Citewire Cloud" repository: "MeekPhills/citewire-cloud" @@ -65,6 +65,15 @@ repositories: protected_untracked_count: 41 current_pull_requests: + - repository: "MeekPhills/citewire" + number: 5 + title: "Add verified Citewire orchestration handoff" + url: "https://github.com/MeekPhills/citewire/pull/5" + draft: true + mergeable: "MERGEABLE" + base: "agent/citewire-landing-site" + head_branch: "agent/citewire-orchestration-handoff" + head_at_initial_pr_creation: "80017d60c4396d704e0be55af4cd9cb1dc548b94" - repository: "MeekPhills/citewire" number: 1 title: "Prepare citewire 0.2.0 Community release candidate" @@ -182,8 +191,8 @@ work_streams: status: "in_progress" current_verified_state: claim_status: "Verified" - state: "The orchestration branch is agent/citewire-orchestration-handoff at ff09b68ed811531eb0ca630b65daeaf06cc3304c; no orchestration commit or push is represented yet." - evidence: ["git status and HEAD inspection on 2026-08-15"] + state: "The focused 22-file orchestration package is committed and pushed at 80017d60c4396d704e0be55af4cd9cb1dc548b94 in draft PR #5, stacked on agent/citewire-landing-site. The PR branch may add only verified synchronization metadata; its live head must be read from GitHub rather than embedded self-referentially." + evidence: ["git status/HEAD and GitHub draft PR #5 inspection on 2026-08-15"] production_readiness_category: "governance, traceability, and handoff" risk: level: "high" @@ -215,8 +224,8 @@ work_streams: github_mapping: repository: "MeekPhills/citewire" branch: "agent/citewire-orchestration-handoff" - pull_request: null - status: "No dedicated GitHub issue or pull request exists yet; a focused draft PR is required before this artifact is merged." + pull_request: "https://github.com/MeekPhills/citewire/pull/5" + status: "open draft, mergeable, exact 22-file orchestration-only diff" linear_mapping: issue: "KAR-66" status: "In Progress" @@ -831,7 +840,7 @@ work_streams: - "/Users/luismorrobel/karayagroup/citewire/docs/adr-public-mcp-contract-v1.md" dependencies: ["WS-002"] dependents: [] - binary_definition_of_done: "An independently reviewed ADR and compatibility plan define versioning, schemas, resources, rights fields, fixtures, error behavior, stdio/direct-HTTP smoke plan, and explicit exclusions for Karaya state; runtime and test implementation requires a separately approved, serialized implementation stream after WS-004, and no public contract code merges without green committed regressions." + binary_definition_of_done: "An independently reviewed ADR and compatibility plan define versioning, schemas, resources, rights fields, fixture specifications, error behavior, stdio/direct-HTTP smoke specifications, and explicit exclusions for Karaya state; actual fixtures, tests, runtime changes, and smoke execution require a separately approved, serialized implementation stream after WS-004." acceptance_criteria: - "Existing news.* tools and HTTP/stdio behavior remain backward compatible." - "Any inclusion explanation is provider-neutral and carries no Karaya editorial state, credentials, source configuration, or protected data." @@ -840,8 +849,8 @@ work_streams: working_directory: "/Users/luismorrobel/karayagroup/citewire" commands: ["npm test", "node --test test/rpc.test.mjs test/http.test.mjs test/platform.test.mjs", "git diff --check"] focused_implementation_checks: - - "Add committed schema/fixture compatibility tests before implementation." - - "Run direct stdio and HTTP protocol smoke tests using committed test helpers." + - "Specify the committed schema/fixture compatibility tests required before later implementation." + - "Specify direct stdio and HTTP protocol smokes using existing committed helpers; execution belongs to the later implementation stream." integration_checks: - "Review Community boundary against Karaya's independent policy/evaluation architecture." - "Re-run Cloud compatibility tests after any public transport or tool-contract change." diff --git a/PROJECT_HANDOFF.md b/PROJECT_HANDOFF.md index 6db5a65..41fffcf 100644 --- a/PROJECT_HANDOFF.md +++ b/PROJECT_HANDOFF.md @@ -40,7 +40,7 @@ its availability is Unknown until an authorized organization-owner check. | Repository | Absolute path | Current verified branch and head | State | | --- | --- | --- | --- | -| Citewire Community and landing | `/Users/luismorrobel/karayagroup/citewire` | `agent/citewire-orchestration-handoff`, based on `ff09b68ed811531eb0ca630b65daeaf06cc3304c` | Orchestration branch in progress; product PRs remain draft | +| Citewire Community and landing | `/Users/luismorrobel/karayagroup/citewire` | `agent/citewire-orchestration-handoff` at `80017d60c4396d704e0be55af4cd9cb1dc548b94`, based on `ff09b68ed811531eb0ca630b65daeaf06cc3304c` | Focused handoff in draft PR #5; product PRs remain draft | | Citewire Cloud | `/Users/luismorrobel/karayagroup/citewire-cloud` | `agent/cloud-alpha-http` at `69068275ca0e332e36304533aa0f6b5d2e291405` | Clean after docs sync; implementation base is `ad7e58f...`; exact Community archive pin is `10aee95...` | | Openly Useful | `/Users/luismorrobel/karayagroup/openlyuseful.org` | `agent/citewire-site-link` at `28af5c7a5fdd0425ced2fe45f5c50e05946758de` | Clean draft link branch | | Current Karaya link branch | `/Users/luismorrobel/karayagroup/karayagroup-citewire-site-link` | `agent/citewire-site-link` at `3a90e43d8797af9e7c0bc02d4c1ae6f51ebd19a6` | Clean and based on production main `9c150632...` | @@ -58,6 +58,7 @@ never-deployed state claims are superseded by the live Karaya implementation. | --- | --- | --- | | `MeekPhills/citewire` | PR #1 | Draft, mergeable, head `10aee95...`, base `main`; Node 18/22 workflow run `31750916990` succeeded | | `MeekPhills/citewire` | PR #2 | Draft, mergeable, head `ff09b68...`, base `agent/citewire-product-launch`; runs `31849200115` and `31849291099` succeeded | +| `MeekPhills/citewire` | PR #5 | Draft, mergeable, head `80017d6...`, base `agent/citewire-landing-site`; exact 22-file orchestration-only diff | | `MeekPhills/citewire` | Issue #3 | Canonical identity, history migration, website, and release; maps KAR-67 | | `MeekPhills/citewire` | Issue #4 | Versioned public MCP contract and resources; maps KAR-68 | | `MeekPhills/citewire-cloud` | PR #1 | Draft, mergeable, head `6906827...`; Node 18/22 runs `31893670759` and `31893673430` succeeded | @@ -83,8 +84,8 @@ No submitted review or unresolved review thread was visible during recovery. - Editorial automation child: KAR-70, Todo; related to KAR-53 - Completed provenance: KAR-48 and KAR-36, Done - Existing console/source-health follow-up: KAR-53, Backlog -- Stale dependency issue: KAR-24 is In Review even though linked PR #16 is - merged; tracker reconciliation is required +- Dependency issue: KAR-24 is Todo as of 2026-08-15T15:52:24.535Z; linked PR + #16 is merged - Complete Launch Log document ID: `7f791900-c44b-489f-b0af-e1464784e367` @@ -308,6 +309,13 @@ Git refs and worktree status were rechecked. One Luna Conductor report drifted to unrelated `GLO-*`/FantasyHQ data and was rejected in full; its corrected report returned to the Citewire/Karaya scope and supplies the mappings above. +Synchronization is durable: draft Citewire PR #5 contains the 22-file handoff +package at `80017d60...` plus verified metadata-only follow-up; KAR-66 has the +PR/issue mappings and dated verification comment; KAR-48 has a provenance-only +comment and remains Done; and the complete Launch Log document +`7f791900-c44b-489f-b0af-e1464784e367` was fetched in full, appended, saved, and +re-read with the 2026-08-15 synchronization marker present. + No secret, private chat transcript, owner screenshot, deployment credential, raw account key, or paid-provider configuration belongs in these artifacts. From 83f99ab7f17ec390693e6225b3b02be399062286 Mon Sep 17 00:00:00 2001 From: MeekPhills <117056626+MeekPhills@users.noreply.github.com> Date: Sat, 15 Aug 2026 16:26:24 -0400 Subject: [PATCH 3/4] Synchronize CiteWire 17-stream orchestration --- .claude/orchestration/execution-state.yaml | 232 ++- .claude/orchestration/recovery-ledger.yaml | 370 ++--- .claude/orchestration/streams/WS-001.md | 138 +- .claude/orchestration/streams/WS-002.md | 129 +- .claude/orchestration/streams/WS-003.md | 141 +- .claude/orchestration/streams/WS-004.md | 145 +- .claude/orchestration/streams/WS-005.md | 146 +- .claude/orchestration/streams/WS-006.md | 130 +- .claude/orchestration/streams/WS-007.md | 164 +-- .claude/orchestration/streams/WS-008.md | 158 +- .claude/orchestration/streams/WS-009.md | 129 +- .claude/orchestration/streams/WS-010.md | 108 +- .claude/orchestration/streams/WS-011.md | 130 +- .claude/orchestration/streams/WS-012.md | 138 +- .claude/orchestration/streams/WS-013.md | 137 +- .claude/orchestration/streams/WS-014.md | 147 +- .claude/orchestration/streams/WS-015.md | 145 +- .claude/orchestration/streams/WS-016.md | 128 +- .claude/orchestration/streams/WS-017.md | 90 ++ .../orchestration/verification-evidence.md | 201 ++- .claude/orchestration/work-graph.yaml | 1268 ++++++----------- CLAUDE.md | 181 +-- PROJECT_HANDOFF.md | 578 +++----- 23 files changed, 1830 insertions(+), 3303 deletions(-) create mode 100644 .claude/orchestration/streams/WS-017.md diff --git a/.claude/orchestration/execution-state.yaml b/.claude/orchestration/execution-state.yaml index 5d5ed80..7f0cea4 100644 --- a/.claude/orchestration/execution-state.yaml +++ b/.claude/orchestration/execution-state.yaml @@ -1,4 +1,4 @@ -schema_version: 1 +schema_version: 2 artifact: citewire-orchestration-execution-state as_of: "2026-08-15" claim_status: Verified @@ -7,139 +7,131 @@ orchestration: repository_path: "/Users/luismorrobel/karayagroup/citewire" repository: "MeekPhills/citewire" branch: "agent/citewire-orchestration-handoff" + current_verified_head: "7e816c5b2900cb04309f751e5d93bab79752128a" + historical_initial_package_commit: "80017d60c4396d704e0be55af4cd9cb1dc548b94" based_on: "ff09b68ed811531eb0ca630b65daeaf06cc3304c" - package_commit: "80017d60c4396d704e0be55af4cd9cb1dc548b94" - head_resolution: "read the live draft PR #5 head; the final metadata commit cannot embed its own SHA" - mode: "verified handoff synchronized in draft PR #5; WS-002 is the next owner gate" - next_gate: "WS-002" - next_gate_name: "Canonical Citewire identity and authenticated authority decision" - integration_owner: "Fable L0 master orchestrator" + mode: "17-stream controlled handoff; documentation synchronization only until explicit gates release later streams" + next_gate: "WS-001" + next_gate_name: "17-stream graph synchronization and structural validation" + integration_owner: "Fable L0 planning label only" + runtime_availability: "No Fable, Opus, Sonnet, plugin, or connector runtime availability is asserted." -scoped_pull_requests: - all_open_prs_draft: true - citewire_orchestration: - url: "https://github.com/MeekPhills/citewire/pull/5" - package_commit: "80017d60c4396d704e0be55af4cd9cb1dc548b94" - draft: true - mergeable: "MERGEABLE" - citewire_community: - url: "https://github.com/MeekPhills/citewire/pull/1" - head: "10aee95ac95bb437b4607723cd20fa5c8f9d1879" - draft: true - mergeable: "MERGEABLE" - citewire_landing: - url: "https://github.com/MeekPhills/citewire/pull/2" - head: "ff09b68ed811531eb0ca630b65daeaf06cc3304c" - draft: true - mergeable: "MERGEABLE" - citewire_cloud: - url: "https://github.com/MeekPhills/citewire-cloud/pull/1" - head: "69068275ca0e332e36304533aa0f6b5d2e291405" - draft: true - mergeable: "MERGEABLE" - openly_useful_link: - url: "https://github.com/Openly-Useful/openlyuseful.org/pull/8" - head: "28af5c7a5fdd0425ced2fe45f5c50e05946758de" - draft: true - mergeable: "MERGEABLE" - karaya_link: - url: "https://github.com/MeekPhills/karayagroup/pull/17" - head: "3a90e43d8797af9e7c0bc02d4c1ae6f51ebd19a6" - draft: true - mergeable: "MERGEABLE" +identity: + visible_brand: "CiteWire" + technical_token: "citewire" + project_parent: "Openly Useful" + target_repository: "Openly-Useful/citewire" + target_repository_state: "authenticated absent and unapproved" + boundary: "This does not authorize a repository, package, registry, domain, DNS, deployment, transfer, archive, or Cloud operator action." + +baseline_worktree_state: + citewire: + head: "7e816c5b2900cb04309f751e5d93bab79752128a" + controlled_untracked_proposal: ".project-status/manifest.json" + git_clean: false + rule: "The repository is not Git-clean until the controlled proposal is separately dispositioned. Preserve it unstaged and exclude it from orchestration commits." + citewire_public_platform: + head: "7e816c5b2900cb04309f751e5d93bab79752128a" + state: "dirty parked prototype" + rule: "Do not merge, stage, clean, cherry-pick, or credit to WS-013/WS-017." + editorial_shadow: + head: "9c1506320771faf177f3675ef5ea1c1eff36fe81" + state: "dirty preserved proposal" + stopped_verification: "21 tests passed; one test file stopped at module load because @supabase/supabase-js was not installed. The shell was Node v24.18.0, not required Node 22. No install, rerun, build, audit, commit, migration, or deployment followed." + rule: "Do not commit its migration or credit to WS-014/WS-015." + production_audit: + path: "/Users/luismorrobel/karayagroup/karayagroup-production-audit" + state: "absent" + rule: "Fresh clean verified-origin/main worktree required before WS-012." + owner_screenshots: + path: "/Users/luismorrobel/karayagroup/karayagroup-brand/site/handoff/redesign/" + state: "49 protected files, 8 tracked and 41 untracked" + rule: "Never alter, stage, clean, move, delete, or use as a baseline." + +recorded_historical_mappings: + disclaimer: "All remote PR, CI, GitHub, Linear, Vercel, DNS, and deployment states below are recorded historical state pending fresh remote revalidation before action." + pull_requests: + citewire_orchestration: "MeekPhills/citewire PR #5" + citewire_community: "MeekPhills/citewire PR #1" + citewire_landing: "MeekPhills/citewire PR #2" + citewire_cloud: "MeekPhills/citewire-cloud PR #1" + openly_useful_link: "Openly-Useful/openlyuseful.org PR #8" + karaya_link: "MeekPhills/karayagroup PR #17" + issues: + identity_release: "MeekPhills/citewire issue #3; KAR-67 Todo" + public_contract: "MeekPhills/citewire issue #4; KAR-68 Todo" + karaya_truth: "MeekPhills/karayagroup issue #18; KAR-69 Todo" + karaya_automation: "MeekPhills/karayagroup issue #19; KAR-70 Todo" + program_parent: "KAR-66 In Progress" + console_context: "KAR-53 context only" + context_only: ["KAR-71", "KAR-77"] external_observations: citewire_org: observed_on: "2026-08-15" - http: "HTTP responds 200 with a parked Porkbun page" - https: "TLS handshake fails" - state: "not a verified live Citewire landing destination" - claim_status: Verified + state: "Recorded HTTP parked response and HTTPS TLS failure; not a verified live CiteWire destination." + claim_status: Historical karaya_production: observed_on: "2026-08-15" - state: "Industry News, About, nine-topic API, and read-only MCP initialize were reachable in routine smoke tests" - deployment_change_this_session: false - claim_status: Verified - citewire_cloud: - deployment_count_verified: 0 - deployment_change_this_session: false + state: "Recorded Industry News, About, nine-topic API, and read-only MCP smoke evidence; production truth remains incomplete pending WS-012." + claim_status: Historical + cloud: + state: "Recorded draft and undeployed; Cloud archive pin is 10aee95." claim_status: Historical -mutation_guardrails: - deploy: - permitted: false - state: "No deployment is authorized or performed." - merge: - permitted: false - state: "No pull request merge is authorized or performed." - tag: - permitted: false - state: "No tag is authorized or performed." - publish: - permitted: false - state: "No npm package, GitHub release, MCP Registry, catalog, or other publication is authorized or performed." - provider_activation: - permitted: false - state: "No provider/source activation is authorized or performed." - data_mutation: - permitted: false - state: "No database write, migration, source toggle, historical corpus rewrite, threshold change, or automatic-publication change is authorized or performed." - dns_or_domain: - permitted: false - state: "No DNS, certificate, domain, host, or provider activation is authorized or performed." - paid_service_decision: - permitted: false - state: "No paid or fixed-cost service decision is authorized or performed." - secrets: - permitted: false - state: "No credential, raw key, secret, or private customer data may be created, copied, logged, or committed." - owner_screenshots: - permitted: false - state: "Do not alter, stage, delete, clean, or include any of the 49 screenshots under karayagroup-brand/site/handoff/redesign/: 41 are untracked and 8 are tracked." - -current_dependency_state: - community_archive_pin: - repository_path: "/Users/luismorrobel/karayagroup/citewire-cloud" - package: "citewire" - source: "https://github.com/MeekPhills/citewire/archive/10aee95ac95bb437b4607723cd20fa5c8f9d1879.tar.gz" - status: "verified current code pin; do not replace with an npm range until immutable Community publication and provenance verification" - cloud_alpha: - status: "draft and undeployed; docs-only pin reconciliation completed at 69068275ca0e332e36304533aa0f6b5d2e291405 with isolated install, syntax/diff, and 15/15 committed tests reported passed" - karaya_automation: - status: "no shadow state machine, Adjacent signal UI, automated editorial agent workflow, durable decision trace, exceptions-only console, assessment scheduler, canary, or production rollout is implemented" +stream_status: + WS-001: "active documentation-only" + WS-002: "active decision-record only" + WS-003: "blocked" + WS-004: "recorded candidate, identity re-verification blocked" + WS-005: "blocked" + WS-006: "blocked" + WS-007: "blocked" + WS-008: "blocked on WS-003, WS-004, WS-005" + WS-009: "complete preserve-only" + WS-010: "blocked on WS-008" + WS-011: "blocked on WS-002 and WS-009" + WS-012: "blocked; production-audit worktree absent" + WS-013: "planned design-only" + WS-014: "blocked on WS-012" + WS-015: "blocked on WS-014" + WS-016: "blocked on WS-015" + WS-017: "required, parked, not authorized; blocked on WS-004 and WS-013" -required_stop_conditions: - - "failed test or CI check" - - "unexpected diff or changed ownership boundary" - - "secret, credential, raw key, private customer data, or private transcript" - - "paid-service, provider, domain, DNS, deployment, or data decision requiring owner approval" - - "irreversible action lacking explicit owner approval" - - "attempt to merge visible Karaya copy without Luis read-aloud approval" - - "attempt to stage or alter owner screenshots" +mutation_guardrails: + deploy: "not authorized" + merge: "not authorized" + tag: "not authorized" + publish: "not authorized" + provider_activation: "not authorized" + data_mutation: "not authorized" + dns_or_domain: "not authorized" + paid_service_decision: "not authorized" + secrets: "must not be copied, logged, or committed" + studio_or_plugin: "speculative only; no required stream" + cowork_plugin_mapping: "No verified CiteWire Cowork/plugin manifest or GitHub/Linear item maps to a required stream." initial_parallel_execution_wave: - scope: "WS-002 only; do not start WS-003 through WS-016" - level_0: "establish controlled baseline, integrate evidence, and own the identity decision packet" - nested_fable: "frame retain-in-place and owner-approved move routes without selecting one" - luna: "independently verify exact names, refs, PRs, namespace visibility, and authority evidence" - terra: "independently review irreversible identity, provenance, registry, hosting, and legacy consequences" - mutation_boundary: "the only permitted write is the cited WS-002 decision packet; no external mutation" + phase_0: "WS-001 only." + after_ws_001: + - "WS-002 documentation-only identity packet." + - "Conditional WS-012 preflight only after fresh production-audit worktree creation; read-only public/local evidence only." + prohibited: + - "WS-003 through WS-008 execution" + - "WS-010 through WS-011 execution" + - "WS-013 through WS-017 implementation" + - "Studio/plugin work" + - "Any use of parked prototypes as a baseline" two_hour_schedule: - t_plus_0_to_30: "revalidate baseline and independently frame/verify the two identity routes" - t_plus_30_to_60: "Level 0 reconciles reports into the canonical identity decision packet" - t_plus_60_to_120: "stop at Luis's identity decision gate; factual packet corrections only through independent review" - -synchronization_evidence: - github: "draft PR #5 exists with the exact orchestration package stacked on the draft landing branch" - linear: "KAR-66 links/comment updated, KAR-48 provenance comment added, and the complete Launch Log document appended without truncation" - launch_log_document: "7f791900-c44b-489f-b0af-e1464784e367" + t_plus_0_to_15: "Confirm 7e816c5 and controlled exceptions; independent exact-ref/path review." + t_plus_15_to_40: "Synchronize WS-001 documentation while preparing WS-002 decision packet without external action." + t_plus_40_to_60: "Independent review of graph, direct dependencies, exclusive leases, historical labels, and stops." + t_plus_60_to_75: "Conditional future worktree creation/recording for WS-012, otherwise preserve its blocked status." + t_plus_75_to_120: "Conditional WS-012 public/local read-only evidence and provenance reconciliation while WS-002 review completes." next_safe_sequence: - - "WS-002: obtain explicit canonical identity and authority decision with read-only evidence" - - "WS-003 and WS-004: plan history preservation and re-verify Community candidate only after WS-002" - - "WS-005: reconcile landing identity and verify a live HTTPS target only after a separately approved host/DNS action" - - "WS-006 and WS-007: validate and land downstream links only after WS-005 and separate merge approvals" - - "WS-008: owner-gated immutable release sequence; then WS-010 only" - - "WS-011: separate archive-pinned private-alpha readiness path after WS-009 and owner operating decisions" - - "WS-012: read-only Karaya production truth before WS-014 through WS-016" + - "Complete WS-001 structural synchronization." + - "Complete WS-002 decision record only." + - "Run WS-012 only after its clean worktree precondition." + - "Do not start a public release, deployment, migration, Studio/plugin, or parked-prototype implementation." diff --git a/.claude/orchestration/recovery-ledger.yaml b/.claude/orchestration/recovery-ledger.yaml index 2c4171f..f905a53 100644 --- a/.claude/orchestration/recovery-ledger.yaml +++ b/.claude/orchestration/recovery-ledger.yaml @@ -1,285 +1,119 @@ -schema_version: 1 -artifact: recovery-ledger -program: citewire-open-source -captured_at: "2026-08-15T00:00:00-04:00" -scope: - - "MeekPhills/citewire Community candidate and citewire.org landing" - - "MeekPhills/citewire-cloud private-alpha candidate" - - "Openly-Useful/openlyuseful.org project-card link" - - "MeekPhills/karayagroup Industry News consumer link" -authority_order: - - "Luis's explicit live approval" - - "current implementation and reproducible behavior" - - "fresh test, CI, deployment, and direct HTTP evidence" - - "reviewed git history and pull-request diffs" - - "current GitHub and Linear state" - - "current repository documentation, including CLAUDE.md" - - "CITEWIRE_CODEX_HANDOFF.md, CITEWIRE_EXECUTION_CHECKPOINT.md, older instructions, and historical prompts" -claim_statuses: - Verified: "Direct local or live evidence recorded in this recovery pass." - Historical: "Recorded in a dated handoff or checkpoint; not re-executed in this pass." - Inferred: "Reasonable relationship drawn from verified evidence; needs a focused check before action." - Unknown: "No sufficient evidence for action." - Contradicted: "Sources conflict; the higher-trust or fresher source governs." -sources: - - id: S1 - path: "/Users/luismorrobel/karayagroup/CITEWIRE_CODEX_HANDOFF.md" - trust: high - freshness: "2026-08-13 historical handoff, with 2026-08-14 website continuation" - - id: S2 - path: "/Users/luismorrobel/karayagroup/CITEWIRE_EXECUTION_CHECKPOINT.md" - trust: high - freshness: "2026-08-13 checkpoint, with 2026-08-14 website continuation" - - id: S3 - path: "/Users/luismorrobel/karayagroup/citewire/.git" - trust: high - freshness: "local Git refs inspected 2026-08-15" - - id: S4 - path: "/Users/luismorrobel/karayagroup/citewire-cloud/package.json" - trust: high - freshness: "current local package manifest inspected 2026-08-15" - - id: S5 - path: "/Users/luismorrobel/karayagroup/citewire-cloud/package-lock.json" - trust: high - freshness: "current local lockfile inspected 2026-08-15" - - id: S6 - path: "/Users/luismorrobel/karayagroup/karayagroup-brand/site/handoff/redesign/" - trust: high - freshness: "tracked and untracked file count inspected 2026-08-15" - - id: S7 - path: "/Users/luismorrobel/karayagroup/karayagroup-brand/site/api/_lib/publish-policy.js" - trust: medium - freshness: "checked-in historical runtime policy inspected 2026-08-15" - - id: S8 - path: "/Users/luismorrobel/karayagroup/karayagroup-brand/supabase/seed/source_registry.verified.yaml" - trust: medium - freshness: "checked-in historical source evidence inspected 2026-08-15" - - id: S9 - path: "https://karaya.group/industry-news/feed.json" - trust: high - freshness: "live JSON Feed fetched and independently summarized 2026-08-15" -last_good_state: - citewire_community: +schema_version: 2 +artifact: citewire-orchestration-recovery-ledger +as_of: "2026-08-15" +program: "CiteWire open-source and Karaya safety program" + +claim_status_legend: + Verified: "Observed locally in the current controlled workspace." + Historical: "Recorded dated evidence that requires fresh remote revalidation before action." + Inferred: "Bounded interpretation, not execution authority." + Unknown: "Not established." + Contradicted: "A lower-trust claim conflicts with a governing recorded fact." + +current_control_baseline: + - id: "REC-001" claim_status: Verified - branch: agent/citewire-product-launch - head: 10aee95ac95bb437b4607723cd20fa5c8f9d1879 - draft_pr: "https://github.com/MeekPhills/citewire/pull/1" - verified_properties: - - "head/ref and mergeable draft state were freshly read on 2026-08-15" - - "zero runtime and development dependencies; Node 18+ ESM; providers disabled by default" - historical_validation: - - "66/66 tests, 5/5 release checks, 22 syntax checks, package and secret gates passed in historical evidence" - provenance: [S1, S2, S3] - trust: high - citewire_cloud: + claim: "CiteWire orchestration current local head is 7e816c5b2900cb04309f751e5d93bab79752128a. Initial handoff package commit 80017d60c4396d704e0be55af4cd9cb1dc548b94 is historical evidence only." + action_boundary: "Do not represent 80017d6 as the current head." + - id: "REC-002" claim_status: Verified - branch: agent/cloud-alpha-http - head: 69068275ca0e332e36304533aa0f6b5d2e291405 - implementation_base: ad7e58fb2ac3f6ebc4c7d0247c105955dd9696b0 - draft_pr: "https://github.com/MeekPhills/citewire-cloud/pull/1" - community_archive_pin: 10aee95ac95bb437b4607723cd20fa5c8f9d1879 - pin_locations: - - package.json - - package-lock.json - properties: - - "15/15 fresh committed test gate, syntax, direct HTTP, and concurrent account-isolation checks passed after the docs-only synchronization" - - "Node 18/22 CI runs 31893670759 and 31893673430 passed at 69068275ca0e332e36304533aa0f6b5d2e291405" - - "one-way Community import and fail-closed account-scoped service composition documented" - - "draft, unpublished, and undeployed" - provenance: [S1, S2, S4, S5] - trust: high - citewire_landing: + claim: "Visible brand is CiteWire, technical token is citewire, and project parent is Openly Useful." + action_boundary: "These facts do not authorize repository, package, registry, DNS, hosting, deployment, or Cloud actions." + - id: "REC-003" claim_status: Verified - branch: agent/citewire-landing-site - head: ff09b68ed811531eb0ca630b65daeaf06cc3304c - base: 10aee95ac95bb437b4607723cd20fa5c8f9d1879 - draft_pr: "https://github.com/MeekPhills/citewire/pull/2" - verified_properties: - - "20-file stacked landing and website-metadata diff" - - "70/70 committed tests, 5/5 release checks, package dry run, and diff/secret checks passed freshly on the exact head" - historical_validation: - - "Node 18/22 green runs 31849200115 and 31849291099; 31 syntax and routine browser checks recorded" - provenance: [S1, S2, S3] - trust: high - openly_useful_link: - claim_status: Historical - branch: agent/citewire-site-link - head: 28af5c7a5fdd0425ced2fe45f5c50e05946758de - base_main: cf137f9b77d68d16c41cd90f1af8d2df3b9972f4 - draft_pr: "https://github.com/Openly-Useful/openlyuseful.org/pull/8" - properties: - - "exact two-file diff: index.html and scripts/validate_site.py" - - "validation runs 31849408964 and 31849412743 and Vercel preview recorded green" - provenance: [S1, S2] - trust: high - karaya_link: + claim: "Openly-Useful/citewire is authenticated absent and unapproved." + action_boundary: "Do not create, transfer, mirror, archive, rename, or infer a route." + - id: "REC-004" claim_status: Verified - branch: agent/citewire-site-link - head: 3a90e43d8797af9e7c0bc02d4c1ae6f51ebd19a6 - base_main: 9c1506320771faf177f3675ef5ea1c1eff36fe81 - draft_pr: "https://github.com/MeekPhills/karayagroup/pull/17" - verified_properties: - - "exact three-file diff: bridge document, existing About-page link target, and committed regression" - - "CI run 31849281233 and preview recorded green" - historical_validation: - - "16-page build, 409/409 tests, registry, audit, compliance, diff, and secret gates recorded" - provenance: [S1, S2, S3] - trust: high - karaya_production: + claim: "citewire/.project-status/manifest.json is a controlled untracked proposal. The CiteWire repository is not Git-clean until it is separately dispositioned." + action_boundary: "Preserve it unstaged and exclude it from orchestration commits." + - id: "REC-005" claim_status: Verified - main: 9c1506320771faf177f3675ef5ea1c1eff36fe81 - properties: - - "https://karaya.group, /industry-news, /industry-news/about, and /api/v1/news/topics returned 200 in routine smoke evidence" - - "topics API returned nine topics" - - "MCP initialize reported protocol 2025-06-18 and karaya-news-mcp 1.0.0" - - "live About page retains the working GitHub Citewire link until citewire.org is healthy" - provenance: [S1, S2] - trust: high -completed: - - id: REC-001 + claim: "citewire-public-platform is a dirty parked prototype at 7e816c5 and karayagroup-editorial-shadow is a dirty preserved proposal at 9c150632." + action_boundary: "Neither receives WS completion credit, may be staged/merged/cleaned, or may replace a clean implementation worktree." + - id: "REC-006" claim_status: Verified - claim: "Community provider-compliance repair is present at 10aee95ac95bb437b4607723cd20fa5c8f9d1879 and remains a draft PR #1 candidate." - provenance: [S1, S2, S3] - trust: high - - id: REC-002 + claim: "karayagroup-production-audit is absent and is a hard WS-012 precondition." + action_boundary: "Create a fresh clean isolated worktree from verified origin/main before WS-012; never substitute live, brand, or editorial-shadow." + - id: "REC-007" claim_status: Verified - claim: "Cloud implementation base ad7e58fb2ac3f6ebc4c7d0247c105955dd9696b0 pins Community archive 10aee95ac95bb437b4607723cd20fa5c8f9d1879 in package.json and package-lock.json. Docs-only head 69068275ca0e332e36304533aa0f6b5d2e291405 reconciles all four active narrative references and preserves the future ^0.2.0 gate." - provenance: [S1, S2, S4, S5] - trust: high - - id: REC-003 + claim: "Karaya owner screenshot inventory is protected at 49 files: 8 tracked and 41 untracked." + action_boundary: "Never edit, stage, clean, move, delete, or use as a baseline." + +recorded_historical_work: + - id: "REC-101" claim_status: Historical - claim: "The Community landing branch, Openly Useful link branch, and Karaya link branch were pushed as green, mergeable draft PRs without production deployment." - provenance: [S1, S2] - trust: high - - id: REC-004 - claim_status: Verified - claim: "Karaya production is live and healthy under its verified routine smoke contract; it has not been switched to citewire.org." - provenance: [S1, S2] - trust: high - - id: REC-005 - claim_status: Verified - claim: "Owner screenshot inventory under karayagroup-brand/site/handoff/redesign totals 49 files: 8 tracked and 41 untracked. The 41 untracked files are unstaged and must be preserved." - provenance: [S6] - trust: high - - id: REC-006 - claim_status: Historical - claim: "KAR-66 was created for the dedicated open-source program and linked to completed KAR-48 and KAR-36; the complete Karaya Launch Log received the decision entry." - provenance: [S1, S2] - trust: high -partial: - - id: REC-101 - claim_status: Verified - claim: "Citewire landing implementation is complete in draft PR #2, but the public domain is not ready for it." - blocking_condition: "citewire.org is parked over HTTP and its HTTPS handshake fails; no Citewire Vercel project was found." - provenance: [S1, S2] - trust: high - - id: REC-102 + claim: "CiteWire Community candidate is recorded at 10aee95 in draft PR #1. Cloud docs-only reconciliation is recorded at 6906827 and its archive pin is 10aee95." + action_boundary: "Fresh remote/CI evidence is required before release, deployment, or dependency action." + - id: "REC-102" claim_status: Historical - claim: "Openly Useful PR #8 and Karaya PR #17 are code-complete draft link changes, held until citewire.org resolves to verified HTTPS content." - blocking_condition: "Merging now would point a production-visible link to a broken destination." - provenance: [S1, S2] - trust: high - - id: REC-103 + claim: "CiteWire landing PR #2, Openly Useful PR #8, Karaya PR #17, CiteWire PR #5, and Cloud PR #1 are recorded as drafts." + action_boundary: "Do not infer current mergeability, CI, preview, deployment, or PR-head state without a fresh remote read." + - id: "REC-103" claim_status: Historical - claim: "Community and Cloud candidate code is verified for owner review but immutable release setup and owner release actions remain incomplete." - blocking_condition: "release environment, private vulnerability reporting, npm trusted-publishing verification, final merge, tag, publication, registry, and catalog actions are separately gated." - provenance: [S1, S2] - trust: high - - id: REC-104 - claim_status: Inferred - claim: "The open-source program command is a governed design and execution framework, not a completed migration or deployed hosted runtime." - blocking_condition: "canonical organization/repository identity, legacy disposition, provider/model choice, cost cap, migration path, and publishing authority remain undecided." - provenance: [S1, S2] - trust: high -superseded: - - id: REC-201 + claim: "citewire.org recorded a parked HTTP response and failed HTTPS TLS. It is not a verified live CiteWire destination." + action_boundary: "Do not merge downstream links or publish metadata pointing there until WS-005 verifies live HTTPS." + - id: "REC-104" claim_status: Historical - claim: "Cloud's former Community archive pin 6c89b6ea4c8b080fe2ffa166c41eb3113059c894 was superseded by 10aee95ac95bb437b4607723cd20fa5c8f9d1879." - replacement: "ad7e58fb2ac3f6ebc4c7d0247c105955dd9696b0 package.json and package-lock.json, with narrative reconciliation at 69068275ca0e332e36304533aa0f6b5d2e291405" - provenance: [S1, S2, S4, S5] - trust: high - - id: REC-202 + claim: "Karaya public smoke showed 50 feed items, 16 over the provisional cap, and one POWER Magazine trailer. Current code includes the intended gate." + action_boundary: "Treat this as stored-corpus drift pending WS-012, not proof of a current ingest bypass." + - id: "REC-105" claim_status: Historical - claim: "The initial Karaya base-repair sequencing is complete: PR #16 merged into agent/fix-fuzzy-candidate-test at b45af558ec0ebea3a2f9d692b2ce087e92a2379b, then PR #15 merged to main at f3610e4e3eddfaa1c89a398f369ac6c1386662ed; the later approved bridge reached main at 9c1506320771faf177f3675ef5ea1c1eff36fe81." - provenance: [S1, S2] - trust: high - - id: REC-203 + claim: "KAR-66 is parent; KAR-67, KAR-68, KAR-69, and KAR-70 are the recorded work items; KAR-53 is related console context." + action_boundary: "KAR-71 and KAR-77 remain context-only and must not become stream mappings or dependencies." + - id: "REC-106" claim_status: Historical - claim: "The previous live About-page destination was GitHub Community, not citewire.org; it remains the correct live destination until the domain gate is satisfied." - provenance: [S1, S2] - trust: high -contradicted: - - id: REC-301 - claim_status: Contradicted - topic: "Karaya root deployment description" - lower_trust_claim: "Root AGENTS.md describes an undeployed one-page Astro site with no news application." - governing_resolution: "Repository-local Karaya CLAUDE.md and SESSION_HANDOFF.md, plus fresh production smoke evidence, establish a live Industry News system. Do not use the stale root description for execution decisions." - provenance: [S1, S2] - trust: high - - id: REC-302 - claim_status: Contradicted - topic: "Cloud dependency pin" - lower_trust_claim: "Earlier checkpoint sections name archive commit 6c89b6e as current." - governing_resolution: "Current package.json and package-lock.json verify the 10aee95 archive pin at Cloud head ad7e58f." - provenance: [S1, S2, S4, S5] - trust: high - - id: REC-303 - claim_status: Contradicted - topic: "Citewire public-site availability" - lower_trust_claim: "Local landing branch and passing preview/CI can be read as a public-site launch." - governing_resolution: "The local site artifact and drafts are not the live domain. citewire.org is parked over HTTP and HTTPS fails; treat public landing availability as not ready." - provenance: [S1, S2] - trust: high - - id: REC-304 - claim_status: Contradicted - topic: "Missing Claude-specific handoff" - lower_trust_claim: "A requested file named CITEWIRE_CLAUDE_CODE_HANDOFF.md was expected by a continuation instruction." - governing_resolution: "CITEWIRE_CODEX_HANDOFF.md exists; CITEWIRE_CLAUDE_CODE_HANDOFF.md is absent from the workspace. This recovery ledger and PROJECT_HANDOFF.md are the durable replacement, not a claim that the missing file was found." - provenance: [S1] - trust: high -unknowns: - - id: REC-401 + claim: "KAR-48 and KAR-36 are Done provenance/history. KAR-24 is Todo; linked PR #16 does not establish completion of the Astro-major-upgrade dependency." + action_boundary: "These are context-only and do not map to an active CiteWire stream or authorize product work." + - id: "REC-107" claim_status: Unknown - topic: "Canonical identity and migration" - detail: "No Openly-Useful/citewire repository is verified as created. The legacy repository disposition, package and registry identity, migration plan, and compatibility commitment have not been approved." - action_boundary: "Do not create or rename repositories, alter visibility, migrate code or issues, or publish packages without explicit owner authorization." - provenance: [S1, S2] - trust: high - - id: REC-402 - claim_status: Unknown - topic: "Hosted runtime and operations" - detail: "Cloud has no deployment. Participants, credentials and rotation, domain and Origin policy, persistence, retention, OAuth, billing, quotas, support, terms, privacy, provider/model selection, and cost cap are unresolved." - action_boundary: "No provider activation, paid service, production deployment, account creation, or credential delivery is authorized." - provenance: [S1, S2] - trust: high - - id: REC-403 + claim: "No verified CiteWire Cowork/plugin manifest or GitHub/Linear work item maps to a required stream." + action_boundary: "Studio/plugin work remains speculative and outside the required graph." + +parked_prototype_findings: + public_platform: + claim_status: Verified + finding: "Runtime changes precede WS-013 design; Studio trusts caller-supplied accountId; pause does not gate all writes; nested sensitive values can survive cleanup; active classifier creates a publish seam; registry input lacks schema validation; package excludes Studio; resource compatibility is not yet Node-18/22 verified." + action_boundary: "Park the entire diff. WS-017 must implement from approved WS-013 schemas in a clean worktree and excludes Studio/plugins." + editorial_shadow: claim_status: Verified - topic: "Feed signal: 50 / 16-over-cap / one trailer" - detail: "A fresh live JSON Feed fetch returned 50 items. Mechanical inspection found 16 content_text values longer than the current 480-character provisional cap and one item whose content_text contains 'appeared first on POWER Magazine'. Current code contains the intended gate, so this proves stored-corpus policy drift and does not by itself prove the present ingest path bypasses policy." - action_boundary: "Inventory affected rows and production migration/runtime truth read-only before proposing any revision-aware remediation. Do not alter production data, thresholds, sources, or migrations without exact owner approval." - provenance: [S7, S9] - trust: high - - id: REC-404 + finding: "Executable migration is present; fingerprint lacks as-of/window semantics; corpus query lacks deterministic pagination; retries/partial writes are not safely convergent; tests do not prove database/RLS/race behavior; provenance asserts 0.1.0 against upstream 6c89b6e package version 0.2.0. Focused verification stopped after 21 passing tests when one test file could not load @supabase/supabase-js because dependencies were absent; the shell was Node v24.18.0 rather than required Node 22. No install, rerun, build, audit, commit, migration, or deployment followed." + action_boundary: "Preserve without credit. WS-012 reconciles vendor provenance; WS-014 starts only after production truth and schema sufficiency." + +graph_corrections: + - "The graph contains exactly 17 streams." + - "WS-008 depends on WS-003, WS-004, and WS-005." + - "WS-011 depends on WS-002 and WS-009." + - "Karaya direct sequence is WS-012 to WS-014 to WS-015 to WS-016." + - "WS-017 depends on WS-004 and WS-013 and is the only new required stream." + - "Studio/plugin work is speculative and not a required stream." + - "No exclusive path lease overlaps another active mutable lease." + +unknowns_and_stops: + - id: "REC-401" + claim_status: Unknown + topic: "Repository route and immutable public identity" + action_boundary: "WS-002 and WS-003 require separate owner decisions and fresh authority evidence." + - id: "REC-402" + claim_status: Unknown + topic: "CiteWire website/DNS/hosting" + action_boundary: "WS-005 requires separate owner approval and independent live HTTPS evidence." + - id: "REC-403" + claim_status: Unknown + topic: "Cloud operator, tenancy, credentials, support, privacy, billing, deployment, and retention" + action_boundary: "WS-011 remains blocked; no default Community/Karaya trust." + - id: "REC-404" claim_status: Unknown - topic: "Fresh remote PR, CI, Vercel, GitHub, and Linear state" - detail: "Historical IDs are recorded above, but any mutation or merge decision needs a fresh read-only remote check at execution time." - action_boundary: "Do not infer a green check, mergeability, deployment, issue status, or repository availability from historical evidence alone." - provenance: [S1, S2] - trust: high + topic: "Karaya production migrations, source/circuit-breaker state, cron, queue, and exact corpus truth" + action_boundary: "WS-012 read-only production-truth packet is required before shadow, UI, or rollout." + safety_state: - claim_status: Verified - no_secret_detected: true - no_irreversible_action_in_recovery: true - preserved_owner_assets: - total: 49 - tracked: 8 - untracked: 41 - rule: "Never edit, stage, delete, clean, or include the untracked owner screenshots in a broad commit." - prohibited_without_explicit_owner_approval: - - "repository creation, visibility, organization, or legacy-history changes" - - "merge, deploy, domain attachment, DNS, provider activation, migration, or outbound email" - - "tag, GitHub release, npm publication, MCP Registry or catalog submission" - - "paid-service, model, or provider decision" - - "visible Karaya copy change without read-aloud approval" - provenance: [S1, S2, S6] - trust: high + no_secret_or_private_transcript: true + no_external_mutation_authorized_by_this_ledger: true + no_plugin_or_connector_delivery_requirement: true + hard_stops: + - "repository create, transfer, archive, rename, visibility, or history change" + - "DNS, domain, certificate, hosting, deployment, merge, tag, publication, registry, catalog, or paid service" + - "provider/source activation, migration, data/configuration mutation, corpus rewrite, canary, or automatic publication" + - "visible Karaya copy without Luis read-aloud approval" + - "protected screenshots or controlled dirty exception paths" diff --git a/.claude/orchestration/streams/WS-001.md b/.claude/orchestration/streams/WS-001.md index 3522138..76cc2bf 100644 --- a/.claude/orchestration/streams/WS-001.md +++ b/.claude/orchestration/streams/WS-001.md @@ -2,121 +2,71 @@ ## Objective -Keep a single, evidence-backed execution record for the Citewire open-source -program. This stream coordinates work. It does not implement product behavior, -create accounts, or make public changes. +Maintain the verified 17-stream control package without product or external +system mutation. -## Status +## Priority, status, and dependencies -**Partial / safe to continue as documentation only.** Recovery artifacts are -being established on `agent/citewire-orchestration-handoff`; no execution -authority is created by them. +- Priority: P0. +- Status: active, documentation-only. +- Dependencies: none. -## Provenance +## Current state -- `CITEWIRE_CODEX_HANDOFF.md` and `CITEWIRE_EXECUTION_CHECKPOINT.md` -- Current local Citewire worktree at - `ff09b68ed811531eb0ca630b65daeaf06cc3304c` -- `.claude/orchestration/recovery-ledger.yaml` +Current local orchestration head is +7e816c5b2900cb04309f751e5d93bab79752128a. The initial handoff package at +80017d60c4396d704e0be55af4cd9cb1dc548b94 is historical evidence only. -Trust: high for local Git and current artifacts; high but historical for the -dated checkpoint and handoff. +The controlled untracked .project-status/manifest.json proposal means the +repository is not Git-clean until it is separately dispositioned. Preserve it +unstaged and exclude it from every orchestration commit. -## Last-good state +## Exclusive ownership -The program had no durable `.claude/orchestration/` package. Community, Cloud, -landing, Openly Useful, and Karaya work were separated into draft branches and -owner-gated follow-on actions. +- PROJECT_HANDOFF.md +- CLAUDE.md managed orchestration block +- .claude/orchestration/ -## Completed - -- Pickup evidence was consolidated without changing product code. -- The recovery ledger records exact SHAs, PRs, incomplete owner gates, and - protected owner assets. - -## Remaining - -- Keep recovery, work graph, execution state, verification evidence, handoff, - and stream briefs mutually consistent. -- Re-read remote state before any GitHub, Linear, or deployment mutation. -- Record outcomes only after the described checks have actually passed. - -## Contradictions and unknowns - -- Root Karaya deployment documentation is stale and cannot govern the live - Industry News program. -- `CITEWIRE_CLAUDE_CODE_HANDOFF.md` is missing; do not claim it was recovered. -- Remote PR, CI, Vercel, GitHub, and Linear states require fresh checks. - -## Dependencies - -None. This stream is the prerequisite control record for WS-002 through -WS-008. - -## Owned paths - -- `PROJECT_HANDOFF.md` -- `CLAUDE.md` managed orchestration block only -- `.claude/orchestration/**` - -No product, configuration, screenshot, or deployment path is owned here. +The .project-status path, product source, tests, packages, worktrees, Git +refs, and external systems are excluded. ## Binary definition of done -- Every active stream has a concise, independently executable brief. -- Recovery facts distinguish Verified, Historical, Inferred, Unknown, and - Contradicted claims. -- Every planned mutation has a named owner, check, rollback, and approval - boundary. -- YAML parses and all intra-artifact stream IDs and paths resolve. - -## Artifact - -`PROJECT_HANDOFF.md`, `.claude/orchestration/recovery-ledger.yaml`, -`.claude/orchestration/work-graph.yaml`, -`.claude/orchestration/execution-state.yaml`, -`.claude/orchestration/verification-evidence.md`, and this stream directory. +- Every artifact parses and names exactly WS-001 through WS-017. +- Current head, historical initial package, identity facts, controlled + exceptions, direct dependencies, and context-only KAR-71/KAR-77 are correct. +- Every stream has exclusive ownership, checks, artifact, rollback, recorded + mapping, execution label, reviewer, and first action. +- Claims distinguish current local facts from recorded historical remote state. +- No secret or private transcript is present. ## Checks -- **Baseline:** parse all orchestration YAML and inspect `git diff --check`. -- **Focused:** verify every cited SHA, PR, path, and owner gate against fresh - local or remote evidence before changing its claim status. -- **Integration:** independently review the handoff and work graph for missing - dependencies, duplicate owners, accidental production steps, and forbidden - screenshot paths. +- Parse all orchestration YAML, run git diff --check, and record git status + without staging .project-status. +- Mechanically validate IDs, direct dependencies, all 17 briefs, artifacts, + and no exclusive-path collision. +- Require independent Opus graph review and Sonnet exact-reference review. -## Rollback +## Artifact and rollback -Revert only the focused orchestration commit or restore the last verified -artifact version. Never use broad reset/clean operations and never touch owner -screenshots. +The artifact is the orchestration package. Roll back only a focused +documentation commit. Never use broad reset/clean or touch controlled +exceptions. ## Mappings -- Linear: `KAR-66` (open-source program); relates to completed `KAR-48` and - `KAR-36`. -- GitHub: coordination only; no PR is merged by this stream. - -## Claude tier - -Level 0 Fable master coordinator. Delegate bounded evidence or implementation -work only after this record identifies a safe owner and dependency order. - -## Reviewer and integrator - -- Independent reviewer: Terra for work-graph and contradiction review. -- Exact-reference reviewer: Luna. -- Integrator: Sol parent orchestrator. +- GitHub: recorded historical CiteWire PR #5. +- Linear: recorded historical KAR-66, In Progress. -## First safe action +## Execution label, reviewer, and first action -Parse the orchestration YAML, run `git diff --check`, and reconcile only -evidence that can be inspected read-only. +- Execution label: Fable L0 integration, planning label only. +- Reviewer: independent Opus graph reviewer with Sonnet exact-reference check. +- First action: establish the 7e816c5 baseline, preserve controlled + exceptions, then parse and cross-check the graph. ## Escalation -Stop for Luis if a stream would create a repository, alter identity or legacy -history, merge, deploy, change DNS, activate a provider, migrate data, choose -a paid service, publish, tag, release, submit a registry/catalog, or change -visible Karaya copy. +Stop for conflicting evidence, secret/private transcript, owner overlap, or a +claim requiring fresh remote verification. diff --git a/.claude/orchestration/streams/WS-002.md b/.claude/orchestration/streams/WS-002.md index 1c2a082..c1b90e6 100644 --- a/.claude/orchestration/streams/WS-002.md +++ b/.claude/orchestration/streams/WS-002.md @@ -1,117 +1,64 @@ -# WS-002 — Canonical identity and authority decisions +# WS-002 — Canonical CiteWire identity and authority packet ## Objective -Resolve the owner-controlled identity model for an open-source Citewire while -preserving `MeekPhills/citewire` as the known legacy Community candidate until -an explicitly approved transition exists. +Record settled CiteWire identity facts and separate them from unapproved +repository, package, registry, website, and Cloud operations. -## Status +## Priority, status, and dependencies -**Blocked on owner decisions.** Planning and evidence collection are allowed; -repository creation, renaming, transfer, visibility changes, package identity, -and legacy disposition are not authorized. +- Priority: P0. +- Status: active, decision-record only. +- Dependencies: WS-001. -## Provenance +## Current state -- `$launch-citewire-open-source` command described in the Citewire handoff -- Community candidate: `10aee95ac95bb437b4607723cd20fa5c8f9d1879`, draft PR #1 -- Landing candidate: `ff09b68ed811531eb0ca630b65daeaf06cc3304c`, draft PR #2 -- Historical check: `Openly-Useful/citewire` was proposed but not visible +Visible CiteWire, technical citewire, and Openly Useful parent are settled. +Openly-Useful/citewire is authenticated absent and unapproved for creation or +transfer. -Trust: high for local commits and recorded owner gates; any current GitHub -organization availability is Unknown until freshly checked. +## Exclusive ownership -## Last-good state +- docs/canonical-identity-decision.md -`MeekPhills/citewire` is the public MIT Community candidate, remains a draft -release candidate, and is not yet the approved canonical `Openly-Useful` -repository. `citewire@0.2.0` is unpublished. - -## Completed - -- The open-source program command captures an owner-gated canonical-repo - proposal, full MCP direction, Karaya custom-consumer boundary, and policy - guardrails. -- KAR-66 was historically created to track the program. - -## Remaining - -- Luis decides canonical organization and repository slug. -- Luis decides whether and how the legacy `MeekPhills/citewire` history is - retained, forked, transferred, archived, or documented. -- Luis decides package, registry, and naming continuity before any immutable - release action. - -## Contradictions and unknowns - -- `Openly-Useful/citewire` being proposed does not establish that it exists, - can be created, or should be canonical. -- A local landing site at `ff09b68` does not establish public-domain readiness. -- Ownership, organization permissions, release reviewer configuration, and - npm trusted-publisher access are Unknown. - -## Dependencies - -- WS-001 orchestration evidence. -- Explicit Luis decisions for canonical identity and legacy disposition. - -## Owned paths - -Future owner-approved identity documents, repository metadata, and public -README links. Do not modify them until the owner decision is recorded. +No external identity, GitHub setting, package, registry, DNS, hosting, Cloud, +or product source path is owned. ## Binary definition of done -- The canonical organization/repository and legacy treatment are written in an - owner-approved decision record. -- Fresh GitHub evidence confirms the chosen target is accessible to the owner. -- Package, registry, documentation, and migration impacts are enumerated. -- No identity mutation happens before the decision record and explicit approval. - -## Artifact - -An owner-approved identity decision record linked from `PROJECT_HANDOFF.md` -and KAR-66, with fresh GitHub evidence. +- Record CiteWire, citewire, and Openly Useful facts. +- Preserve credential-free authenticated evidence of target absence. +- List separate required approvals for target route, legacy disposition, npm, + MCP Registry, MCP identifier, citewire.org authority, support/security, and + separate Cloud operator identity. +- Do not create, transfer, archive, deploy, publish, or change DNS. ## Checks -- **Baseline:** read-only `gh repo view` and local remote/branch inspection. -- **Focused:** verify organization authority, candidate repository name, - README/package links, and release-environment prerequisites. -- **Integration:** Terra confirms the identity choice does not imply unapproved - migration, publication, or a broken Karaya destination. +- Read remotes, current ref, and package metadata. +- Independently review exact public names and credential-free authority + evidence. +- Check Community, Cloud, Openly Useful, and Karaya references for identity + consistency. -## Rollback +## Artifact and rollback -Before any mutation, the rollback is to make no identity change. After an -approved reversible metadata draft, revert only its focused commit. A created -or transferred repository is not assumed reversible and requires an owner plan. +The artifact is the canonical identity decision packet. Revert only its +focused document change; it creates no external authority. ## Mappings -- Linear: `KAR-67`, child of program `KAR-66`. -- GitHub: `MeekPhills/citewire` issue #3 plus draft PR #1 and draft PR #2; - proposed `Openly-Useful/citewire` is not a verified repository. - -## Claude tier - -Level 1 Fable nested planner for decision framing; Level 2 Opus only for an -owner-approved, scoped implementation. No agent has authority to decide it. - -## Reviewer and integrator - -- Independent reviewer: Terra architecture/authority review. -- Exact-reference reviewer: Luna. -- Integrator: Sol parent orchestrator. +- GitHub: recorded historical MeekPhills/citewire issue #3. +- Linear: recorded historical KAR-67, Todo. -## First safe action +## Execution label, reviewer, and first action -Read the program command and collect a fresh, read-only organization/repository -availability check. Record the result as Verified or Unknown. +- Execution label: Fable L1 identity coordination with Opus authority review. +- Reviewer: independent Opus identity reviewer with Sonnet exact-name check. +- First action: record settled facts and unapproved operations without any + external action. ## Escalation -Escalate to Luis for any identity choice, repository creation or transfer, -legacy repository setting, package or registry identity, release environment, -or public-facing naming change. +Stop for ambiguous authority, target creation/transfer, package/registry work, +DNS/provider action, or paid-service decision. diff --git a/.claude/orchestration/streams/WS-003.md b/.claude/orchestration/streams/WS-003.md index ce5e5e6..0934bc5 100644 --- a/.claude/orchestration/streams/WS-003.md +++ b/.claude/orchestration/streams/WS-003.md @@ -1,133 +1,60 @@ -# WS-003 — Legacy history and runtime migration plan +# WS-003 — Repository route and history preservation ## Objective -Resolve a retain-in-place route or create and, only after separate exact owner -approval, execute a reversible history-preserving canonical repository -migration. Planning alone does not complete this stream or unblock immutable -release. +Verify the owner-selected retain, transfer, or mirror route while preserving +full history and a rollback path. -## Status +## Priority, status, and dependencies -**Not started / blocked on WS-002 and owner approval.** No source migration, -repository transfer, database migration, provider activation, account setup, -or runtime deployment has occurred. +- Priority: P0. +- Status: blocked. +- Dependencies: WS-002. -## Provenance +## Current state -- Community at `10aee95ac95bb437b4607723cd20fa5c8f9d1879`, draft PR #1 -- Cloud at `ad7e58fb2ac3f6ebc4c7d0247c105955dd9696b0`, draft PR #1, importing - that exact Community archive -- Karaya production main `9c1506320771faf177f3675ef5ea1c1eff36fe81` -- `$launch-citewire-open-source` historical program command +Openly-Useful/citewire is absent. No target creation, transfer, mirror, +archive, or legacy disposition is approved. -Trust: high for the local code boundaries; Unknown for every target runtime, -data, identity, and operational decision not yet approved. +## Exclusive ownership -## Last-good state +- docs/history-migration-runbook.md +- /private/tmp/citewire-history-verification-clone -Community is a dependency-free, provider-disabled Node 18+ ESM package. Cloud -is an undeployed private-alpha boundary with account-isolation regressions. -Karaya is a live customized consumer and must not become a generic Citewire -remote by implication. - -## Completed - -- Code boundaries and one-way Community-to-Cloud import are documented. -- The program command identifies the need for a forkable full MCP, automated - editorial workflow, exceptions-only console, and cadence assessments. -- No production migration or runtime activation has been performed. - -## Remaining - -- Define approved source-history treatment and branch/release lineage. -- Define data, account, credential, provider, model, retention, and rollback - migration contracts. -- Specify how Karaya consumes adapters while preserving its editorial and - account isolation boundaries. -- Produce a migration rehearsal only after contracts and authority exist. -- If Luis selects retain-in-place, record and independently verify the canonical - refs and legacy disposition. If Luis selects a move, run a separately approved - Phase B and verify source/destination history through an isolated fresh clone. - -## Contradictions and unknowns - -- The requested direction toward automated reviews does not authorize automatic - publishing of unsupported, rights-unknown, or unreviewed content. -- Migration scope, data ownership, target repository, runtime provider, model, - costs, retention, and compatibility guarantees are Unknown. -- No current evidence establishes a generic hosted Citewire runtime. - -## Dependencies - -- WS-001 orchestration controls. -- WS-002 canonical identity decision. -- Owner approval of data, account, provider, model, cost, legal, privacy, and - operational contracts. - -## Owned paths - -Future migration design, compatibility matrix, and rehearsal evidence only. -Do not change Community, Cloud, Karaya, GitHub, database, or provider paths -under this stream without an approved child workstream. +No active remote/ref mutation is owned. ## Binary definition of done -- A source, data, account, runtime, provider, and rollback inventory exists. -- Each proposed operation is classified reversible, irreversible, or manual. -- A no-write rehearsal proves ordering and identifies owner gates. -- The selected route itself is verified: either recorded retain-in-place state, - or a separately owner-approved Phase B with full-history/ref/clone evidence - and retained rollback. -- A plan without route verification is not complete and cannot unblock WS-008. - -## Artifact - -Versioned migration plan, compatibility matrix, rollback plan, and read-only -rehearsal record linked from KAR-66. +- Record selected route, exact target, legacy disposition, and owner approval. +- If a move occurs, preserve full history and named refs. +- Verify source and destination through an isolated clone. +- Preserve legacy reachability and prove rollback before WS-008. ## Checks -- **Baseline:** inspect Git history, manifests, architecture documents, and - existing account-isolation regressions without mutation. -- **Focused:** validate each proposed import, adapter provenance, data mapping, - credential boundary, and rollback action against the approved contract. -- **Integration:** Terra verifies Karaya remains a customized consumer and that - migration cannot silently activate providers or publish editorial material. +- Run git fsck --full and inventory refs/remotes read-only. +- Compare commit counts and named refs. +- After exact approval, verify source/destination through an isolated fresh + clone and reconcile recorded PR/package/registry/public URLs. -## Rollback +## Artifact and rollback -Until an owner-approved migration begins, rollback is no action. Every future -data or identity step requires an explicit reversible procedure, backup proof, -and a stop condition before execution. +The artifact is the history-migration runbook and fresh-clone report. Preserve +the legacy remote and clone. No rewrite, deletion, transfer, or archive occurs +before separate approval. ## Mappings -- Linear: `KAR-67`, child of program `KAR-66`. -- GitHub: `MeekPhills/citewire` issue #3, Community draft PR #1, and only a - later owner-approved target repository. Cloud PR #1 is a downstream consumer, - not the migration target. - -## Claude tier - -Level 1 Fable nested planner. Level 2 Opus may implement only a separately -approved, bounded rehearsal or migration task. Level 3 Sonnet validates -contracts and fixtures; it never applies migrations. - -## Reviewer and integrator - -- Independent reviewer: Terra migration and product-architecture review. -- Exact-reference reviewer: Luna. -- Integrator: Sol parent orchestrator. +- GitHub: recorded historical MeekPhills/citewire issue #3. +- Linear: recorded historical KAR-67, Todo. -## First safe action +## Execution label, reviewer, and first action -Write a read-only inventory of repositories, interfaces, data stores, owner -gates, and rollback feasibility. Mark every unresolved operational decision -Unknown rather than inferring it. +- Execution label: Opus history-migration owner under Fable L1. +- Reviewer: independent Opus git-history reviewer. +- First action: produce read-only source/target/ref inventory after WS-002. ## Escalation -Escalate to Luis for any source-history change, repository migration, database -migration, provider or model selection, credential/data access, paid service, -runtime deployment, customer/account action, or compatibility commitment. +Stop for absent exact owner route, history rewrite, target creation, transfer, +archive, or deletion. diff --git a/.claude/orchestration/streams/WS-004.md b/.claude/orchestration/streams/WS-004.md index b9fd8df..7820066 100644 --- a/.claude/orchestration/streams/WS-004.md +++ b/.claude/orchestration/streams/WS-004.md @@ -1,130 +1,67 @@ -# WS-004 — Community candidate and provider-compliance release gate +# WS-004 — Community 0.2 candidate re-verification ## Objective -Preserve and independently re-verify the Community candidate at -`10aee95ac95bb437b4607723cd20fa5c8f9d1879` while keeping the immutable release -path owner-gated. +Re-verify the existing 0.2 candidate and reconcile candidate metadata with +WS-002 before immutable release. -## Status +## Priority, status, and dependencies -**Code complete / immutable release blocked.** `MeekPhills/citewire` draft PR -#1 remains the release candidate. It is not merged, tagged, published, or -submitted to any registry/catalog. +- Priority: P0. +- Status: recorded candidate, re-verification blocked. +- Dependencies: WS-002. -## Provenance +## Current state -- Community branch `agent/citewire-product-launch` -- SHA `10aee95ac95bb437b4607723cd20fa5c8f9d1879` -- Draft PR #1: `https://github.com/MeekPhills/citewire/pull/1` -- Historical checks: 66/66 tests, 5/5 release checks, 22 syntax checks, - manifest/package/diff/secret gates, Node 18 and Node 22 CI green +The recorded candidate is draft PR #1 at 10aee95. Its committed-suite and +Node 18/22 evidence is historical pending remote revalidation. The dirty +public-platform prototype is excluded. -Trust: high historical evidence, requiring a fresh check immediately before a -merge or release action. +## Exclusive ownership -## Last-good state +- package.json +- package-lock.json +- server.json +- docs/providers.md -The candidate is MIT, dependency-free, Node 18+ ESM, provider-disabled by -default, and has documented attribution, pacing, bounded excerpts, and -operator responsibilities. npm contains `citewire@0.1.0`; `0.2.0` is not -published. - -## Completed - -- Provider-condition and release-hardening work is in the current candidate. -- GDELT/Semantic Scholar attribution, arXiv/dblp pacing, Crossref contact - configuration, Europe PMC acknowledgment, canonical links, and current - OpenAlex documentation are recorded as repaired. -- The official MCP publisher validation historically passed. - -## Remaining - -- Fresh read-only PR, CI, provider-condition, and release-workflow review. -- Owner setup for protected `release` environment, private vulnerability - reporting, npm trusted publishing, and final review. -- Separate owner approval for merge, preflight, tag, npm publication, GitHub - release, MCP Registry publication, and catalog submission. - -## Contradictions and unknowns - -- Old references to Community pin `6c89b6e` are superseded by `10aee95`. -- A green draft PR does not create release authority. -- Actual Crossref contact, shared scaling limiter, current upstream terms, and - all public registry visibility are operationally Unknown until checked. - -## Dependencies - -- WS-001 evidence control. -- WS-002 identity decision for any canonical-repo change. -- WS-008 is the onward immutable-release gate and depends on this completed - candidate verification; it is not a prerequisite for WS-004. - -## Owned paths - -`src/`, `test/`, `docs/providers.md`, `docs/releasing.md`, -`docs/distribution.md`, package metadata, and release workflow only when a -separately scoped Community change is approved. +This stream owns candidate metadata only. It does not own Community runtime or +test directories, which belong to WS-017 when that later stream is released. ## Binary definition of done -- Fresh baseline and focused Community checks pass on the exact SHA. -- The candidate remains dependency-free, ESM, provider-disabled by default, - and attribution/rights/pacing checks remain covered by committed regressions. -- Required release setup has fresh evidence and Luis separately authorizes each - immutable step. -- Public records are independently visible before `docs/distribution.md` stops - saying `PENDING`. - -## Artifact - -Fresh Community verification evidence and, only after approval, a focused PR or -release-preflight record tied to the exact commit. +- Exact candidate passes clean isolated install, committed tests, release + checks, package inspection, secret scan, and Node 18/22 verification. +- Identity-sensitive metadata agrees with WS-002. +- PR #1 remains draft unless separately approved. +- Public-platform prototype is neither merged nor credited. ## Checks -- **Baseline:** isolated-cache clean install; `npm test`; `npm run - release:check`; documented syntax, package, diff, and secret checks. -- **Focused:** reuse committed provider, HTTP, RPC, pacing, platform, and - release-metadata regressions; validate MCP manifest and release workflow - pinning without ad hoc artifacts. -- **Integration:** Terra independently reviews provider compliance, release - preconditions, rights/attribution posture, and the downstream Cloud archive - pin; Sol reconciles the result with WS-005 and WS-008. +- Run isolated npm ci, npm test, npm run release:check, npm pack --dry-run + --json, and git diff --check. +- Validate MCP metadata without publication and inspect tracked candidate + metadata/diff for secrets. +- Reconfirm recorded PR/CI state before action and Cloud archive-pin boundary. -## Rollback +## Artifact and rollback -Before a release, remain on the verified candidate and make no immutable -change. For an approved focused code fix, revert only the focused commit after -tests. Never delete tags, unpublish packages, or alter registry history as a -routine rollback. +The artifact is docs/community-release-preflight-2026-08-15.md. Revert only +focused candidate/preflight work. Do not tag, publish, release, or submit a +registry/catalog entry. ## Mappings -- GitHub: `MeekPhills/citewire` draft PR #1 and identity issue #3. -- Linear: `KAR-67`; completed `KAR-48` remains historical provenance. - -## Claude tier - -Level 2 Opus implementation owner for a scoped Community fix, nested under a -Level 1 Fable plan. Level 3 Sonnet runs focused regressions and documentation -checks. Level 0 Fable retains release gates. - -## Reviewer and integrator - -- Independent reviewer: Terra release/rights review. -- Exact-reference reviewer: Luna. -- Integrator: Sol parent orchestrator. +- GitHub: recorded historical CiteWire PR #1 and issue #3. +- Linear: recorded historical KAR-67, Todo. -## First safe action +## Execution label, reviewer, and first action -Run a fresh read-only review of PR #1 and its exact SHA, then reproduce the -committed baseline checks in an isolated cache. Stop on any failed check or -unexpected diff. +- Execution label: Opus release-preflight owner under Fable L1. +- Reviewer: independent Opus security and MCP-compatibility reviewer. +- First action: after WS-002, re-run committed preflight against exact + candidate without changing release metadata. ## Escalation -Escalate to Luis before merge, protected-environment configuration, private -vulnerability reporting configuration, npm trusted-publisher configuration, -tag, release, publication, MCP Registry/catalog submission, provider -activation, or paid-service decision. +Stop for failed test, unexpected package file, contract regression, secret, +version collision, or release action. diff --git a/.claude/orchestration/streams/WS-005.md b/.claude/orchestration/streams/WS-005.md index ce18d7f..417ce7d 100644 --- a/.claude/orchestration/streams/WS-005.md +++ b/.claude/orchestration/streams/WS-005.md @@ -1,133 +1,63 @@ -# WS-005 — Citewire landing and HTTPS destination gate +# WS-005 — CiteWire landing and HTTPS gate ## Objective -Bring the already-tested Citewire landing artifact to a verified HTTPS -destination only after Luis approves the exact Vercel project, domain, and DNS -operations. Keep all public-link consumers on safe destinations until then. +Deploy the prepared landing only after owner-approved hosting and DNS work, then +prove its public HTTPS destination. -## Status +## Priority, status, and dependencies -**Implementation complete / public deployment blocked.** The local landing is -draft PR #2. The live `citewire.org` destination is not usable for the new -site. +- Priority: P0. +- Status: blocked. +- Dependencies: WS-002 and WS-004, plus exact owner approval for hosting, + DNS, and deployment. -## Provenance +## Current state -- Branch `agent/citewire-landing-site` -- SHA `ff09b68ed811531eb0ca630b65daeaf06cc3304c`, based on Community - `10aee95ac95bb437b4607723cd20fa5c8f9d1879` -- Draft PR #2: `https://github.com/MeekPhills/citewire/pull/2` -- Historical Node 18/22 runs: `31849200115`, `31849291099` -- Live 2026-08-14/15 evidence: `citewire.org` A records - `207.207.210.107` and `207.207.210.229`; HTTP parked/default host; HTTPS - handshake failure; LGAM Vercel team has no Citewire project +Recorded PR #2 is draft. Recorded citewire.org HTTP is parked and HTTPS TLS +fails. No live CiteWire landing is verified. -Trust: high for local branch and recorded live observation; repeat live checks -before any public mutation. +## Exclusive ownership -## Last-good state - -The dependency-free static `site/` implementation has canonical/social -metadata, self-hosted OFL fonts, an Openly Useful-inspired visual system, -locked-down Vercel configuration, and committed regressions. It is not the live -domain. Karaya currently links to working GitHub Community instead. - -## Completed - -- Exact 20-file landing and website-metadata PR is drafted and clean. -- Historical isolated-cache, Node 18/22, release/syntax, secret/diff, nine-path - routine HTTP smoke, and browser-width checks passed. -- npm dry run excludes `site/`; Community package surface remains separate. - -## Remaining - -- Freshly verify PR #2 and its stacked base. -- Obtain explicit approval for Vercel project creation or selection, domain - attachment, DNS records, and production deployment. -- Deploy only after approval, then independently verify `https://citewire.org` - delivers the intended landing, TLS is valid, canonical/assets work, and no - old parked content remains. -- Only then unblock WS-006 and WS-007 link merges. - -## Contradictions and unknowns - -- Passing local/preview checks are not proof of live-domain readiness. -- The known parked HTTP response and failed HTTPS handshake contradict any - claim that citewire.org already hosts the landing. -- Hosting project ownership, DNS authority, current registrar configuration, - desired domain topology, and production deployment authority are Unknown. - -## Dependencies - -- WS-001 evidence control. -- WS-004 Community candidate and WS-002 identity decisions for final public - metadata direction. -- Explicit Luis approval for all provider, domain, and DNS mutations. - -## Owned paths - -`site/**`, website/package metadata, tests covering the site, and a future -approved Vercel configuration. DNS and provider settings are not owned until -the owner approves them. +- site/ +- test/site.test.mjs ## Binary definition of done -- PR #2 remains a focused 20-file landing/metadata diff on its verified base. -- Fresh local baseline, focused site regressions, and routine HTTP smoke pass. -- Luis authorizes project/domain/DNS/deployment in writing. -- Independent live HTTPS checks prove correct content, valid TLS, canonical -URL, robots/sitemap/assets, and no parked host; then WS-006/WS-007 may proceed. - -## Artifact - -Focused landing PR evidence, owner-approved domain/deployment runbook, and -post-deployment live verification record. No provider changes before approval. +- Owner-approved canonical website is live at citewire.org with valid HTTPS. +- Page, canonical URL, robots, sitemap, assets, and outbound links are + correct. +- Parked response is absent and independent HTTP/TLS/browser evidence exists. +- PR #2 merges only with separate owner approval. ## Checks -- **Baseline:** isolated-cache install; Community `npm test`; `npm run - release:check`; site syntax/diff/secret checks; npm dry-run exclusion. -- **Focused:** reuse `test/site.test.mjs` and the committed metadata, link, - accessibility/default, and hosting-policy regressions; run the routine local - HTTP and browser-width smoke suite. -- **Integration:** independent Terra review of HTTPS, public claims, and - cross-site link safety; Luna verifies exact URLs and delivery headers; Sol - confirms WS-006/WS-007 stay blocked until proof exists. +- Run committed Community/site tests and git diff --check. +- After approved deployment, check HTTP, TLS, title, canonical URL, robots, + sitemap, assets, and outbound links. +- Recheck downstream PR targets only after live evidence exists. -## Rollback +## Artifact and rollback -Before deployment, rollback is no provider or DNS change. After an approved -deployment, preserve the prior DNS/hosting configuration and use an -owner-approved reversible route change. Do not delete records, projects, or -release history as an automatic rollback. +The artifact is site/README.md plus approved deployment/live-verification +evidence. Provider/DNS reversal occurs only through a separately approved +reversible route. No preview disclosure or automatic DNS mutation. ## Mappings -- GitHub: `MeekPhills/citewire` draft PR #2 and identity issue #3, stacked on - draft PR #1. -- Linear: `KAR-67`. -- Downstream dependencies: Openly Useful PR #8 and Karaya PR #17. - -## Claude tier - -Level 1 Fable plans public deployment gates. Level 2 Opus owns a scoped, -approved landing/hosting change. Level 3 Sonnet runs static regressions and -routine smoke checks. Level 0 Fable retains public-mutation authorization. - -## Reviewer and integrator - -- Independent reviewer: Terra for design, public-claim, and deployment review. -- Exact-reference reviewer: Luna for DNS/URL/header evidence. -- Integrator: Sol parent orchestrator. +- GitHub: recorded historical CiteWire PR #2 and issue #3. +- Linear: recorded historical KAR-67, Todo. -## First safe action +## Execution label, reviewer, and first action -Repeat read-only HTTP, HTTPS/TLS, DNS, Vercel-project, and PR checks. Record -the exact result before asking Luis for the separate provider/domain approval. +- Execution label: Fable L1 public-release coordination with Opus deployment + review. +- Reviewer: independent Opus deployment/identity reviewer with Sonnet + URL/header checks. +- First action: compare site canonical fields to WS-002 and gather read-only + DNS/TLS evidence. ## Escalation -Escalate to Luis before Vercel project creation, provider activation, domain -attachment, DNS change, production deployment, merge, publication, or any -public claim that citewire.org is live. +Stop for missing authority, DNS/provider activation, certificate failure, +paid-service choice, deployment, or merge without exact approval. diff --git a/.claude/orchestration/streams/WS-006.md b/.claude/orchestration/streams/WS-006.md index 7ccc170..a284e4c 100644 --- a/.claude/orchestration/streams/WS-006.md +++ b/.claude/orchestration/streams/WS-006.md @@ -1,122 +1,58 @@ -# WS-006 — Openly Useful project-card link +# WS-006 — Openly Useful CiteWire link activation ## Objective -Merge the focused Openly Useful project-card link to the Citewire canonical -website only after that destination is independently verified live over HTTPS. +Land the Openly Useful CiteWire link only after WS-005 verifies the public +destination. -## Status +## Priority, status, and dependencies -**Code complete / held at external destination gate.** The draft is safe to -review but unsafe to merge while citewire.org serves parked HTTP content and -fails HTTPS. +- Priority: P1. +- Status: blocked. +- Dependencies: WS-005. -## Provenance +## Current state -- `Openly-Useful/openlyuseful.org` branch `agent/citewire-site-link` -- SHA `28af5c7a5fdd0425ced2fe45f5c50e05946758de` -- Base main `cf137f9b77d68d16c41cd90f1af8d2df3b9972f4` -- Draft PR #8: `https://github.com/Openly-Useful/openlyuseful.org/pull/8` -- Historical successful validation runs `31849408964` and `31849412743`, plus - a passing Vercel preview +Recorded Openly Useful PR #8 is draft and held because citewire.org is not a +verified HTTPS destination. -Trust: high historical evidence; fresh remote checks are required before merge. +## Exclusive ownership -## Last-good state - -The PR is a two-file focused change, `index.html` and -`scripts/validate_site.py`, and preserves the intervening approved media-kit -work while adding Citewire assertions. No public link has been switched by this -stream. - -## Completed - -- The card has an accurate Citewire MCP description and targets - `https://citewire.org` in the draft. -- The validator checks the new link and social-card relationship. -- Green CI/preview evidence was recorded without production deployment. - -## Remaining - -- Wait for WS-005 to prove a correct public HTTPS destination. -- Freshly verify PR #8 diff, base, mergeability, CI, and preview. -- Review the visible card copy under the current Openly Useful design system. -- Merge only after both destination proof and the applicable owner approval. - -## Contradictions and unknowns - -- A green preview is not a green external destination. -- The draft's intended citewire.org URL is correct only after WS-005's live - HTTPS evidence; otherwise the existing production state is safer. -- Current Openly Useful repository permissions, main head, and PR checks are - Unknown until read again. - -## Dependencies - -- WS-005 live HTTPS destination gate. -- WS-001 orchestration control. -- Fresh remote PR/CI evidence and applicable owner approval. - -## Owned paths - -- `openlyuseful.org/index.html` -- `openlyuseful.org/scripts/validate_site.py` - -No Citewire, Karaya, DNS, provider, or deployment configuration is owned here. +- /Users/luismorrobel/karayagroup/openlyuseful.org/index.html +- /Users/luismorrobel/karayagroup/openlyuseful.org/scripts/validate_site.py ## Binary definition of done -- citewire.org independently serves the intended HTTPS landing. -- PR #8 remains exactly the expected two-file change on a freshly verified - current main. -- Openly Useful validator, diff check, CI, and deployment preview pass. -- Merge evidence and post-merge public link verification are recorded. - -## Artifact - -Fresh PR #8 review, validator output, and post-merge URL verification evidence -linked from KAR-66. +Recorded PR #8's exact two-file diff validates, points only to verified live +HTTPS CiteWire destination, remains factual, and merges only with separate +owner approval. ## Checks -- **Baseline:** clean worktree, main/base ancestry, validator, and diff check. -- **Focused:** committed `scripts/validate_site.py` assertions for the Citewire - card, link, and retained social-card validation. -- **Integration:** Terra independently confirms the card claim and destination - fit the public-site state; Luna verifies exact target URLs; Sol requires - WS-005 evidence before authorizing merge sequencing. +- Run python3 scripts/validate_site.py and git diff --check. +- Resolve and fetch exact destination over HTTPS. +- Reconfirm PR state/preview only after WS-005. -## Rollback +## Artifact and rollback -Before merge, close or retain the draft without changing production. After an -approved merge, restore the prior card target in a focused, reviewed revert if -the destination later fails; do not use broad repository reset operations. +The artifact is the Openly Useful project-card link. Revert only the focused +link or use host prior deployment with approval. Never redirect to an +unverified alternative. ## Mappings -- GitHub: `Openly-Useful/openlyuseful.org` draft PR #8 and cross-repository - identity issue `MeekPhills/citewire#3`. -- Linear: `KAR-67`. -- Depends on GitHub `MeekPhills/citewire` draft PR #2 / WS-005. - -## Claude tier - -Level 3 Sonnet owns the bounded link/diff correction and committed validator -after a Level 1 Fable plan. A separate Opus session reviews public destination -and copy safety. Level 0 controls merge sequence and owner gates. - -## Reviewer and integrator - -- Independent reviewer: Terra for public copy/destination safety. -- Exact-reference reviewer: Luna for changed paths and URL assertions. -- Integrator: Sol parent orchestrator. +- GitHub: recorded historical Openly Useful PR #8 and related CiteWire issue + #3. +- Linear: recorded historical KAR-67, Todo. -## First safe action +## Execution label, reviewer, and first action -Read the current PR #8 state and run its committed validator in a clean -worktree. Do not update or merge it until WS-005 supplies fresh HTTPS proof. +- Execution label: Sonnet bounded link owner under Fable L1. +- Reviewer: independent Opus factual-link reviewer. +- First action: wait for WS-005, then run committed validator and direct HTTPS + check. ## Escalation -Escalate to Luis before a public merge, deployment, DNS/domain mutation, any -visible copy rewrite, or redefinition of the canonical Citewire destination. +Stop for invalid HTTPS, expanded diff, failed CI, merge, or deploy request +without approval. diff --git a/.claude/orchestration/streams/WS-007.md b/.claude/orchestration/streams/WS-007.md index 3099501..996779c 100644 --- a/.claude/orchestration/streams/WS-007.md +++ b/.claude/orchestration/streams/WS-007.md @@ -1,154 +1,60 @@ -# WS-007 — Karaya Industry News Citewire destination link +# WS-007 — Karaya CiteWire bridge activation ## Objective -Safely update Karaya's existing Citewire Community link to the canonical -Citewire website only after that website is a verified HTTPS destination, -without altering approved visible copy, editorial behavior, account boundaries, -or protected owner assets. +Land the Karaya Industry News CiteWire bridge only after live HTTPS evidence +and Luis read-aloud approval. -## Status +## Priority, status, and dependencies -**Code complete / held at live-link and owner gates.** Draft PR #17 must remain -unmerged while citewire.org is parked over HTTP and fails HTTPS. Karaya -production remains healthy with its current GitHub Community link. +- Priority: P1. +- Status: blocked. +- Dependencies: WS-005. -## Provenance +## Current state -- Karaya worktree `karayagroup-citewire-site-link` -- Branch `agent/citewire-site-link` -- SHA `3a90e43d8797af9e7c0bc02d4c1ae6f51ebd19a6` -- Base production main `9c1506320771faf177f3675ef5ea1c1eff36fe81` -- Draft PR #17: `https://github.com/MeekPhills/karayagroup/pull/17` -- Historical green CI `31849281233`, green preview, Node 22 16-page build, - 409/409 tests, registry/audit/compliance/diff/secret gates -- Owner screenshot inventory: 49 total, 8 tracked, 41 untracked and unstaged +Recorded Karaya PR #17 is draft and held because citewire.org is not a +verified HTTPS destination. -Trust: high for local commit and protected screenshot count; green remote -evidence is historical and must be refreshed before a merge. +## Exclusive ownership -## Last-good state - -Karaya production at `9c1506320771faf177f3675ef5ea1c1eff36fe81` has passed -routine HTTP smoke: `/`, `/industry-news`, `/industry-news/about`, and -`/api/v1/news/topics` return 200; nine topics are returned; MCP initialize -reports protocol `2025-06-18` and `karaya-news-mcp` version `1.0.0`. The live -About page uses the working GitHub Community link. - -## Completed - -- PR #17 contains exactly the bridge document, About-page link target, and - committed regression. Approved paragraph text is unchanged. -- Full committed Karaya tests and ordinary routine smoke terminology were used; - no Cloud account-isolation surface changed. -- The 49 owner screenshots remain preserved: 41 are untracked and must not be - staged, edited, deleted, cleaned, or included by a broad commit. - -## Remaining - -- Wait for WS-005 independent proof that citewire.org is a correct HTTPS - landing. -- Freshly verify PR #17 base, exact diff, CI, preview, current production - health, and no screenshot change. -- Obtain Luis's approval for any visible copy change; current intended change is - link destination only and should not rewrite approved copy. -- Merge only after the destination gate and owner approval, then repeat the - documented Karaya production smoke and exact-link assertions. - -## Contradictions and unknowns - -- The stale root AGENTS.md does not describe the live Industry News system; - repository-local Karaya authority and fresh production evidence govern. -- A passing draft preview conflicts with a broken public citewire.org target; - live target safety wins. -- Current Karaya main, PR state, Vercel state, and owner approval status are - Unknown until freshly read. -- The historical feed signal `50 / 16-over-cap / one trailer` is not a basis - for changing this link-only PR; it belongs to separately authorized ingestion - verification. - -## Dependencies - -- WS-005 live HTTPS landing verification. -- WS-001 orchestration control. -- Fresh Karaya PR/CI/production verification and Luis approval gate. - -## Owned paths - -- `karayagroup-citewire-site-link/docs/citewire-product-bridge.md` -- `karayagroup-citewire-site-link/site/src/pages/industry-news/about.astro` -- `karayagroup-citewire-site-link/site/test/news-compliance.test.mjs` - -Explicitly excluded: `karayagroup-brand/site/handoff/redesign/**` owner -screenshots, production configuration, source activation, migrations, and -Cloud account-isolation code. +- /Users/luismorrobel/karayagroup/karayagroup-citewire-site-link/docs/citewire-product-bridge.md +- /Users/luismorrobel/karayagroup/karayagroup-citewire-site-link/site/src/pages/industry-news/about.astro +- /Users/luismorrobel/karayagroup/karayagroup-citewire-site-link/site/test/news-compliance.test.mjs ## Binary definition of done -- citewire.org independently provides the intended verified HTTPS landing. -- PR #17 remains exactly the intended three-file change on fresh main. -- Build, 409/409 committed tests, registry, audit, compliance, diff, secret, - routine HTTP smoke, and exact-link assertions pass again. -- Luis approves any visible-text change; if there is none, that fact is - recorded. Owner screenshot status is still exactly 49 total / 8 tracked / 41 - untracked after the work. -- Post-merge production returns healthy routine smoke and the exact citewire.org - destination is valid. - -## Artifact - -Fresh PR #17 review, screenshot-status audit, production smoke output, and -exact-link verification evidence linked from KAR-66 and the Launch Log. +Recorded PR #17's exact three-file diff passes Karaya tests/build, targets +live HTTPS, has Luis read-aloud approval for every changed visible word, and +merges only with separate owner approval. ## Checks -- **Baseline:** clean worktree, protected asset count, `git diff --check`, - dependency/audit/compliance gates, and fresh routine production HTTP smoke. -- **Focused:** reuse `site/test/news-compliance.test.mjs` plus the committed - bridge-link regression; no ad hoc test artifact; assert the approved - paragraph remains unchanged. -- **Integration:** Terra reviews Karaya brand/editorial boundary and production - safety; Luna verifies exact changed paths, status codes, topic count, MCP - protocol/version, and owner screenshot counts; Sol reconciles WS-005 proof. +- Run Karaya tests, build, MCP, and compliance checks plus git -C .. diff + --check. +- Fetch exact CiteWire target and inspect rendered visible copy. +- Reject protected screenshot paths and perform production smoke only after + separately approved merge/deploy. -## Rollback +## Artifact and rollback -Before merge, leave the live GitHub Community link untouched. After a focused, -approved merge, restore the prior link target with a focused revert if public -destination verification regresses. Never use broad reset/clean and never -touch the owner screenshots. +The artifact is the CiteWire product bridge document and focused PR #17 diff. +Revert only that bridge after approval. Never touch the protected brand +worktree. ## Mappings -- GitHub: `MeekPhills/karayagroup` draft PR #17. -- Historical foundation: PR #16 to `b45af558ec0ebea3a2f9d692b2ce087e92a2379b`, - PR #15 to `f3610e4e3eddfaa1c89a398f369ac6c1386662ed`, and approved bridge - main `9c1506320771faf177f3675ef5ea1c1eff36fe81`. -- Linear: `KAR-67`; historical related work `KAR-48` and `KAR-36`. -- GitHub dependency issue: `MeekPhills/citewire#3`. - -## Claude tier - -Level 3 Sonnet owns the bounded link-only adjustment and committed -build/test/link checks under Level 1 Fable planning. A separate Opus session -reviews Karaya copy/compliance and production safety. Level 0 retains copy, -merge, and production gates. - -## Reviewer and integrator - -- Independent reviewer: Terra for editorial/product and production review. -- Exact-reference reviewer: Luna for link target, paths, tests, screenshot - inventory, and live endpoint evidence. -- Integrator: Sol parent orchestrator. +- GitHub: recorded historical Karaya PR #17 and related CiteWire issue #3. +- Linear: recorded historical KAR-67, Todo. -## First safe action +## Execution label, reviewer, and first action -Recheck the citewire.org live destination, PR #17 exact diff, production smoke, -and screenshot count read-only. Stop if any changed screenshot, failed test, -unexpected diff, or broken endpoint is observed. +- Execution label: Sonnet bounded Karaya bridge owner under Fable L1. +- Reviewer: independent Opus Karaya copy/compliance reviewer. +- First action: defer visible-copy approval until WS-005 live HTTPS evidence + exists. ## Escalation -Escalate to Luis before merge, production deployment, any visible-copy rewrite, -source/provider activation, database migration, provider/account setting, paid -service, or any action involving the protected owner screenshots. +Stop for visible copy without approval, invalid HTTPS, protected screenshots, +failed test, or merge/deploy request. diff --git a/.claude/orchestration/streams/WS-008.md b/.claude/orchestration/streams/WS-008.md index 2fdcb27..1eacde4 100644 --- a/.claude/orchestration/streams/WS-008.md +++ b/.claude/orchestration/streams/WS-008.md @@ -1,140 +1,70 @@ -# WS-008 — Immutable Community release and public registry gate +# WS-008 — Immutable Community release and registry sequence ## Objective -Run the immutable-release sequence for a final approved Community candidate -only after all technical, identity, rights, and owner gates are satisfied. +Perform the owner-gated immutable Community release only after identity, +repository, candidate, and live website gates complete. -## Status +## Priority, status, and dependencies -**Not started / manual owner gate.** No release environment, tag, GitHub -release, npm `citewire@0.2.0`, MCP Registry entry, or catalog submission is -verified as complete. +- Priority: P0. +- Status: blocked. +- Dependencies: WS-003, WS-004, and WS-005. -## Provenance +## Current state -- Community candidate `10aee95ac95bb437b4607723cd20fa5c8f9d1879`, draft PR #1 -- `docs/releasing.md` and `docs/distribution.md` -- Historical release review in `CITEWIRE_CODEX_HANDOFF.md` and - `CITEWIRE_EXECUTION_CHECKPOINT.md` +Recorded npm baseline is citewire@0.1.0. Recorded 0.2 candidate is unpublished +and no tag, release, registry, or catalog record is verified. -Trust: high for the unperformed release status and documented gates; current -organization/npm/registry configuration is Unknown until freshly inspected. +## Exclusive ownership -## Last-good state +- .github/workflows/release.yml +- CHANGELOG.md +- docs/releasing.md +- docs/distribution.md -The package is not published beyond npm `citewire@0.1.0`. Community remains a -draft, zero-dependency, provider-disabled candidate. Cloud uses the immutable -Community archive pin `10aee95` but remains draft and undeployed. - -## Completed - -- Release workflow protection and preflight requirements are documented. -- Historical Community release checks, provider condition repairs, secret scan, - MCP manifest validation, and draft CI gates passed. -- No irreversible release action was taken during recovery. - -## Remaining - -- Fresh final code/release review and exact main-ancestor confirmation. -- Owner configures or approves protected GitHub `release` environment with Luis - as required reviewer and `v*` tag restriction. -- Owner verifies private vulnerability reporting and npm trusted publishing for - the exact repository, workflow, and environment. -- Owner authorizes merge, no-publication release preflight, then each tag, - publication, GitHub release, registry, and catalog action separately. -- Independently verify every public record before updating distribution status. - -## Contradictions and unknowns - -- Draft CI success and a passing no-publication preflight do not authorize a - tag or publication. -- `citewire@0.2.0` availability, release environment, private vulnerability - reporting, npm publisher trust, Registry record, and catalog state are - Unknown until fresh provider-facing read checks. -- WS-002 may change the canonical identity and must resolve before a permanent - release identity is selected. - -## Dependencies - -- WS-001 orchestration control. -- WS-002 owner-approved canonical identity. -- WS-004 final Community verification. -- Explicit Luis approval for every irreversible operation. - -## Owned paths - -Community release workflow, package/version metadata, release documentation, -and distribution records only after a separately approved scoped release task. -No Cloud/Karaya/runtime/provider/DNS path is owned here. +This stream reads candidate metadata but does not overlap WS-004 candidate +metadata or WS-017 runtime ownership. ## Binary definition of done -- Fresh tests and release checks pass for the exact approved main commit. -- Protected environment and npm trusted-publishing configuration are verified - by the owner and recorded without exposing credentials. -- A manual no-publication preflight succeeds with both publication toggles - false. -- Luis separately authorizes tag, npm publication, GitHub release, MCP Registry - publication, and catalog submission; each completed record is independently - visible and accurate. -- `docs/distribution.md` remains `PENDING` until the corresponding public - record is observed. - -## Artifact - -Exact release decision record, preflight logs without secrets, immutable -commit/tag mapping, and independent public-record verification evidence. +- Each irreversible step has separate exact owner approval. +- Approved main is tagged once. +- No-publication preflight runs with publication toggles false. +- Every public package, release, MCP, support/security, homepage, and + documentation URL resolves to the independently verified live HTTPS + destination before irreversible publication. +- npm version, integrity, provenance, MCP identity, and MCP Registry record + are independently verified. +- GitHub release follows only after correct public records and healthy + canonical website. ## Checks -- **Baseline:** isolated-cache install; `npm test`; `npm run release:check`; - package/diff/secret checks; current main ancestry and clean-worktree check. -- **Focused:** reuse committed provider, release-metadata, workflow, manifest, - and packaging regressions; inspect OIDC/workflow/environment configuration - without reading credentials. -- **Integration:** Terra independently reviews rights, release sequencing, - public claims, and ownership gates; Luna reconciles exact version/tag/URL - identifiers; Sol confirms no downstream Cloud/website assertion outruns the - immutable public record. +- Run Community suite, release check, package dry run, and diff check. +- Run manual no-publication workflow preflight from exact approved tag. +- After approval, verify npm, provenance, registry, and public URLs. +- Confirm Cloud transition starts only after immutable published evidence. -## Rollback +## Artifact and rollback -Before publication, do not create an immutable record. After any owner-approved -immutable action, use the documented incident/release response rather than -destructive tag deletion or unpublish. Correct public records with a new, -explicitly authorized release if required. +The artifact is docs/distribution.md and release evidence. Before publication, +revert focused release changes. After publication, use only owner-approved +deprecation or fixed-patch procedure; never overwrite or retag. ## Mappings -- GitHub: `MeekPhills/citewire` draft PR #1, identity issue #3, and future - separately approved release. -- npm: `citewire@0.1.0` is historical current public baseline; `0.2.0` is not - yet verified published. -- Registry/catalog: no verified public entry. -- Linear: `KAR-67`; historical release preparation `KAR-48`. - -## Claude tier - -Level 0 Fable owns immutable-gate orchestration. Level 1 Fable plans only an -approved release sequence. Level 2 Opus may run a scoped preflight. Level 3 -Sonnet validates committed tests and metadata. No tier may publish without Luis. - -## Reviewer and integrator - -- Independent reviewer: Terra release and rights reviewer. -- Exact-reference reviewer: Luna for package/tag/registry identifiers. -- Integrator: Sol parent orchestrator. +- GitHub: recorded historical CiteWire PR #1 and issue #3. +- Linear: recorded historical KAR-67, Todo. -## First safe action +## Execution label, reviewer, and first action -Freshly inspect the current PR #1, release environment, npm trusted-publisher, -package version, GitHub tags/releases, and registry/catalog visibility read -only. Record Unknown rather than attempting configuration. +- Execution label: Fable L1 release coordination with Opus supply-chain owner. +- Reviewer: independent Opus registry/provenance reviewer. +- First action: wait for all three dependencies, then run only a + no-publication preflight. ## Escalation -Escalate to Luis before protected-environment creation/configuration, privacy -or vulnerability-reporting setting change, npm trust configuration, merge, -tag, package publication, GitHub release, Registry/catalog submission, provider -activation, paid-service decision, or any irreversible public record. +Stop for merge, tag, publish, release, registry submission, version collision, +missing protection, or unsupported provenance. diff --git a/.claude/orchestration/streams/WS-009.md b/.claude/orchestration/streams/WS-009.md index 58e9196..57e7ea4 100644 --- a/.claude/orchestration/streams/WS-009.md +++ b/.claude/orchestration/streams/WS-009.md @@ -1,113 +1,56 @@ -# WS-009 — Citewire Cloud documentation alignment +# WS-009 — Cloud documentation pin alignment -## objective +## Objective -Align Cloud documentation with the verified immutable Community archive pin and the private-alpha boundary. Keep Cloud undeployed and owner-gated. Do not turn documentation alignment into a deployment, commercial, or npm decision. +Preserve the Cloud documentation reconciliation to the 10aee95 Community +archive pin without implying deployment or mutable Cloud readiness work. -## status +## Priority, status, and dependencies -VERIFIED COMPLETE — docs-only repair is pushed; Cloud remains draft and undeployed. +- Priority: P1. +- Status: complete, preserve-only. +- Dependencies: WS-001. -## provenance +## Current state -- Repository: /Users/luismorrobel/karayagroup/citewire-cloud. -- Runtime baseline: ad7e58fb2ac3f6ebc4c7d0247c105955dd9696b0 on agent/cloud-alpha-http. -- Current docs-aligned head: 69068275ca0e332e36304533aa0f6b5d2e291405. -- package.json and package-lock.json pin Community to 10aee95ac95bb437b4607723cd20fa5c8f9d1879. -- The docs-only commit changes exactly README.md, docs/ALPHA-DEPLOYMENT-CHECKLIST.md, docs/ARCHITECTURE.md, and docs/OWNER-DECISIONS.md. Old 6c89b6e references are gone from those owned docs. +Recorded Cloud docs-only head 6906827 reconciled four prose files to archive +pin 10aee95. This is complete evidence, not an active mutable path lease. -## last-good +## Exclusive ownership -Cloud commit ad7e58f remains the runtime last-good. Commit 6906827 is its four-file prose successor. Isolated install, syntax/check, diff checks, and 15/15 committed tests passed after the docs sync. Draft PR #1 remains green and undeployed. +This stream is evidence-only. It owns no mutable path lease. Future mutable +Cloud readiness documentation belongs to WS-011. -## completed +## Binary definition of done -- Replaced stale Cloud documentation pin references with 10aee95a. -- Preserved the temporary-pin explanation and later npm ^0.2.0 gate. -- Preserved private-alpha, no-availability, no-participant, and no-cost claims. No runtime or owner-screenshot file changed. +Recorded Cloud documents identify 10aee95 or an accurate replacement condition +and make no deployment, availability, participant, pricing, or operator claim. -## remaining +## Checks -- Keep PR #1 draft and undeployed. -- Treat npm ^0.2.0 as a separately reviewed transition only after verified publication. -- Reconcile this evidence into the parent handoff and Launch Log; no further Cloud implementation is implied. +- Search historical Cloud docs for stale 6c89b6e references. +- Match documentation to package and lockfile without runtime modification. +- Require fresh remote evidence before any deployment/PR-state claim. -## unknowns +## Artifact and rollback -Participant approval, credential lifecycle, exact production Origin policy, persistence, OAuth, billing, quotas, support, legal terms, privacy, and deployment ownership remain unresolved. No Cloud deployment exists. +The artifact is the recorded four-file docs reconciliation at 6906827. Roll +back only that focused documentation change; no runtime, provider, deployment, +or registry state changes. -## dependencies +## Mappings -- WS-001 orchestration control. -- WS-009 independently verifies the existing archive-pin baseline and does not - wait for WS-002 through WS-008. -- WS-011 consumes this baseline for the separate owner-gated alpha path. -- WS-010 is the later post-publication npm-range migration and is not a - prerequisite for archive-pinned readiness. +- GitHub: recorded historical CiteWire Cloud PR #1. +- Linear: recorded historical KAR-66, In Progress; no distinct child. -## owned paths +## Execution label, reviewer, and first action -- /Users/luismorrobel/karayagroup/citewire-cloud/README.md -- /Users/luismorrobel/karayagroup/citewire-cloud/docs/ALPHA-DEPLOYMENT-CHECKLIST.md -- /Users/luismorrobel/karayagroup/citewire-cloud/docs/ARCHITECTURE.md -- /Users/luismorrobel/karayagroup/citewire-cloud/docs/OWNER-DECISIONS.md +- Execution label: Sonnet documentation preservation under Fable L1. +- Reviewer: independent Opus boundary reviewer. +- First action: no implementation work; if PR #1 changes, recheck the + historical four-file boundary. -## binary DoD +## Escalation -- [x] No stale 6c89b6e Cloud pin remains in owned docs. -- [x] Each owned doc names 10aee95a as the temporary archive pin and preserves the post-publication npm transition gate. -- [x] Docs state that Cloud is undeployed and do not claim availability, participants, pricing, support, or provider activation. -- [x] Isolated install, syntax/check, git diff --check, 15/15 tests, direct HTTP smoke, and concurrent account-isolation tests pass. -- [x] One focused docs commit; no Community runtime, DNS, Vercel, registry, paid-service, secret, or owner-screenshot change. - -## artifact - -Docs-only commit 69068275ca0e332e36304533aa0f6b5d2e291405 and its verification report. No new test artifact is needed. - -## baseline - -Runtime ad7e58fb2ac3f6ebc4c7d0247c105955dd9696b0; current docs head 69068275ca0e332e36304533aa0f6b5d2e291405. - -## focused checks - -Run rg for 6c89b6e, 10aee95a, deployed, available, published, billing, and OAuth in README.md and docs. Run isolated-cache npm ci, npm test, npm run check, and git diff --check. Use only committed Cloud HTTP and account-isolation regressions. Do not add ad hoc fixtures or scripts. - -## integration checks - -- Manifest and lockfile resolve to the same Community SHA. -- Cloud remains a one-way Community import with no Karaya policy or credential. -- PR #1 remains draft and GitHub reports no deployment. - -## rollback - -If prose exceeds the four owned docs or any check fails, stop and restore only the focused docs commit after review. Do not revert the runtime pin, rewrite Community history, or alter remote infrastructure. - -## GitHub mapping - -- Draft PR #1: https://github.com/MeekPhills/citewire-cloud/pull/1. -- Docs head: 69068275ca0e332e36304533aa0f6b5d2e291405. - -## Linear mapping - -- Parent: KAR-66. -- Identity/release dependency: KAR-67. - -## Claude tier - -Level 3 Sonnet for bounded documentation maintenance. Use Level 2 Opus if wording changes product, legal, commercial, or deployment claims. - -## reviewer - -Luna exact-reference reviewer; Terra boundary reviewer for ambiguous claims. - -## integrator - -Level 0 Sol/Fable master reconciles the cross-repository state. - -## first action - -Read the four owned docs and record the current pin grep before any further change. - -## escalation - -Stop on an unexpected file, owner-screenshot change, secret, provider/model or paid-service choice, participant action, DNS/Vercel/deployment action, merge, or publication request. +Stop for provider, participant, credential, domain, paid-service, deployment, +or runtime decision. diff --git a/.claude/orchestration/streams/WS-010.md b/.claude/orchestration/streams/WS-010.md index ff793c6..c9e3323 100644 --- a/.claude/orchestration/streams/WS-010.md +++ b/.claude/orchestration/streams/WS-010.md @@ -1,90 +1,58 @@ -# WS-010 — Post-publication Cloud npm-range migration +# WS-010 — Cloud npm dependency migration -## objective +## Objective -Replace Cloud's temporary immutable Community archive pin with the verified -published npm range only after WS-008 completes and public provenance is -independently verified. +Replace the temporary Community archive pin only after immutable Community +publication and provenance verification. -## status +## Priority, status, and dependencies -BLOCKED — `citewire@0.2.0` is not published and no dependency change is -authorized. +- Priority: P0. +- Status: blocked. +- Dependencies: WS-008. -## provenance +## Current state -- Cloud head `69068275ca0e332e36304533aa0f6b5d2e291405` retains the exact - `10aee95ac95bb437b4607723cd20fa5c8f9d1879` archive pin. -- The archive-pinned clean install, 15/15 committed tests, direct HTTP smoke, - concurrent account-isolation tests, syntax/diff checks, and Node 18/22 CI are - verified predecessor evidence recorded by WS-009. -- The documented future target is `^0.2.0`, but no npm artifact exists yet. +Cloud records exact 10aee95 archive import. The required published 0.2 npm +artifact is not verified. -## remaining +## Exclusive ownership -- Complete WS-008 under separate owner approvals. -- Independently verify the published package's version, `mcpName`, integrity, - provenance, and canonical repository identity. -- Change only `package.json` and `package-lock.json`, then reproduce the full - committed Cloud verification suite. Keep the PR draft and undeployed. +- /Users/luismorrobel/karayagroup/citewire-cloud/package.json +- /Users/luismorrobel/karayagroup/citewire-cloud/package-lock.json -## dependencies +## Binary definition of done -- WS-008 immutable Community release and public provenance verification. -- WS-009 provides the completed archive-pin baseline; WS-011 does not depend on - this later migration. +npm independently reports approved Community version, integrity, provenance, +and MCP identity; Cloud uses documented npm range; isolated install, full +tests, check, direct HTTP, concurrent account isolation, diff, and Node 18/22 +CI pass; Cloud stays draft and undeployed. -## owned paths +## Checks -- `/Users/luismorrobel/karayagroup/citewire-cloud/package.json` -- `/Users/luismorrobel/karayagroup/citewire-cloud/package-lock.json` +- Run isolated npm ci, npm test, npm run check, and git diff --check. +- Run committed HTTP/account-isolation tests. +- Inspect package-lock integrity and Community import boundary. +- Confirm no deployment, provider activation, persistence, billing, OAuth, + quota, or account mutation. -## binary DoD +## Artifact and rollback -- [ ] npm independently reports the exact owner-approved Community artifact. -- [ ] Both Cloud manifests use the documented npm range and expected integrity. -- [ ] Isolated-cache clean install, full committed suite, syntax/diff checks, - direct HTTP smoke, and concurrent account-isolation tests pass. -- [ ] Node 18/22 CI is green on the exact draft PR head. -- [ ] No deployment, merge, tag, publication, registry action, provider - activation, secret, paid-service decision, or account-boundary regression - occurs. +The artifact is the revised Cloud package-lock. Revert focused dependency +change and retain archive pin until published replacement passes every check. -## checks +## Mappings -Use `/private/tmp/citewire-cloud-npm-cache`, the repository's committed tests, -and its documented direct HTTP and concurrent account-isolation smokes. Do not -create ad hoc test artifacts. +- GitHub: recorded historical CiteWire Cloud PR #1. +- Linear: recorded historical KAR-66, In Progress; no distinct child. -## artifact +## Execution label, reviewer, and first action -The expected output is the focused, independently reviewed two-manifest npm -range change in draft Cloud PR #1 plus recorded clean-install, test, direct HTTP, -concurrent account-isolation, diff, and Node 18/22 CI evidence. +- Execution label: Opus dependency/isolation owner under Fable L1. +- Reviewer: independent Opus supply-chain and tenant reviewer. +- First action: read exact published npm provenance only after WS-008. -## rollback +## Escalation -Revert the focused two-manifest dependency change before merge and retain the -verified exact archive pin. Never substitute an unverified range or copied -transport. - -## mappings - -- GitHub: draft `MeekPhills/citewire-cloud` PR #1. -- Linear: KAR-66, with Community release authority tracked in KAR-67. - -## Claude hierarchy - -Opus owns dependency provenance and account-boundary interpretation. A separate -Terra session independently reviews supply-chain and account-isolation evidence. -Level 0 integrates. - -## first action - -After WS-008 only, read public npm provenance for the exact released Community -version. Leave both Cloud manifests untouched until that evidence passes. - -## escalation - -Stop on absent or wrong provenance, a failed test, unexpected lockfile diff, -secret, npm publication request, deployment, merge, or account crossover. +Stop for absent/wrong provenance, failed test, lockfile surprise, secret, +publication/deploy request, or account-boundary regression. diff --git a/.claude/orchestration/streams/WS-011.md b/.claude/orchestration/streams/WS-011.md index f71dd48..3c2cab3 100644 --- a/.claude/orchestration/streams/WS-011.md +++ b/.claude/orchestration/streams/WS-011.md @@ -1,113 +1,69 @@ -# WS-011 — Citewire Cloud private-alpha boundary +# WS-011 — Cloud private-alpha identity and operations -## objective +## Objective -Review the authenticated Cloud HTTP entry point as a private-alpha candidate. Verify authentication-before-dispatch, stable fail-closed behavior, immutable account context, input allowlisting, and Community-to-Cloud composition. Keep the candidate undeployed and do not choose participants, vendors, pricing, or commercial availability. +Resolve private-alpha readiness without deploying or coupling Community, Cloud, +and Karaya identities. -## status +## Priority, status, and dependencies -OWNER-GATED READY — implementation and verification are complete; alpha operations are not approved. +- Priority: P1. +- Status: blocked. +- Dependencies: WS-002 and WS-009. -## provenance +## Current state -- Repository/head: /Users/luismorrobel/karayagroup/citewire-cloud, 69068275ca0e332e36304533aa0f6b5d2e291405 on agent/cloud-alpha-http. -- Runtime implementation baseline: ad7e58fb2ac3f6ebc4c7d0247c105955dd9696b0. -- Draft PR #1: https://github.com/MeekPhills/citewire-cloud/pull/1. -- Runtime paths: api/mcp.js, src/auth.js, src/http.js, src/tools.js. +Recorded Cloud PR #1 is draft and archive-pinned with zero verified +deployments. Operator, tenant, support/privacy, domain, retention, billing, +OAuth, and participant decisions remain unresolved. -## last-good - -Missing, malformed, and invalid credentials produce the same generic 401 and do not dispatch MCP. Invalid configuration produces generic 503. Raw bearer keys and service exception text are not exposed. Each request has immutable account context, brief-service input is allowlisted, and absent/throwing stateful services fail closed. GitHub reports zero Cloud deployments. - -## completed - -- Community HTTP transport is imported rather than copied. -- Concurrent account-isolation regression exercises the actual handler. -- Default composition injects no datastore, billing, OAuth, or vendor. -- Node 18/22 CI, isolated install, direct HTTP smoke, syntax/check, and committed suite are green. - -## remaining - -- Decide separately whether a private alpha exists. -- If approved, define participants, credential lifecycle, exact Origin policy, endpoint ownership, retention, privacy, support, quotas, and incident response. -- Keep Cloud out of public Karaya copy until actually launched and verified. - -## unknowns - -No approved participant list, raw-key lifecycle, production Origin policy, persistence service, billing/OAuth contract, customer terms, privacy notice, support posture, or deployment identifier exists. No provider/model/cost choice is made here. - -## dependencies - -- WS-009 exact archive-pin verification and documentation correction. -- WS-010 is a separate later npm-range migration, not a hard dependency. -- Owner approval before deployment or participant access. - -## owned paths +## Exclusive ownership +- /Users/luismorrobel/karayagroup/citewire-cloud/.env.example - /Users/luismorrobel/karayagroup/citewire-cloud/api/mcp.js - /Users/luismorrobel/karayagroup/citewire-cloud/src/auth.js - /Users/luismorrobel/karayagroup/citewire-cloud/src/http.js +- /Users/luismorrobel/karayagroup/citewire-cloud/src/plans.js - /Users/luismorrobel/karayagroup/citewire-cloud/src/tools.js +- /Users/luismorrobel/karayagroup/citewire-cloud/docs/OWNER-DECISIONS.md - /Users/luismorrobel/karayagroup/citewire-cloud/docs/ALPHA-DEPLOYMENT-CHECKLIST.md - /Users/luismorrobel/karayagroup/citewire-cloud/test/ -## binary DoD - -- [x] Auth precedes MCP dispatch with stable non-secret errors. -- [x] Per-request account context is immutable and concurrent accounts remain isolated through the real HTTP handler. -- [x] Stateful tools fail closed without injected services. -- [x] Community remains the one-way stateless/read-only dependency. -- [x] Existing tests, syntax/checks, direct HTTP smoke, account-isolation tests, and Node 18/22 CI pass. -- [ ] Owner has approved participant, deployment, credentials, domain, retention, terms, privacy, support, and cost posture. - -## artifact - -Draft PR #1, committed Cloud implementation/tests, and owner-gated alpha checklist. No deployment artifact exists. - -## baseline - -Runtime candidate ad7e58fb2ac3f6ebc4c7d0247c105955dd9696b0; current docs head 69068275ca0e332e36304533aa0f6b5d2e291405. - -## focused checks - -Run isolated-cache npm ci, npm test, npm run check, and git diff --check. Exercise auth variants, direct HTTP, and concurrent account-isolation smoke with existing tests. Do not send live provider traffic or add fixtures. - -## integration checks - -- Cross-check Community HTTP behavior at 10aee95a. -- Confirm Cloud imports no Karaya credentials, editorial policy, source registry, voice rules, or stored article content. -- Confirm draft PR green and no deployment. - -## rollback - -On auth, isolation, or secret-scan failure, stop and keep the last-good undeployed candidate. Never deploy as a diagnostic or loosen fail-closed behavior to make a smoke pass. - -## GitHub mapping - -- Draft PR #1: https://github.com/MeekPhills/citewire-cloud/pull/1. -- Docs-sync runs: 31893670759 and 31893673430. - -## Linear mapping +## Binary definition of done -- Parent: KAR-66. -- Identity dependency: KAR-67. +Owner approves tenancy/auth issuer, credential namespace, deployment account, +support/privacy owner, domain/origin, retention, billing/provider choices, and +participant scope. Implementation remains fail-closed and isolated; no +Community or Karaya credentials/accounts are trusted by default; deployment +requires a separate approval. -## Claude tier +## Checks -Level 2 Opus for security/account-isolation interpretation; Level 3 Sonnet for mechanical checks under review. +- Run isolated npm ci, committed Cloud tests, check, and diff check. +- Run committed HTTP/account-isolation tests and static secret scan. +- Review configured Origin and Authorization proxy behavior without real + credentials. +- Verify deployment identifier/operator/rollback only after separate approval. -## reviewer +## Artifact and rollback -Terra independently reviews security. Luna verifies paths, counts, check runs, and deployment state. +The artifact is the completed private-alpha checklist. Roll back focused +code/docs only; no deployment or service activation without owner-approved +rollback. -## integrator +## Mappings -Level 0 Sol/Fable master. No alpha operator is implied. +- GitHub: recorded historical CiteWire Cloud PR #1. +- Linear: recorded historical KAR-66, In Progress; no distinct child. -## first action +## Execution label, reviewer, and first action -Read the architecture, owner decisions, and auth/HTTP tests, then run the clean committed verification wave from the pinned head. +- Execution label: Opus security/privacy owner under Fable L1. +- Reviewer: independent Opus tenant-boundary reviewer with Sonnet test work. +- First action: turn unresolved decisions into explicit approval checklist and + do not deploy. -## escalation +## Escalation -Stop on a secret, account crossover, unbounded service error, provider, participant, credential, DNS, deployment, or public-availability action. +Stop for paid service, credential delivery, provider activation, deployment, +retention, billing/OAuth, privacy/legal commitment, or isolation failure. diff --git a/.claude/orchestration/streams/WS-012.md b/.claude/orchestration/streams/WS-012.md index adf0afd..ab346bd 100644 --- a/.claude/orchestration/streams/WS-012.md +++ b/.claude/orchestration/streams/WS-012.md @@ -1,114 +1,66 @@ -# WS-012 — Karaya production truth and corpus policy integrity +# WS-012 — Karaya production truth and corpus integrity -## objective +## Objective -Establish dated, read-only truth for Karaya Industry News before autonomous editorial expansion. Reconcile live HTTP/MCP/feed observations with ingest and publication policy, classify stored-corpus drift, and prepare owner-reviewed remediation without database writes, source changes, or silent rewrites. +Establish dated read-only production truth and reconcile vendor provenance +before any remediation proposal. -## status +## Priority, status, and dependencies -RESEARCH READY — live surface is healthy; corpus and operational state need a fresh evidence artifact. +- Priority: P0. +- Status: blocked; required production-audit worktree is absent. +- Dependencies: WS-001. -## provenance +## Current state -- Production reference: repaired Karaya main at 9c1506320771faf177f3675ef5ea1c1eff36fe81. -- Required code worktree: `/Users/luismorrobel/karayagroup/karayagroup-production-audit`, freshly created as a clean isolated checkout from verified `origin/main` and recorded by Level 0 before this stream begins. -- Never use `karayagroup-live` for production truth and never use or write the protected `karayagroup-brand` owner-screenshot worktree. -- On 2026-08-15, /, /industry-news, /industry-news/about, and the topics API returned 200. -- Topics returned nine slugs: ai-compute, data-centers, power-cooling, gpu-systems, cloud-colocation, capital-financing-ma, supply-chain, policy-governance, and benchmarks-research. -- MCP initialize at /mcp succeeded with protocol 2025-06-18, server karaya-news-mcp version 1.0.0, and read-only instructions. -- The observed 50-item production JSON feed contained 16 summaries over the provisional 480-character cap and one appeared first on POWER Magazine trailer. +Recorded Karaya feed had 50 items, 16 over provisional cap, and one POWER +Magazine trailer. This is stored-corpus drift, not proof that current ingest +bypasses policy. Production-audit worktree does not exist. -## last-good +## Exclusive ownership -Current code strips known boilerplate and applies the 480-character gate. Live oversize/trailer observations establish stored-corpus drift, not proof of an ingest-gate bypass. Production is intentionally unchanged. +- /Users/luismorrobel/karayagroup/karayagroup-production-audit/docs/production-truth-2026-08-15.md -## completed +All production source, schema, data, source configuration, and deployment +paths are read-only. -- Public Industry News, About, topics API, and MCP surfaces are reachable. -- Current publication policy, source conditions, revisions path, and summary cap are documented. -- GitHub issue #18 and Linear KAR-69 capture this scope. -- Owner screenshots remain untouched: 49 files exist in the owner handoff area, including 41 untracked assets in the separate owner worktree. +## Binary definition of done -## remaining +- Dated packet covers deployed commit, migrations, source/circuit-breakers, + cron, queue, source count, affected rows, and policy drift. +- Packet supplies rights/revision-aware remediation options without mutation. +- Reconcile actual vendored CiteWire adapter preimage, exact commit, package + version, local customization, and behavior/terms delta. +- No database, source, provider, configuration, or public-content mutation. -- Record read-only migration 0007–0010 application state. -- Record effective source/circuit-breaker state, cron health, queue age, latest runs, and current production source count. -- Classify each affected row by policy version, source mode, length, boilerplate, attribution, rights posture, and revision history. -- Present remediation options that preserve revisions and audit history. Any write, migration, source toggle, provider activation, or rewrite is separate. +## Checks -## unknowns +- Create and record fresh clean production-audit worktree from verified + origin/main, then run local tests/build/compliance there. +- Use public HTTP/API/MCP requests and authorized read-only metadata only. +- Inventory migrations, source, cron, queue, corpus, and vendor provenance. +- Reconcile observed production data to deployed code and migration inventory. -Live migration state, effective source count versus registry count, circuit-breakers, cron/queue health, affected-row provenance, and revision lineage are not established by public HTTP smoke alone. +## Artifact and rollback -## dependencies +The artifact is the production-truth packet. It is read-only. Any later +data/configuration change requires separate approved reversible plan with +snapshot/rollback. -- No implementation dependency for read-only truth collection. -- WS-014 waits for this evidence; WS-015 and WS-016 depend on the classified baseline. +## Mappings -## owned paths +- GitHub: recorded historical MeekPhills/karayagroup issue #18. +- Linear: recorded historical KAR-69, Todo. -- Read-only inspection of runtime and migration paths in the fresh production-audit worktree. -- Sole write ownership: `/Users/luismorrobel/karayagroup/karayagroup-production-audit/docs/production-truth-2026-08-15.md`. -- No runtime, migration, test, configuration, database, corpus, or protected-owner-asset write ownership. +## Execution label, reviewer, and first action -## binary DoD +- Execution label: Fable L1 Karaya coordination with Opus data/rights owner. +- Reviewer: independent Opus production-integrity reviewer. +- First action: create and record clean production-audit worktree, then + collect public/local read-only evidence. Never use live, brand, or + editorial-shadow. -- [ ] Dated read-only evidence covers migrations, effective sources, circuit-breakers, cron, queue, runs, and source count. -- [ ] Every affected row has policy/source/length/boilerplate/attribution/rights/revision classification. -- [ ] Code, registry, database, and public-feed contradictions are resolved or marked Unknown. -- [ ] Remediation preserves audit/revision history and remains owner-gated. -- [x] No database write, migration, source toggle, provider activation, or silent rewrite occurred. -- [x] Owner screenshots remain unmodified, unstaged, and untracked. +## Escalation -## artifact - -Planned `docs/production-truth-2026-08-15.md` with dated evidence, row-level classification, and no-write disposition. Existing committed tests are inputs; do not create ad hoc test artifacts. - -## baseline - -Live production `9c150632...`; the implementation baseline must be refreshed from verified `origin/main`. The historical `karayagroup-live` and protected `karayagroup-brand` worktrees are excluded. - -## focused checks - -Routine HTTP smoke for public pages/endpoints; read-only MCP initialize and tool inspection; read-only feed retrieval with deterministic count/length/trailer report; existing build/test/registry/audit/compliance checks only as needed. Never apply migrations or invoke mutating admin APIs. - -## integration checks - -- Compare live 480-character observations with publish-policy.js and ingest normalization. -- Compare live source/circuit state with registry without treating YAML count as runtime truth. -- Pass the classified baseline to WS-014. - -## rollback - -Evidence is read-only. If proof would require mutation, record Unknown and stop. Delete no rows, rollback no migrations, and rewrite no stored content. - -## GitHub mapping - -- Issue #18: https://github.com/MeekPhills/karayagroup/issues/18. -- Link PR #17 is separate and remains draft. - -## Linear mapping - -- Parent: KAR-66. -- Work item: KAR-69. -- Existing console/source-health follow-up: KAR-53. - -## Claude tier - -Level 2 Opus for production-readiness and contradiction analysis; Level 3 Sonnet for bounded read-only endpoint evidence under review. - -## reviewer - -Terra reconciles code, feed, and operational-state claims. Luna checks URLs, SHAs, migration names, counts, and screenshot preservation. - -## integrator - -Level 0 Sol/Fable master controls the dependency gate into WS-014. - -## first action - -Level 0 first records the fresh clean production-audit worktree and exact base SHA. Then run routine public smoke tests and MCP initialize before any privileged read-only inspection. - -## escalation - -Stop on database write, migration, source toggle, provider activation, secret, paid-service decision, queue mutation, silent rewrite, screenshot change, or contradiction that cannot be marked Unknown. +Stop for database write, migration, provider/source activation, corpus rewrite, +unapproved access, secret, or rights ambiguity. diff --git a/.claude/orchestration/streams/WS-013.md b/.claude/orchestration/streams/WS-013.md index ce580ff..b33983f 100644 --- a/.claude/orchestration/streams/WS-013.md +++ b/.claude/orchestration/streams/WS-013.md @@ -1,113 +1,68 @@ -# WS-013 — Versioned public MCP contract and resources +# WS-013 — Versioned public MCP contract ADR -## objective +## Objective -Design a backward-compatible Community MCP expansion for article discovery, source/topic metadata, inclusion explanations, health, and MCP resources. Keep Community stateless, provider-neutral, read-only, attribution-first, MIT-licensed, and independent of Karaya credentials and editorial state. +Design, but do not implement, a backward-compatible Community MCP contract for +discovery, metadata, explanations, health, and resources. -## status +## Priority, status, and dependencies -PLANNED — design only; no runtime contract change is authorized. +- Priority: P1. +- Status: planned, design-only. +- Dependencies: WS-002. -## provenance +## Current state -- Baseline: citewire release branch agent/citewire-product-launch at 10aee95ac95bb437b4607723cd20fa5c8f9d1879. -- Existing tools: news.list, news.get, news.topics, news.about. -- Existing transports: stdio and stateless HTTP. -- GitHub issue 4 verifies resources/list, resources/read, inclusion tiers, reason tags, and durable decision traces are absent. +Community currently exposes news.list, news.get, news.topics, news.about, +optional provider tools, stdio, and stateless HTTP. Resources, inclusion tiers, +reason tags, and decision traces are absent. -## last-good +## Exclusive ownership -Community remains dependency-free, Node 18+ ESM, self-hostable, stateless, read-only, and provider-disabled by default. Existing news.* compatibility is the rollback target. +- docs/platform-contract.md +- docs/adr-public-mcp-contract-v1.md -## completed +Runtime, test, package, registry, deployment, Studio, plugins, +accounts/identity, persistence, scheduling, credential storage, Cloud +operations, and Karaya state are excluded. -- Current platform contract, MCP implementation, and committed tests are the compatibility baseline. -- GitHub issue MeekPhills/citewire#4 and Linear KAR-68 are the future-design anchors. +## Binary definition of done -## remaining +An independently reviewed ADR defines versioning, capability discovery, +schemas, resources, attribution/canonical/rights/inclusion/health fields, +errors, compatibility, fixture specifications, stdio/direct-HTTP smoke +specifications, and explicit exclusion of Karaya state. No runtime, test, +package, registry, or deployment mutation occurs. -- Approve an ADR defining versioning, capability discovery, exact schemas, rights/attribution fields, and compatibility. -- Specify the committed fixtures and routine stdio/direct-HTTP smoke coverage - that a later separately approved implementation stream must add and execute. -- Obtain independent protocol and rights review. -- Keep Karaya inclusion policy and private decision state outside Community. +WS-017 is the sole later serialized runtime implementation, after WS-004 and +explicit owner approval. WS-013 does not authorize implementation work. -## unknowns +## Checks -Resource URI scheme, negotiation strategy, inclusion vocabulary, reason tags, health semantics, and trace retention/ownership are not approved. +- Read-only inventory current news.*, RPC, HTTP, stdio, and committed tests. +- Write schema/fixture compatibility matrix and later implementation smoke + specification. +- Independently review Community boundary against Karaya and Cloud. -## dependencies +## Artifact and rollback -WS-002 canonical identity only. This design may proceed in parallel with later -release planning and does not block the scoped Community 0.2 candidate or -Karaya's independent shadow-safety work. +The artifact is docs/adr-public-mcp-contract-v1.md. Revert ADR proposal only +and preserve current protocol behavior. -## owned paths +## Mappings -Design-only ownership: `citewire/docs/platform-contract.md` and -`citewire/docs/adr-public-mcp-contract-v1.md`. Runtime and test paths remain -read-only until a separately approved implementation stream is serialized after -WS-004. +- GitHub: recorded historical MeekPhills/citewire issue #4. +- Linear: recorded historical KAR-68, Todo. -## binary DoD +## Execution label, reviewer, and first action -- [ ] Approved ADR and versioning path. -- [ ] Exact tool/resource schemas include attribution, canonical links, rights status, inclusion explanation, and health without Karaya state. -- [ ] The ADR specifies committed fixtures and routine stdio/direct-HTTP smokes; - their creation and execution are explicitly assigned to a later serialized - implementation stream after WS-004. -- [ ] Existing news.* behavior remains unchanged and no duplicate semantics exist. -- [ ] Independent protocol and rights review is recorded. -- [ ] No runtime, package, registry, or deployment mutation before approval. +- Execution label: Opus protocol/rights design owner under Fable L1. +- Reviewer: independent Opus MCP-compatibility reviewer with Sonnet schema + check. +- First action: inventory existing schemas/tests before naming a new tool, + resource, or field. -## artifact +## Escalation -Planned ADR with companion fixture/test/smoke specifications. This design-only -stream creates no runtime fixture or test artifact. - -## baseline - -10aee95ac95bb437b4607723cd20fa5c8f9d1879. - -## focused checks - -Inspect the existing committed suite and helpers read-only, validate the ADR -diff, and define the later smoke matrix. Actual test and smoke execution belongs -to the separately approved implementation stream. Do not call live providers. - -## integration checks - -Verify additive capability discovery, no Community dependency on Karaya secrets/policy/database, and one-way Cloud consumption. - -## rollback - -If compatibility or rights is unresolved, keep the ADR as a proposal and do not modify src. Existing news.* behavior remains. - -## GitHub mapping - -Issue 4: https://github.com/MeekPhills/citewire/issues/4. - -## Linear mapping - -Parent KAR-66; work item KAR-68. - -## Claude tier - -Level 2 Opus for protocol/rights design; Level 3 Sonnet is reserved for bounded -fixture/test implementation only in the later approved stream. - -## reviewer - -Terra protocol/rights review; Luna exact schema, path, and fixture review. - -## integrator - -Level 0 Sol/Fable master enforces Community/Karaya separation. - -## first action - -Inventory current tool schemas and tests before naming a new resource or field. - -## escalation - -Stop on a breaking contract, Karaya-specific field/credential, rights ambiguity, provider activation, publication, registry submission, secret, or deployment. +Stop for breaking contract, Karaya-specific field, rights ambiguity, provider +activation, publication, registry action, secret, or deployment. diff --git a/.claude/orchestration/streams/WS-014.md b/.claude/orchestration/streams/WS-014.md index 66bb2e1..e75ef6f 100644 --- a/.claude/orchestration/streams/WS-014.md +++ b/.claude/orchestration/streams/WS-014.md @@ -1,113 +1,76 @@ -# WS-014 — Rights-aware policy, evaluation, and shadow workflow +# WS-014 — Karaya deterministic shadow policy -## objective +## Objective -Define and validate a deterministic, auditable shadow state machine for Karaya ingest, relevance, summarization, verification, and publishing. Routine human review may be removed only after rights, attribution, evidence, and independent-agent agreement gates are proven. +Define and prove a rights-safe non-publishing policy/evaluation/shadow state +machine. -## status +## Priority, status, and dependencies -PLANNED — shadow/replay only; production thresholds remain unchanged. +- Priority: P1. +- Status: blocked. +- Dependencies: WS-012. -## provenance +## Current state -- Karaya production baseline: main at 9c1506320771faf177f3675ef5ea1c1eff36fe81. -- Current bands: below 0.55 quarantine; 0.55–0.8199 review; at least 0.82 auto-eligible subject to the full gate. -- Proposed shadow bands: below 0.50 held; 0.50–0.5999 adjacent-only after independent agreement with an Adjacent signal badge/reason tag; at least 0.60 standard candidate. -- Existing policy, attribution/redaction gates, source conditions, revisions, and tests are the baseline. +No approved shadow workflow exists. The preserved editorial-shadow proposal is +not partial completion and has an executable migration, nondeterministic run +identity, incomplete corpus traversal, race/partial-write defects, and +unresolved vendor provenance. -## last-good +## Exclusive ownership -Unknown rights, missing attribution, provider failure, agent disagreement, weak evidence, and policy conflicts hold an item. No live threshold or publication behavior changed. +- /Users/luismorrobel/karayagroup/karayagroup-production-audit/site/api/_lib/ingest/classify.js +- /Users/luismorrobel/karayagroup/karayagroup-production-audit/site/api/_lib/ingest/process.js +- /Users/luismorrobel/karayagroup/karayagroup-production-audit/site/api/_lib/publish-policy.js +- /Users/luismorrobel/karayagroup/karayagroup-production-audit/site/api/_lib/editorial-assessment.js +- /Users/luismorrobel/karayagroup/karayagroup-production-audit/site/api/_lib/editorial-fingerprint.js +- /Users/luismorrobel/karayagroup/karayagroup-production-audit/site/api/_lib/editorial-source-assessment.js +- /Users/luismorrobel/karayagroup/karayagroup-production-audit/site/api/cron/editorial-assess.js +- Focused ingest/editorial assessment test files +- /Users/luismorrobel/karayagroup/karayagroup-production-audit/docs/adr-editorial-policy-shadow-state-machine.md -## completed +SQL migrations, source toggles, production configuration, and WS-015 +admin/UI/control paths are excluded. -- Existing policy gate, summary cap, source-mode rules, revisions, and audit behavior are implemented and tested. -- Automated review/summarization/posting and recurring assessment direction is recorded without a model/provider/cost choice. -- GitHub issue 19 and Linear KAR-70 capture required order and holds. +## Binary definition of done -## remaining +- Approved policy/data contract and deterministic replay fixtures exist. +- Run identity carries bounded as-of/window semantics. +- Corpus traversal is complete, stable, and paginated. +- Run creation/retry is concurrency-safe and partial writes are atomic or + recoverable. +- Independent-agreement and rights gates are traceable. +- Shadow remains non-publishing and cannot change published eligibility, + source state, or historical corpus. +- If schema is insufficient, stop for separately approved reversible migration + subtask. -- Version the policy/data contract and immutable decision-trace fields. -- Replay the classified corpus after WS-012; shadow output must not expand publication. -- Define independent roles/agreement and controlled reason tags. -- Define 15-minute ingest, hourly health, daily audit, weekly calibration, and monthly source/provider/security/cost assessments. -- Carry only a non-visible label token or proposed copy. WS-015 exclusively owns - the read-aloud gate for any visible label or reason-tag copy. +## Checks -## unknowns +- Run committed Karaya tests/build from clean production-audit worktree. +- Run deterministic replay, pagination, race/retry, partial-write, + rights-trace, and no-publish tests. +- Compare outputs to WS-012 and obtain independent rights/policy review. -Historical row policy versions, rights lineage, agreement threshold, calibration quality, summary method, provider/model terms, cost ceiling, and badge copy are unknown. +## Artifact and rollback -## dependencies +The artifact is the shadow-state ADR and focused non-publishing implementation. +Revert only focused policy/fixture work. No migration, threshold, source-state, +or corpus change. -WS-012 is a hard prerequisite. WS-013 may supply only generic fields. WS-015 and WS-016 wait for this contract. +## Mappings -## owned paths +- GitHub: recorded historical MeekPhills/karayagroup issue #19. +- Linear: recorded historical KAR-70, Todo. -In the required fresh `karayagroup-production-audit` worktree only: -`docs/adr-editorial-policy-shadow-state-machine.md`, -`site/api/_lib/ingest/classify.js`, `site/api/_lib/ingest/process.js`, -`site/api/_lib/publish-policy.js`, `site/test/ingest.test.mjs`, -`site/test/ingest-worker.test.mjs`, and `site/test/publish-policy.test.mjs`. -No `karayagroup-live` or `karayagroup-brand` path is writable. +## Execution label, reviewer, and first action -## binary DoD +- Execution label: Opus policy/data-contract owner under Fable L1. +- Reviewer: independent Opus rights and deterministic-replay reviewer. +- First action: derive ADR and replay matrix from WS-012, not editorial-shadow. -- [ ] Versioned state machine names every gate and transition. -- [ ] Replay and independent agreement are deterministic and hold unknown/disagreeing cases. -- [ ] Lower bands remain shadow-only and live thresholds unchanged. -- [ ] Assessment outputs are reproducible. -- [ ] Any label is non-visible placeholder data only; visible-copy approval is - deferred to WS-015. -- [ ] WS-012 proves existing schema sufficiency. If a migration, backfill, or - configuration write is needed, this stream stops for a separately approved, - reversible subtask with snapshot and rollback evidence. -- [x] No provider/model/cost choice, migration, activation, threshold change, or automated production publish. +## Escalation -## artifact - -Planned `docs/adr-editorial-policy-shadow-state-machine.md`, deterministic replay fixtures/results, and updates to existing committed policy tests. No ad hoc fixtures. - -## baseline - -Karaya production 9c150632... and current policy tests; preserve all 49 owner screenshots, including 41 untracked and 8 tracked files. - -## focused checks - -Run existing policy/ingest tests and full Karaya build/test/registry/audit/compliance gates if runtime files change. Use committed deterministic replay data. - -## integration checks - -Compare replay with WS-012 classification; keep traces private to Karaya; confirm production thresholds and publication counts are unchanged. - -## rollback - -Retain the report, keep affected items held/reviewed under current rules, and revert focused implementation before any canary. - -## GitHub mapping - -Issue 19: https://github.com/MeekPhills/karayagroup/issues/19. - -## Linear mapping - -Parent KAR-66; work item KAR-70. - -## Claude tier - -Level 2 Opus for policy/rights/evaluation; Level 1 nested Fable for role coordination; Level 3 Sonnet for bounded tests. - -## reviewer - -Terra rights/safety reviewer; Luna deterministic fixture and path reviewer. - -## integrator - -Level 0 Sol/Fable master enforces sequence and approvals. - -## first action - -Read WS-012 evidence and existing policy tests; inventory states before touching a threshold or UI string. - -## escalation - -Stop on live threshold/publishing change, activation, model/provider/cost choice, migration, secret, rights uncertainty, or unapproved visible copy. +Stop for threshold change, automatic publishing, model/cost choice, migration, +source activation, untraceable decision, or failed replay. diff --git a/.claude/orchestration/streams/WS-015.md b/.claude/orchestration/streams/WS-015.md index f3cf264..0df75e7 100644 --- a/.claude/orchestration/streams/WS-015.md +++ b/.claude/orchestration/streams/WS-015.md @@ -1,111 +1,74 @@ -# WS-015 — Adjacent signals, exceptions console, and assessments +# WS-015 — Karaya authorized exceptions console -## objective +## Objective -After WS-012 and WS-014 prove the automated path, replace routine review with an exceptions-only surface. Expose controlled reason tags, Adjacent signal handling, decision traces, health and assessments, explicit reprocess/reject/one-item approval, and a tested global pause. +Build the owner-approved Adjacent presentation, exceptions-only console, pause, +and assessment surface on top of WS-014. -## status +## Priority, status, and dependencies -PLANNED — current console remains live and unchanged; no adjacent UI or automated publishing exists. +- Priority: P1. +- Status: blocked. +- Dependencies: WS-014. -## provenance +## Current state -- Karaya production baseline: main at 9c1506320771faf177f3675ef5ea1c1eff36fe81. -- Existing console: /admin and read-only /admin/sources; remaining dedupe/dead-letter/kill-switch/source-activation work is anchored by KAR-53. -- No Adjacent signal UI, inclusion-tier fields, new agent workflow state, durable trace, or assessment scheduler exists. -- Cadence from KAR-66: 15-minute ingest, hourly health, daily audit, weekly calibration, monthly source/provider/security/cost review. +No authorized Adjacent UI, decision trace, exceptions-only console, global +pause, or assessment scheduler is implemented. Generic Studio is not evidence +and is excluded. -## last-good +## Exclusive ownership -Existing authorization, publication gate, revisions, audit rows, and source-health view remain the baseline. Routine review is not removed yet. +- /Users/luismorrobel/karayagroup/karayagroup-production-audit/site/api/admin.js +- /Users/luismorrobel/karayagroup/karayagroup-production-audit/site/api/_lib/editorial-auth.js +- /Users/luismorrobel/karayagroup/karayagroup-production-audit/site/api/_lib/editorial-queries.js +- /Users/luismorrobel/karayagroup/karayagroup-production-audit/site/api/_lib/editorial-automation-controls.js +- /Users/luismorrobel/karayagroup/karayagroup-production-audit/site/api/news-page.js +- /Users/luismorrobel/karayagroup/karayagroup-production-audit/site/api/_lib/render.js +- /Users/luismorrobel/karayagroup/karayagroup-production-audit/site/src/pages/industry-news/shell.astro +- /Users/luismorrobel/karayagroup/karayagroup-production-audit/site/src/styles/ +- Focused admin/news/control test files +- /Users/luismorrobel/karayagroup/karayagroup-production-audit/docs/adjacent-signal-console-runbook.md -## completed +## Binary definition of done -Current admin routes, auth, source-health helpers, publication/revision helpers, and committed tests are available. Target exception actions and cadence are requirements, not implementation claims. +- Console exposes exceptions only. +- Authentication/authorization is injected and enforced. +- Every action links to a rights/exception trace. +- Global pause gates every mutation. +- Assessment evidence is auditable. +- Accessible visible tiers/reason tags have Luis read-aloud approval. +- Committed tests, build, and compliance pass. -## remaining +## Checks -- Define exception schema and reason tags. -- Show inclusion tier, source attribution, agent agreement, trace, and health without secrets/article bodies. -- Implement and test reprocess, reject, explicit approval, and global pause as audited/replay-safe actions. -- Add assessment outputs and failed-agent escalation. -- Obtain read-aloud approval for badge and reason-tag copy. +- Run committed Karaya tests/build/compliance. +- Run authorization, traceability, pause-all-writes, accessibility, reason-tag, + cadence, and compliance tests. +- Verify visible-copy/read-aloud approval and WS-014 decision-trace alignment. -## unknowns +## Artifact and rollback -Final roles, trace retention, assessment storage/scheduler, alert destination, exception SLA, exact copy, and paid-service need are unresolved. +The artifact is the adjacent-signal console runbook and focused UI/API diff. +Use tested global pause first, then focused revert while preserving decision +logs. -## dependencies +## Mappings -WS-012 and WS-014 are hard prerequisites. WS-013 supplies generic fields only. WS-016 waits for pause and rollback tests. +- GitHub: recorded historical MeekPhills/karayagroup issue #19; KAR-53 is + related context. +- Linear: recorded historical KAR-70, Todo; KAR-53 related context. -## owned paths +## Execution label, reviewer, and first action -In the required fresh `karayagroup-production-audit` worktree only: -`site/api/admin.js`, `site/api/_lib/editorial-auth.js`, -`site/api/_lib/editorial-queries.js`, `site/api/news-page.js`, -`site/api/_lib/render.js`, `site/src/pages/industry-news/shell.astro`, -`site/src/styles/`, `site/test/admin.test.mjs`, `site/test/news-page.test.mjs`, -and `docs/adjacent-signal-console-runbook.md`. The PR #17-owned -`about.astro` and `news-compliance.test.mjs` are explicitly excluded. Shared -paths require predecessor completion and a recorded Level 0 ownership transfer. +- Execution label: Sonnet bounded UI/test owner under Fable L1 with Opus + security/copy review. +- Reviewer: independent Opus authorization, accessibility, and copy-compliance + reviewer. +- First action: create implementation-ready control specification from WS-014. + Do not adapt generic Studio. -## binary DoD +## Escalation -- [ ] Routine bypass only follows deterministic rights, attribution, quality, and independent-agreement gates. -- [ ] Exceptions UI shows tier, reason, attribution, agreement, trace, and health. -- [ ] Reprocess, reject, approval, and global pause are authorized, audited, replay-safe, and tested. -- [ ] Assessment cadence and escalation are reproducible. -- [ ] Visible copy has Luis read-aloud approval. -- [ ] Existing schema is sufficient, or a separately approved reversible - migration/backfill/configuration subtask with snapshot and rollback evidence - has completed before implementation resumes. -- [ ] No production publishing expansion or provider/model/cost choice. - -## artifact - -Planned `docs/adjacent-signal-console-runbook.md`, committed route/policy tests, and assessment fixtures. No ad hoc artifacts or live queue rows. - -## baseline - -Production 9c150632... and current console/auth baseline; preserve owner screenshots. - -## focused checks - -Run existing admin auth, publication, revision, source-health, and MCP tests; full build/registry/audit/compliance/diff/secret checks for runtime changes; deterministic pause/replay tests. - -## integration checks - -Confirm pause blocks automated and manual publishing and writes a truthful audit result. Confirm role boundaries, attribution, revisions, source terms, and no Community leakage. - -## rollback - -Keep current review/publication gates. If pause or audit fails, disable only the new workflow and hold items for the existing path. Do not delete history. - -## GitHub mapping - -Issue 19: https://github.com/MeekPhills/karayagroup/issues/19. Related follow-up: KAR-53. - -## Linear mapping - -Parent KAR-66; work item KAR-70; related KAR-53. - -## Claude tier - -Level 2 Opus for authorization/audit/failure modes; Level 1 nested Fable coordination; Level 3 Sonnet for bounded UI/tests after approval. - -## reviewer - -Terra security/rights/state-transition review; Luna route/test/screenshot-scope review. - -## integrator - -Level 0 Sol/Fable master owns synchronization. - -## first action - -Inventory mutating admin paths and current tests before designing the exceptions-only surface. - -## escalation - -Stop on public copy without approval, auth/RLS change, migration, queue mutation, source toggle, provider/model/cost choice, secret, deployment, or failed pause test. +Stop for unapproved visible copy, routine manual-review queue, unaudited +control, missing pause test, threshold/model/cost choice, or data mutation. diff --git a/.claude/orchestration/streams/WS-016.md b/.claude/orchestration/streams/WS-016.md index 71f20ea..df6d041 100644 --- a/.claude/orchestration/streams/WS-016.md +++ b/.claude/orchestration/streams/WS-016.md @@ -1,105 +1,63 @@ -# WS-016 — Controlled canary and rollback drill +# WS-016 — Karaya canary and reversible rollout -## objective +## Objective -Prepare and, only after explicit owner authorization, run a bounded canary for the rights-safe automated editorial workflow. Lower score bands and Adjacent signal remain shadow-only until policy, console, assessments, and rollback are proven. +Run a separately approved reversible canary and rollout only after WS-015 +safety evidence. -## status +## Priority, status, and dependencies -PLANNED — no canary, deployment, threshold change, or automated publishing is authorized. +- Priority: P0. +- Status: blocked. +- Dependencies: WS-015. -## provenance +## Current state -- Production baseline: main at 9c1506320771faf177f3675ef5ea1c1eff36fe81. -- Required order in Karaya issue 19/KAR-70: production truth; policy/data contract; deterministic replay/shadow; assessments; read-aloud approval; exceptions console/global pause; canary/rollback. -- Existing production gate, review fallback, revisions, audit trail, and smoke tests are the rollback baseline. +No canary, threshold change, autonomous publishing rollout, or rollback drill +is authorized or recorded. -## last-good +## Exclusive ownership -Current production remains healthy and unchanged. No new automated workflow is enabled by this program. +- /Users/luismorrobel/karayagroup/karayagroup-production-audit/site/api/cron/ingest.js +- /Users/luismorrobel/karayagroup/karayagroup-production-audit/site/vercel.json +- /Users/luismorrobel/karayagroup/karayagroup-production-audit/docs/industry-news-runbook.md +- /Users/luismorrobel/karayagroup/karayagroup-production-audit/docs/go-live-runbook.md +- /Users/luismorrobel/karayagroup/karayagroup-production-audit/docs/autonomous-editorial-canary-runbook.md -## completed +## Binary definition of done -Required order and owner gates are documented. Existing tests and production verification provide a rollback baseline. No deployment artifact exists. +Luis separately approves bounded canary, metrics, monitoring, pause trigger, +and rollback drill. Canary passes documented safety metrics. Rollout follows +independent review and remains reversible through verified pause and recovery. -## remaining +## Checks -- Write a runbook for cohort/source scope, feature flag, holds, pause, metrics, abort criteria, and rollback. -- Prove replay, pause, and rollback using committed tests in a non-production shadow context. -- Obtain Luis read-aloud approval and separate canary deployment approval. -- If approved, record exact commit, deployment, cohort, times, assessments, and rollback evidence. +- Run committed Karaya regression suite/build. +- Verify exact deployed pause, no-publish fallback, recovery, and approved + canary observability. +- Run production HTTP/MCP and post-canary corpus/rights checks with independent + change-log review. -## unknowns +## Artifact and rollback -Canary cohort/source, deployment target, flag owner, monitoring, abort thresholds, retention, support, and cost are unresolved. No provider/model is selected. +The artifact is the autonomous editorial canary runbook. Use tested global +pause, then owner-approved recovery. No automatic rollout/rollback or +data/corpus mutation. -## dependencies +## Mappings -WS-012 truth; WS-014 shadow policy; WS-015 exceptions/pause; explicit owner -deployment approval. WS-013 generic contract is an optional consult, not a hard -dependency. +- GitHub: recorded historical MeekPhills/karayagroup issue #19. +- Linear: recorded historical KAR-70, Todo. -## owned paths +## Execution label, reviewer, and first action -In the required fresh `karayagroup-production-audit` worktree only: -`site/api/cron/ingest.js`, `site/vercel.json`, -`docs/industry-news-runbook.md`, `docs/go-live-runbook.md`, and -`docs/autonomous-editorial-canary-runbook.md`. Earlier policy, console, and test -paths are read-only unless Level 0 records an explicit serialized ownership -transfer after predecessor completion. +- Execution label: Fable L1 rollout coordination with Opus production-change + owner. +- Reviewer: independent Opus production-safety and rollback reviewer. +- First action: prepare no-change canary/rollback plan only after WS-015. -## binary DoD +## Escalation -- [ ] Reviewed runbook defines bounded cohort, kill switch, hold, metrics, abort criteria, rollback, and evidence. -- [ ] Shadow/replay and pause/rollback tests pass. -- [ ] Luis approves visible copy and separately authorizes canary deployment. -- [ ] If executed, canary is auditable and promoted/rolled back only by explicit owner decision. -- [x] No canary, deployment, threshold/source/provider activation, migration, or automated publishing occurred. - -## artifact - -Planned `docs/autonomous-editorial-canary-runbook.md`, committed pause/rollback regressions, and only if approved a dated canary evidence record. No live deployment artifact exists. - -## baseline - -Production 9c150632... and current test/build baseline; exclude all 49 owner screenshots from the stream, including 41 untracked and 8 tracked files. - -## focused checks - -Run existing policy, ingest, admin, revision, and MCP tests; full build/registry/audit/compliance/diff/secret checks for runtime changes; deterministic pause/abort/replay/rollback checks. - -## integration checks - -Confirm no publication on rights/attribution failure or disagreement, global pause blocks every path, and production/link state remains unchanged without approval. - -## rollback - -Capture the pre-canary SHA and deployment. On abort, pause first, stop publishing, restore prior configuration/commit, and verify public smoke and audit evidence. Never delete history or force-reset a shared branch. - -## GitHub mapping - -Issue 19: https://github.com/MeekPhills/karayagroup/issues/19. No canary PR or deployment exists. - -## Linear mapping - -Parent KAR-66; work item KAR-70; related KAR-53. - -## Claude tier - -Level 1 nested Fable for sequencing, Level 2 Opus rollout review, Level 3 Sonnet for bounded tests only. - -## reviewer - -Terra rollout/rollback review; Luna exact deployment/commit and screenshot-scope review. - -## integrator - -Level 0 Sol/Fable master is the only execution coordinator. Luis retains deployment/copy gates. - -## first action - -Confirm WS-012 through WS-015 are complete and independently reviewed. If not, keep this stream blocked. - -## escalation - -Stop on failed pre-canary test, secret, migration, activation, paid-service/model decision, Vercel/DNS action, unapproved copy, or irreversible action without owner approval. +Stop for missing metrics, absent pause proof, unapproved deploy/canary/ +threshold/source/data change, provider activation, paid service, or +irreversible action. diff --git a/.claude/orchestration/streams/WS-017.md b/.claude/orchestration/streams/WS-017.md new file mode 100644 index 0000000..597af11 --- /dev/null +++ b/.claude/orchestration/streams/WS-017.md @@ -0,0 +1,90 @@ +# WS-017 — Versioned CiteWire Community contract implementation + +## Objective + +Implement the independently approved WS-013 Community contract as a bounded, +versioned, backward-compatible runtime change. This stream is required, but it +is not authorized to begin until its predecessors are complete and explicit +owner authorization is recorded. It does not +include Studio, a plugin, a hosted control plane, accounts, persistence, +scheduling, credential storage, publishing, or any Karaya behavior. + +## Priority, status, and dependencies + +- Priority: P1. +- Status: required, parked, and not authorized. +- Dependencies: WS-004 and WS-013. WS-002 is transitive through WS-013. + +The dirty citewire-public-platform worktree is a preserved prototype, not a +baseline, not a partial implementation, and not a merge source. + +## Exclusive ownership + +- src/community/ +- src/config.js +- src/core/rpc.js +- src/index.js +- Contract-specific portions of test/community.test.mjs, test/rpc.test.mjs, + test/http.test.mjs, and test/index.test.mjs +- docs/source-registry-and-rights.md + +This stream does not own package metadata, server metadata, release metadata, +apps/studio, a plugin manifest, Cloud paths, Karaya paths, or external +registry/deployment state. + +## Binary definition of done + +- Approved WS-013 schemas are implemented without changing news.* semantics. +- Resource and capability discovery are additive and versioned. +- Registry input is schema-validated and disabled by default. +- Every Community source is inert/disabled by default. +- Unknown or ambiguous rights resolve to hold. +- No classifier can publish or externally activate anything. +- No credential input, storage, or logging is introduced. +- Community remains stateless, read-only, provider-neutral, attribution-first, + and non-publishing. +- No Karaya policy, credential, source configuration, editorial state, or + Cloud tenancy crosses into Community. +- Node 18 and Node 22 verification, committed protocol tests, package-content + review, documentation, and Cloud compatibility agree. +- Separate approval exists before merge. This stream does not tag, publish, + submit a registry entry, or deploy. +- The parked WIP has a written disposition record rather than a merge + shortcut. + +## Checks + +- Run committed Community suite plus exact news.* compatibility, + stdio/direct-HTTP resource/capability, invalid-registry, and Node 18/22 + checks. +- Run npm pack --dry-run --json to prove Studio/plugin exclusion. +- Independently review Community/Karaya/Cloud boundary and bounded Cloud + consumer compatibility. + +## Artifact and rollback + +The artifact is focused Community implementation with contract verification +record. Revert only focused implementation and preserve prior news.* behavior. +A later release needs a separate owner-approved release iteration. + +## Mappings + +- GitHub: recorded historical CiteWire issue #4; no implementation PR exists. +- Linear: recorded historical KAR-68, Todo. + +## Execution label, reviewer, and first action + +- Execution label: Opus Community implementation owner, with Sonnet bounded + test work under Fable L1 coordination. These are planning labels, not + runtime-availability claims. +- Reviewer: independent Opus MCP/rights reviewer. +- First action: after WS-004 and WS-013, inventory the parked prototype + read-only. Start no code change or clean implementation worktree until + explicit owner approval is recorded. Do not copy, merge, or stage the + parked diff. + +## Escalation + +Stop for unversioned breaking change, invalid or ambiguous rights policy, +Karaya/Cloud leakage, Studio/plugin proposal, failed compatibility check, or +release/registry/deployment request. diff --git a/.claude/orchestration/verification-evidence.md b/.claude/orchestration/verification-evidence.md index 588c657..c835ab1 100644 --- a/.claude/orchestration/verification-evidence.md +++ b/.claude/orchestration/verification-evidence.md @@ -1,79 +1,122 @@ -# Verification evidence — Citewire open-source program - -Evidence date: 2026-08-15, America/New_York. Verified synchronization record for the Claude handoff. The Pickup phase was read-only; the reviewed synchronization phase created tracker mappings, updated draft PR descriptions, pushed the four-file Cloud documentation correction, and prepared this orchestration branch. It is not authority to merge, deploy, publish, activate providers, apply migrations, submit registries, or choose paid services. - -## claim status - -Verified means directly observed in local state, committed tests, GitHub/Linear reads, or dated live smoke. Historical means carried from an earlier verified run. Inferred means bounded interpretation. Unknown means not established. Contradicted means two sources disagree and the resolution is recorded below. - -## exact local heads - -| worktree | branch | head/status | -| --- | --- | --- | -| citewire | agent/citewire-orchestration-handoff | package commit 80017d60c4396d704e0be55af4cd9cb1dc548b94, pushed in draft PR #5; exact 22-file orchestration-only package based on ff09b68ed811531eb0ca630b65daeaf06cc3304c, followed only by verified synchronization metadata | -| citewire release ref | agent/citewire-product-launch | 10aee95ac95bb437b4607723cd20fa5c8f9d1879, clean release candidate | -| citewire-cloud | agent/cloud-alpha-http | 69068275ca0e332e36304533aa0f6b5d2e291405, clean docs-aligned head; runtime baseline ad7e58f | -| karayagroup-brand | agent/citewire-product-bridge | 60130c88a3c89098736839bbd5e82c4af6ff9958, all 49 screenshots preserved: 41 untracked and 8 tracked | -| karayagroup-citewire-site-link | agent/citewire-site-link | 3a90e43d8797af9e7c0bc02d4c1ae6f51ebd19a6, clean | -| openlyuseful.org | agent/citewire-site-link | 28af5c7a5fdd0425ced2fe45f5c50e05946758de, clean | -| karayagroup-live | gmorrobel15/kar-35-wire-industry-news-pages-feeds-and-detail-routes-to-live | 1c63a3897317273d97c7bb4e71b0d283c5ff1bd6 | - -## PRs and checks - -- Citewire PR #5, head 80017d6 into agent/citewire-landing-site, draft/mergeable: exact 22-file orchestration-only diff; CI was started and is recorded only as successful after the final verification pass. -- Citewire PR #1, head 10aee95a into main, draft/mergeable: Node 18/22 successful in 31750915019 and 31750916990. -- Citewire PR #2, head ff09b68 into agent/citewire-product-launch, draft/mergeable: Node 18/22 successful in 31849200115 and 31849291099; exact 20-file landing diff. -- Cloud PR #1, head 6906827 into main, draft/mergeable: Node 18/22 successful in 31893670759 and 31893673430; earlier runtime checks 31752801534 and 31752804098 successful; no deployment. -- Openly Useful PR #8, head 28af5c7 into current main cf137f9, draft/mergeable: validate runs 31849408964 and 31849412743 plus green Vercel preview. -- Karaya PR #17, head 3a90e43 into production main 9c150632, draft/mergeable: build-and-check 31849281233 plus green Vercel preview. It remains held because citewire.org is not live over HTTPS. -- Historical Karaya sequence: PR #16 into feature branch, PR #15 to main, PR #14 to main at 9c150632; main CI 31754108234 passed 408/408, 16-page build, registry/audit/compliance. This does not authorize PR #17. - -## local verification - -- Community release/landing branch: fresh isolated install, 70/70 committed tests, 5/5 release checks, 27-file npm dry run at 23,870 packed bytes, package excludes the landing and orchestration artifacts, and diff/secret checks. The first sandboxed suite run could not bind 127.0.0.1; the unchanged suite passed 70/70 with localhost binding permitted. -- Cloud runtime/docs: isolated install, 15/15 tests, syntax/check, direct HTTP smoke, concurrent account-isolation and input-allowlist regression, zero npm vulnerabilities, diff/secret checks. Commit 6906827 changes exactly four prose files. -- Karaya link: 409/409, 16-page build, registry/audit/compliance/diff/secret checks. -- Openly Useful: committed validator and diff checks. -- All tests reuse committed suites. No ad hoc test artifact was created. - -## live evidence on 2026-08-15 - -- citewire.org HTTP returned 200 from openresty with X-Powered-By PHP/8.0.25 and X-Service pixie-default. HTTPS TLS handshake failed. A records were 207.207.210.107 and 207.207.210.229; no MX answer; SOA was under Porkbun/Cloudflare. The committed landing is not live. Openly-Useful/citewire was not visible in the authorized read check. -- Karaya /, /industry-news, /industry-news/about, and /api/v1/news/topics returned 200. -- Topics count was nine: ai-compute, data-centers, power-cooling, gpu-systems, cloud-colocation, capital-financing-ma, supply-chain, policy-governance, benchmarks-research. -- Karaya /mcp initialize succeeded with protocol 2025-06-18, server karaya-news-mcp 1.0.0, and read-only instructions. -- The observed 50-item JSON feed contained 16 summaries over the provisional 480-character cap and one appeared first on POWER Magazine trailer. Current code applies the cap, so this is classified as stored-corpus drift, not proof of gate bypass. Migration/source/cron/queue/revision state remains unknown pending WS-012. - -## GitHub issues - -- MeekPhills/citewire#3, canonical identity/history/release, maps to WS-002 through WS-008 and KAR-67: https://github.com/MeekPhills/citewire/issues/3. -- MeekPhills/citewire#4, versioned public MCP contract/resources, maps to WS-013 and KAR-68: https://github.com/MeekPhills/citewire/issues/4. -- MeekPhills/karayagroup#18, production truth/corpus integrity, maps to WS-012 and KAR-69: https://github.com/MeekPhills/karayagroup/issues/18. -- MeekPhills/karayagroup#19, automated editorial pipeline/exceptions console, maps to WS-014 through WS-016 and KAR-70: https://github.com/MeekPhills/karayagroup/issues/19. - -## Linear - -KAR-66 parent is In Progress. KAR-67, KAR-68, KAR-69, and KAR-70 are Todo. KAR-53 remains the related console/source-health/dedupe/dead-letter/kill-switch anchor. KAR-24 is Todo and its merged PR #16 does not complete the Astro major upgrade. KAR-66 has the PR #5/issue mappings and a dated verification comment; KAR-48 has a provenance-only comment and remains Done. The complete Launch Log document `7f791900-c44b-489f-b0af-e1464784e367` was fetched in full, appended with the 2026-08-15 verified synchronization entry, saved, and re-read with its marker present. - -## contradiction resolutions - -1. Cloud code/docs contradiction resolved by docs-only 6906827: all four docs now state the 10aee95a temporary pin and future npm gate. -2. Karaya code/feed contradiction is bounded as stored-corpus drift until WS-012 reads migration, source, cron, queue, and revision state. No silent rewrite. -3. Working Karaya GitHub link versus proposed citewire.org link remains unresolved: PR #17 stays draft until HTTPS landing and canonical identity verify. -4. Karaya vendored Community provider adapters are pass-through in its read-only MCP; this is not Cloud and not a broad powered-by claim. -5. Registry YAML counts are not runtime source truth; missing runtime state is Unknown. -6. GLO/fantasyhq material was rejected as unrelated to Citewire/Karaya. No GLO issue, fantasyhq migration, branch, or deployment was used or changed. - -## explicit actions not taken - -- No Openly-Useful/citewire creation, transfer, archive, fork, or rename. -- No Citewire Vercel project, DNS/domain attachment, citewire.org repair, landing deployment, merge, tag, GitHub Release, npm publish, MCP Registry/catalog submission. -- No Cloud deployment, participant invite, credential issuance/rotation, provider/model/cost choice, paid service, billing, OAuth, or public-availability claim. -- No Karaya migration, database write, source toggle, provider activation, production threshold change, automated publishing, canary, or corpus rewrite. -- No visible Karaya copy change or merge without Luis read-aloud approval. -- No owner screenshot edit, stage, delete, clean, or overwrite. All 49 screenshot files remain preserved: 41 untracked and 8 tracked. -- No unrelated GLO/fantasyhq mutation. - -## handoff gate - -The initial two-hour gate is WS-002 only: obtain the canonical identity and authority decision before repository migration, release metadata, landing deployment, or immutable publication. WS-012 is an independent later read-only branch and is not launched in that wave. After corpus integrity, the Karaya order is WS-014 shadow policy/replay, WS-015 exceptions console/assessments, then WS-016 canary only after explicit owner approval. WS-009 records the verified exact archive pin; WS-010 is the blocked post-publication npm-range migration; WS-011 is a separate owner-gated archive-pinned private-alpha path. Stop on failed tests, unexpected diff, secret, paid-service decision, provider activation, migration, deployment, or irreversible action. +# Verification evidence — CiteWire orchestration graph + +Evidence date: 2026-08-15, America/New_York. This file separates current local +facts from recorded historical remote evidence. Historical GitHub, Linear, CI, +deployment, DNS, and provider claims require a fresh read-only revalidation +before an action is taken. + +## Current local facts + +- CiteWire orchestration head is + 7e816c5b2900cb04309f751e5d93bab79752128a. +- 80017d60c4396d704e0be55af4cd9cb1dc548b94 is the historical initial + handoff-package commit, not the current head. +- The settled identity facts are visible CiteWire, technical citewire, and + Openly Useful as project parent. +- Openly-Useful/citewire is authenticated absent and unapproved. Its absence + is not authority to create, transfer, mirror, archive, rename, or publish. +- citewire/.project-status/manifest.json is a controlled untracked proposal. + The CiteWire repository is not Git-clean until it is separately + dispositioned. Preserve it unstaged and exclude it from this handoff commit. +- citewire-public-platform is a dirty parked prototype at 7e816c5. + karayagroup-editorial-shadow is a dirty preserved proposal at 9c150632. + Neither is completion evidence or an implementation baseline. +- The required + /Users/luismorrobel/karayagroup/karayagroup-production-audit worktree is + absent. +- The protected Karaya owner-screenshot inventory remains 49 files: 8 tracked + and 41 untracked. + +## Recorded historical remote and production state + +The following is retained as historical, pending fresh remote revalidation: + +| Scope | Recorded item | +| --- | --- | +| Orchestration | CiteWire PR #5; KAR-66 In Progress | +| Community identity/release/links | CiteWire issue #3; KAR-67 Todo; CiteWire PR #1 candidate and PR #2 landing | +| Downstream links | Openly Useful PR #8 and Karaya PR #17, both recorded as drafts | +| Cloud | CiteWire Cloud PR #1; archive pin 10aee95; KAR-66 In Progress | +| Public MCP contract | CiteWire issue #4; KAR-68 Todo | +| Karaya truth | Karaya issue #18; KAR-69 Todo | +| Karaya automation | Karaya issue #19; KAR-70 Todo; KAR-53 related context | + +KAR-71 and KAR-77 are context only. They are not stream mappings, +dependencies, completion evidence, or work authorization. + +KAR-48 and KAR-36 are recorded Done provenance/history. KAR-24 is recorded +Todo; linked PR #16 does not establish completion of the Astro-major-upgrade +dependency. These are context-only. No verified CiteWire Cowork/plugin +manifest or GitHub/Linear work item maps to a required stream; Studio/plugin +work remains speculative. + +The prior recorded observations remain: + +- citewire.org returned a parked HTTP response and failed HTTPS TLS, so it is + not a verified live CiteWire destination. +- Karaya public smoke had working Industry News/About/topic/MCP endpoints, but + production migration/source/circuit-breaker/cron/queue truth remains + incomplete. +- The recorded 50-item Karaya feed had 16 summaries over the provisional cap + and one POWER Magazine trailer. This is stored-corpus drift pending WS-012, + not proof of a current ingest bypass. + +## Parked worktree findings + +### Public-platform prototype + +It made runtime changes before WS-013 approval. Its Studio path lacks a real +authentication boundary, relies on caller-supplied accountId, and has a pause +state that does not gate all writes. Its record cleanup is shallow, +classifierMode active creates a publish seam, custom registry input lacks +schema validation, and package contents exclude Studio. Its resource contract +is not yet approved or independently verified across Node 18 and Node 22. + +Disposition: preserve it, do not merge it, and give it no WS-013 or WS-017 +completion credit. Studio, plugins, and hosted-control-plane work remain +speculative and have no required stream. + +### Editorial-shadow proposal + +It contains an executable migration before WS-012 proves schema sufficiency, +has no bounded time/window identity for scheduled reassessment, lacks +deterministic full-corpus pagination, and does not converge safely on +concurrent/partial writes. Its in-memory tests do not prove real migration, +RLS, transaction, or race behavior. Its vendor lock claims version 0.1.0 for +upstream 6c89b6e, whose package metadata is 0.2.0. + +The focused verification stopped after 21 passing tests when one test file +could not load `@supabase/supabase-js`. Dependencies were absent from the +isolated worktree, and the shell was Node v24.18.0 instead of the required +Node 22. No install, rerun, build, audit, commit, migration, or deployment +followed. This is a stopped verification, not a passing suite. + +Disposition: preserve it without completion credit. WS-012 reconciles vendor +provenance; WS-014 starts only from the clean production-audit worktree after +WS-012. + +## Graph facts to validate mechanically + +- There are exactly 17 briefs, WS-001 through WS-017. +- WS-008 directly depends on WS-003, WS-004, and WS-005. +- WS-011 directly depends on WS-002 and WS-009. +- Karaya direct sequence is WS-012 to WS-014 to WS-015 to WS-016. +- WS-017 directly depends on WS-004 and WS-013. +- No active exclusive-path lease overlaps another active mutable lease. +- WS-009 is evidence-only, so its completed documentation does not overlap + WS-011’s future Cloud documentation lease. + +## Actions explicitly not authorized + +- Repository create/transfer/mirror/archive/rename; package, registry, tag, or + release action. +- DNS, hosting, certificate, deployment, merge, preview disclosure, or + provider activation. +- Cloud participant, credential, account, paid-service, billing, OAuth, + retention, or operator decision. +- Karaya migration, database/configuration write, source toggle, corpus + rewrite, threshold change, canary, automatic publication, or visible-copy + change. +- Studio/plugin delivery or modification of either parked prototype. +- Any action touching the controlled .project-status proposal or protected + owner screenshots. diff --git a/.claude/orchestration/work-graph.yaml b/.claude/orchestration/work-graph.yaml index e0febb7..efb0fe9 100644 --- a/.claude/orchestration/work-graph.yaml +++ b/.claude/orchestration/work-graph.yaml @@ -1,519 +1,367 @@ -schema_version: 1 +schema_version: 2 artifact: citewire-orchestration-work-graph as_of: "2026-08-15" claim_status: Verified + +execution_labels: + meaning: "Fable, Opus, and Sonnet are planning and review labels only. They do not assert model, plugin, connector, or runtime availability." + integration: "Fable L0 retains cross-stream truth, dependency release, and stop/go integration." + high_risk: "Opus is assigned to identity, migration, protocol, supply-chain, data-rights, security, and production-safety work." + bounded: "Sonnet is assigned only bounded implementation, documentation, exact-reference, and deterministic verification work." + canonical_orchestration_repository: path: "/Users/luismorrobel/karayagroup/citewire" repository: "MeekPhills/citewire" branch: "agent/citewire-orchestration-handoff" - package_commit: "80017d60c4396d704e0be55af4cd9cb1dc548b94" + current_verified_head: "7e816c5b2900cb04309f751e5d93bab79752128a" + historical_initial_package_commit: "80017d60c4396d704e0be55af4cd9cb1dc548b94" base_commit: "ff09b68ed811531eb0ca630b65daeaf06cc3304c" - state: "focused orchestration commit pushed in draft PR #5; no product or external-system mutation" + state: "The initial handoff package was committed at 80017d6. The current local orchestration head is 7e816c5. No product or external-system mutation is represented by this graph." source_of_truth_order: - "latest explicit owner direction" - "current implementation and reproducible behavior" - "fresh test, CI, deployment, and direct HTTP evidence" - "reviewed git history and pull-request diffs" - - "current GitHub and Linear state" + - "fresh GitHub and Linear state" - "repository documentation" - "historical handoffs and chat claims" +identity: + visible_brand: "CiteWire" + technical_token: "citewire" + project_parent: "Openly Useful" + target_repository: "Openly-Useful/citewire" + target_repository_state: "authenticated_absent_and_unapproved" + boundary: "The settled brand/project-parent facts do not authorize target creation, repository transfer, mirror, archive, rename, package publication, registry submission, DNS, hosting, or Cloud operator identity." + +controlled_dirty_exceptions: + - path: "/Users/luismorrobel/karayagroup/citewire/.project-status/manifest.json" + state: "controlled untracked proposal" + rule: "Preserve unstaged and exclude from every orchestration commit. The repository is not Git-clean until this proposal is separately dispositioned." + - path: "/Users/luismorrobel/karayagroup/citewire-public-platform" + state: "dirty prototype parked" + rule: "Do not merge, stage, clean, cherry-pick, or credit this diff to WS-013 or WS-017. It is comparison-only evidence." + - path: "/Users/luismorrobel/karayagroup/karayagroup-editorial-shadow" + state: "dirty proposal preserved" + rule: "Do not commit its migration or credit it to WS-014 or WS-015. It is comparison-only evidence." + - path: "/Users/luismorrobel/karayagroup/karayagroup-brand/site/handoff/redesign/" + state: "protected owner screenshots" + rule: "Never edit, stage, clean, move, delete, or use as a baseline. The recorded inventory is 49 files, 8 tracked and 41 untracked." + - path: "/Users/luismorrobel/karayagroup/karayagroup-production-audit" + state: "absent" + rule: "A fresh clean isolated worktree from verified origin/main must be created and recorded before WS-012 begins. Never substitute karayagroup-live, karayagroup-brand, or karayagroup-editorial-shadow." + repositories: - - name: "Citewire Community" + - name: "CiteWire Community and landing" repository: "MeekPhills/citewire" path: "/Users/luismorrobel/karayagroup/citewire" current_branch: "agent/citewire-orchestration-handoff" - verified_package_commit: "80017d60c4396d704e0be55af4cd9cb1dc548b94" - main_head: "14eb968fd2da80b7a1adc3078cc1ba514b8bcfa5" - - name: "Citewire Cloud" + current_head: "7e816c5b2900cb04309f751e5d93bab79752128a" + - name: "CiteWire Community parked prototype" + repository: "MeekPhills/citewire" + path: "/Users/luismorrobel/karayagroup/citewire-public-platform" + current_branch: "agent/public-platform-foundation" + current_head: "7e816c5b2900cb04309f751e5d93bab79752128a" + state: "dirty and parked" + - name: "CiteWire Cloud" repository: "MeekPhills/citewire-cloud" path: "/Users/luismorrobel/karayagroup/citewire-cloud" current_branch: "agent/cloud-alpha-http" current_head: "69068275ca0e332e36304533aa0f6b5d2e291405" - main_head: "7157df992b2877f0b1ca1f552b80f52d246e5730" - name: "Openly Useful website" repository: "Openly-Useful/openlyuseful.org" path: "/Users/luismorrobel/karayagroup/openlyuseful.org" current_branch: "agent/citewire-site-link" current_head: "28af5c7a5fdd0425ced2fe45f5c50e05946758de" - main_head: "cf137f9b77d68d16c41cd90f1af8d2df3b9972f4" - - name: "Karaya Citewire-link worktree" + - name: "Karaya CiteWire-link worktree" repository: "MeekPhills/karayagroup" path: "/Users/luismorrobel/karayagroup/karayagroup-citewire-site-link" current_branch: "agent/citewire-site-link" current_head: "3a90e43d8797af9e7c0bc02d4c1ae6f51ebd19a6" - main_head: "9c1506320771faf177f3675ef5ea1c1eff36fe81" - - name: "Historical Karaya live worktree, never use for new production work" - repository: "MeekPhills/karayagroup" - path: "/Users/luismorrobel/karayagroup/karayagroup-live" - current_branch: "gmorrobel15/kar-35-wire-industry-news-pages-feeds-and-detail-routes-to-live" - current_head: "1c63a3897317273d97c7bb4e71b0d283c5ff1bd6" - main_head: "9c1506320771faf177f3675ef5ea1c1eff36fe81" - - name: "Required fresh Karaya production-audit worktree" + - name: "Required Karaya production-audit worktree" repository: "MeekPhills/karayagroup" path: "/Users/luismorrobel/karayagroup/karayagroup-production-audit" required_base: "fresh verified origin/main" - state: "must be created as a clean isolated worktree and recorded by Level 0 before WS-012 or any Karaya implementation stream begins" - - name: "Karaya owner-screenshot worktree" + state: "absent; WS-012 hard precondition" + - name: "Karaya editorial-shadow proposal" repository: "MeekPhills/karayagroup" - path: "/Users/luismorrobel/karayagroup/karayagroup-brand" - current_branch: "agent/citewire-product-bridge" - current_head: "60130c88a3c89098736839bbd5e82c4af6ff9958" - main_head: "9c1506320771faf177f3675ef5ea1c1eff36fe81" - protected_untracked_path: "/Users/luismorrobel/karayagroup/karayagroup-brand/site/handoff/redesign/" - protected_untracked_count: 41 + path: "/Users/luismorrobel/karayagroup/karayagroup-editorial-shadow" + current_branch: "agent/editorial-automation-shadow" + current_head: "9c1506320771faf177f3675ef5ea1c1eff36fe81" + state: "dirty and preserved; no completion credit" -current_pull_requests: - - repository: "MeekPhills/citewire" - number: 5 - title: "Add verified Citewire orchestration handoff" - url: "https://github.com/MeekPhills/citewire/pull/5" - draft: true - mergeable: "MERGEABLE" - base: "agent/citewire-landing-site" - head_branch: "agent/citewire-orchestration-handoff" - head_at_initial_pr_creation: "80017d60c4396d704e0be55af4cd9cb1dc548b94" - - repository: "MeekPhills/citewire" - number: 1 - title: "Prepare citewire 0.2.0 Community release candidate" - url: "https://github.com/MeekPhills/citewire/pull/1" - draft: true - mergeable: "MERGEABLE" - base: "main" - head_branch: "agent/citewire-product-launch" - head: "10aee95ac95bb437b4607723cd20fa5c8f9d1879" - - repository: "MeekPhills/citewire" - number: 2 - title: "Add the citewire.org landing site" - url: "https://github.com/MeekPhills/citewire/pull/2" - draft: true - mergeable: "MERGEABLE" - base: "agent/citewire-product-launch" - head_branch: "agent/citewire-landing-site" - head: "ff09b68ed811531eb0ca630b65daeaf06cc3304c" - - repository: "MeekPhills/citewire-cloud" - number: 1 - title: "Add authenticated private-alpha MCP HTTP entry point" - url: "https://github.com/MeekPhills/citewire-cloud/pull/1" - draft: true - mergeable: "MERGEABLE" - base: "main" - head_branch: "agent/cloud-alpha-http" - head: "69068275ca0e332e36304533aa0f6b5d2e291405" - - repository: "Openly-Useful/openlyuseful.org" - number: 8 - title: "Link the Citewire project website" - url: "https://github.com/Openly-Useful/openlyuseful.org/pull/8" - draft: true - mergeable: "MERGEABLE" - base: "main" - head_branch: "agent/citewire-site-link" - head: "28af5c7a5fdd0425ced2fe45f5c50e05946758de" - - repository: "MeekPhills/karayagroup" - number: 17 - title: "Link Industry News to citewire.org" - url: "https://github.com/MeekPhills/karayagroup/pull/17" - draft: true - mergeable: "MERGEABLE" - base: "main" - head_branch: "agent/citewire-site-link" - head: "3a90e43d8797af9e7c0bc02d4c1ae6f51ebd19a6" +recorded_historical_mappings: + status: "Recorded historical state pending remote revalidation before any mutation, merge, or release decision." + github: + orchestration: "MeekPhills/citewire PR #5, draft" + community_candidate: "MeekPhills/citewire PR #1, draft" + community_landing: "MeekPhills/citewire PR #2, draft" + cloud: "MeekPhills/citewire-cloud PR #1, draft" + openly_useful_link: "Openly-Useful/openlyuseful.org PR #8, draft" + karaya_link: "MeekPhills/karayagroup PR #17, draft" + community_identity_issue: "MeekPhills/citewire issue #3" + community_contract_issue: "MeekPhills/citewire issue #4" + karaya_truth_issue: "MeekPhills/karayagroup issue #18" + karaya_automation_issue: "MeekPhills/karayagroup issue #19" + linear: + parent: "KAR-66 In Progress" + identity_release: "KAR-67 Todo" + community_contract: "KAR-68 Todo" + karaya_truth: "KAR-69 Todo" + karaya_automation: "KAR-70 Todo" + related_console_anchor: "KAR-53 context only for WS-015" + completed_provenance: ["KAR-48 Done", "KAR-36 Done"] + unresolved_historical_dependency: "KAR-24 Todo; linked PR #16 does not establish completion of the Astro-major-upgrade dependency." + context_only: + - "KAR-71" + - "KAR-77" + cowork_plugin: + state: "No verified CiteWire Cowork/plugin manifest or GitHub/Linear work item maps to a required stream." + disposition: "Studio/plugin work is speculative and unowned by this graph." critical_paths: - identity_and_immutable_release: ["WS-001", "WS-002", "WS-003", "WS-004", "WS-008", "WS-010"] - secure_website_and_downstream_links: ["WS-001", "WS-002", "WS-004", "WS-005", "WS-006"] - karaya_corpus_and_automation: ["WS-001", "WS-012", "WS-014", "WS-015", "WS-016"] - cloud_private_alpha: ["WS-001", "WS-009", "WS-011"] + identity_release_and_cloud_npm: + - "WS-001" + - "WS-002" + - "WS-003 and WS-004" + - "WS-005" + - "WS-008" + - "WS-010" + secure_website_and_links: + - "WS-001" + - "WS-002" + - "WS-004" + - "WS-005" + - "WS-006 and WS-007" + public_community_contract: + - "WS-001" + - "WS-002" + - "WS-013 and WS-004" + - "WS-017" + cloud_private_alpha: + - "WS-001" + - "WS-009 and WS-002" + - "WS-011" + karaya_production_safety: + - "WS-001" + - "fresh production-audit worktree" + - "WS-012" + - "WS-014" + - "WS-015" + - "WS-016" -dependency_unlocks: - WS-002: ["WS-003", "WS-004", "WS-013"] - WS-003: ["WS-008"] - WS-004: ["WS-005", "WS-008"] - WS-005: ["WS-006", "WS-007"] - WS-008: ["WS-010"] - WS-009: ["WS-011"] - WS-012: ["WS-014", "WS-015", "WS-016"] - WS-014: ["WS-015"] - WS-015: ["WS-016"] +initial_parallel_execution_wave: + phase_0: "WS-001 only: synchronize the documentation-only control package and validate its structure." + after_ws_001: + - "WS-002 identity packet, documentation-only." + - "WS-012 preflight only after a fresh clean production-audit worktree is created and recorded; it may collect public/local read-only evidence only." + excluded: + - "WS-003 through WS-008" + - "WS-010 through WS-011" + - "WS-013 through WS-017" + - "Studio, plugins, hosted control-plane implementation, and either parked prototype" + mutation_boundary: "No repository creation, transfer, archive, DNS, deployment, merge, tag, publication, registry action, migration, source toggle, corpus rewrite, or visible Karaya copy change." -independent_parallel_branches: - - ["WS-009", "WS-012"] - - ["WS-013", "WS-012"] - - ["WS-006", "WS-007"] - - ["WS-010", "WS-011"] +two_hour_schedule: + t_plus_0_to_15: "Fable L0 confirms 7e816c5, records the controlled exceptions, and Sonnet independently checks paths and recorded refs." + t_plus_15_to_40: "Fable prepares WS-001 graph synchronization while Opus prepares the no-mutation WS-002 identity packet and Sonnet checks recorded mappings." + t_plus_40_to_60: "Independent Opus review of dependencies, exclusive leases, historical claims, and hard stops. Only focused documentation may be integrated after review." + t_plus_60_to_75: "Conditional future action: create and record the fresh production-audit worktree from verified origin/main, or record that WS-012 remains blocked." + t_plus_75_to_120: "Conditional future action: Opus begins WS-012 public/local read-only evidence and vendor-provenance reconciliation while WS-002 packet review completes." + stop_conditions: + - "Any fresh remote fact contradicts the recorded historical snapshot." + - "Any action requires an owner decision or external mutation." + - "Any test failure, secret, protected asset, or owner overlap." -shared_mutable_state: - - resource: "Citewire canonical GitHub, npm, MCP Registry, and website identity" - serialized_by: "WS-002" - affected_streams: ["WS-003", "WS-004", "WS-005", "WS-006", "WS-007", "WS-008", "WS-010"] - - resource: "Karaya production database and source/circuit-breaker configuration" - serialized_by: "WS-014" - affected_streams: ["WS-014", "WS-015", "WS-016"] - - resource: "Karaya public copy and visual labels" - serialized_by: "WS-015" - affected_streams: ["WS-007", "WS-015", "WS-016"] - owner_gate: "Luis read-aloud approval before merge of visible copy" - -serialized_changes: - - "Canonical identity and repository/history decisions precede any merge, transfer, archive, or public release action." - - "A verified HTTPS destination precedes either downstream citewire.org link merge." - - "Community npm publication and registry submission precede Cloud conversion from the immutable archive pin to an npm range." - - "Read-only Karaya production truth precedes any policy, corpus, source, database, or automated-publication change." - - "Shadow evaluation and measured calibration precede a visible Adjacent signal label, exceptions-only console, canary, or production rollout." - - "WS-012 owns read-only production evidence output only. WS-014 owns policy/state-machine paths, WS-015 owns admin/UI/console paths, and WS-016 owns rollout/configuration/runbook paths. Any shared path requires predecessor completion and a recorded Level 0 ownership transfer before a later write." - -cross_repository_integration_points: - - source: "Citewire Community" - consumer: "Citewire Cloud" - contract: "Community HTTP transport imported through the immutable archive pin at 10aee95ac95bb437b4607723cd20fa5c8f9d1879; replace only after published npm provenance is verified." - - source: "Citewire website" - consumer: "Openly Useful website" - contract: "Downstream CTA/link must resolve to the canonical, live HTTPS destination before PR #8 merge." - - source: "Citewire website" - consumer: "Karaya Industry News" - contract: "Downstream source attribution/link must resolve to the canonical, live HTTPS destination before PR #17 merge." - - source: "Citewire Community provider adapters" - consumer: "Karaya Industry News" - contract: "Karaya remains a customized consumer; Karaya editorial state, provider credentials, policy, voice, source rights, and redactions do not enter the MIT Community package." - -manual_only_blockers: - - "Owner selects and authenticates the canonical GitHub organization, repository disposition, npm ownership, MCP Registry namespace, and citewire.org DNS/deployment authority." - - "Owner approves any repository create, transfer, archive, DNS change, deployment, merge, tag, npm publication, registry/catalog submission, provider activation, or paid-service decision." - - "Luis reads and approves any visible Karaya label or copy before merge." - - "Owner authorizes any production database migration, corpus rewrite, source toggle, threshold change, automated publishing, canary, or rollback drill." +exclusive_path_lease_rules: + - "A stream may write only its explicit exclusive paths. Omitted paths are read-only." + - "WS-004 owns candidate metadata, not Community runtime or test directories. WS-017 owns the later Community runtime contract paths." + - "WS-009 is evidence-only and has no mutable path lease; WS-011 owns future mutable Cloud readiness docs." + - "WS-012 writes only its production-truth packet; WS-014 owns policy/shadow paths, WS-015 owns admin/UI/control paths, and WS-016 owns rollout/configuration/runbook paths." + - "No stream owns the controlled dirty exception paths. They remain preserved and excluded." work_streams: - id: "WS-001" - parent_cluster: "Program orchestration and durable Claude handoff" - objective: "Create a verified, executable orchestration package without changing product behavior or external systems." + parent_cluster: "Program orchestration and durable handoff" + objective: "Maintain the verified, executable 17-stream control package without product or external-system mutation." priority: "P0" - status: "in_progress" + status: "active_documentation_only" current_verified_state: claim_status: "Verified" - state: "The focused 22-file orchestration package is committed and pushed at 80017d60c4396d704e0be55af4cd9cb1dc548b94 in draft PR #5, stacked on agent/citewire-landing-site. The PR branch may add only verified synchronization metadata; its live head must be read from GitHub rather than embedded self-referentially." - evidence: ["git status/HEAD and GitHub draft PR #5 inspection on 2026-08-15"] - production_readiness_category: "governance, traceability, and handoff" - risk: - level: "high" - statement: "An incomplete or stale graph can cause an irreversible action to be taken in the wrong order." - complexity: "medium" - uncertainty: "low" + state: "The current local orchestration head is 7e816c5. Initial handoff-package commit 80017d6 is historical evidence only. The worktree is not Git-clean because the controlled untracked .project-status manifest remains separately undispositioned." repository: "/Users/luismorrobel/karayagroup/citewire" exclusive_ownership_paths: - "/Users/luismorrobel/karayagroup/citewire/PROJECT_HANDOFF.md" - "/Users/luismorrobel/karayagroup/citewire/CLAUDE.md" - "/Users/luismorrobel/karayagroup/citewire/.claude/orchestration/" + excluded_paths: + - "/Users/luismorrobel/karayagroup/citewire/.project-status/" dependencies: [] dependents: ["WS-002", "WS-009", "WS-012"] - binary_definition_of_done: "All required handoff and orchestration artifacts parse, cross-reference exactly these 16 streams, contain no secrets or private transcripts, have an inspected focused diff, and are committed only after independent review." - acceptance_criteria: - - "Every active stream has stable ownership, dependency, binary DoD, verification, rollback, GitHub/Linear mapping, Claude tier, reviewer, and escalation rule." - - "No artifact claims an external mutation that has not been independently verified." - baseline_checks: - working_directory: "/Users/luismorrobel/karayagroup/citewire" - commands: ["ruby -e 'require \"yaml\"; YAML.load_file(\".claude/orchestration/work-graph.yaml\")'", "git diff --check", "git status --short"] - focused_implementation_checks: - - "Validate all YAML artifacts mechanically." - - "Cross-check every WS identifier, dependency, repository path, current SHA, GitHub URL, and Linear identifier." - integration_checks: - - "Independent Luna identifier/path review." - - "Independent Terra architecture, work-graph, and Claude-hierarchy review." + binary_definition_of_done: "All handoff artifacts parse, name exactly 17 streams, contain the current head and controlled-exception policy, distinguish recorded historical mappings from fresh facts, have no secret/private transcript, and pass independent graph review." + checks: + baseline: ["Parse all YAML.", "Run git diff --check.", "Record git status --short without staging .project-status."] + focused: ["Validate every WS identifier, direct dependency, path lease, artifact, rollback, mapping, and execution label.", "Mechanically reject exclusive-path collisions."] + integration: ["Independent Opus graph review.", "Independent Sonnet exact-reference review."] expected_artifact: "/Users/luismorrobel/karayagroup/citewire/.claude/orchestration/work-graph.yaml" - rollback_boundary: "Documentation-only artifact commit; revert the dedicated orchestration commit without altering product code or external state." - github_mapping: - repository: "MeekPhills/citewire" - branch: "agent/citewire-orchestration-handoff" - pull_request: "https://github.com/MeekPhills/citewire/pull/5" - status: "open draft, mergeable, exact 22-file orchestration-only diff" - linear_mapping: - issue: "KAR-66" - status: "In Progress" - role: "Program parent" - claude_execution_tier: "Fable L0 master orchestrator" - independent_reviewer: "Terra work-graph reviewer" - integration_owner: "Fable L0 master orchestrator" - first_safe_action: "Read the durable artifacts, validate their YAML and references, then inspect the exact diff before any commit." - escalation_condition: "Stop if any artifact introduces a secret, a private transcript, a conflicting source-of-truth claim, or an unverified external-state assertion." + rollback_boundary: "Documentation-only focused revert; never use broad reset/clean and never alter controlled exceptions." + github_mapping: "Recorded historical CiteWire PR #5." + linear_mapping: "Recorded historical KAR-66 In Progress." + execution_label: "Fable L0 integration." + independent_reviewer: "Opus graph reviewer with Sonnet exact-reference check." + first_safe_action: "Establish the 7e816c5 baseline, preserve controlled exceptions, then parse and cross-check the graph." + escalation_condition: "Stop for conflicting evidence, secret/private transcript, owner overlap, or any claim needing fresh remote verification." - id: "WS-002" - parent_cluster: "Canonical Citewire identity, authority, and public release" - objective: "Obtain an explicit, authenticated owner decision for Citewire's canonical GitHub organization/repository, npm identity, MCP Registry identity, citewire.org authority, and legacy-repository disposition." + parent_cluster: "Canonical CiteWire identity and authority" + objective: "Record the settled brand/project-parent facts and separate them from unapproved repository, package, registry, website, and Cloud operations." priority: "P0" - status: "blocked" + status: "active_decision_record_only" current_verified_state: claim_status: "Verified" - state: "Citewire Community remains MeekPhills/citewire; citewire.org serves a parked page over HTTP and its HTTPS TLS handshake fails. No authenticated authority proof, canonical-identity decision, repository transfer, archive, DNS change, or deployment is recorded." - evidence: ["fresh HTTP/TLS observation on 2026-08-15", "GitHub issue #3", "Linear KAR-67"] - production_readiness_category: "identity, ownership, domain, and release authority" - risk: - level: "critical" - statement: "An incorrect canonical identity or unproven authority can make links, immutable packages, registry records, and repository history permanently inconsistent." - complexity: "high" - uncertainty: "high" + state: "Visible CiteWire, technical citewire, and Openly Useful parent are settled. Openly-Useful/citewire is authenticated absent and unapproved for creation or transfer." repository: "/Users/luismorrobel/karayagroup/citewire" exclusive_ownership_paths: - "/Users/luismorrobel/karayagroup/citewire/docs/canonical-identity-decision.md" dependencies: ["WS-001"] - dependents: ["WS-003", "WS-004", "WS-005", "WS-013"] - binary_definition_of_done: "Luis records one explicit canonical identity and repository disposition; authenticated authority is independently verified; the decision names the sole allowed public GitHub, npm, MCP Registry, and website identities; no irreversible action is performed without separate exact approval." - acceptance_criteria: - - "The decision says whether MeekPhills/citewire is retained, transferred, or archived after history preservation." - - "The decision names the canonical organization and public repository before metadata, links, or release records change." - - "Authority evidence is retained without credentials." - baseline_checks: - working_directory: "/Users/luismorrobel/karayagroup/citewire" - commands: ["git remote -v", "git log -1 --format=%H", "npm view citewire versions --json"] - focused_implementation_checks: - - "Read-only proof that the selected GitHub organization, domain/DNS account, npm package ownership, and MCP Registry namespace are reachable by the owner." - - "Independent review of exact public names before editing manifest, documentation, or links." - integration_checks: - - "Verify citewire.org resolves over HTTPS only after a separately approved deployment/DNS action." - - "Verify any selected public identity is consistent across Community, Cloud, Openly Useful, and Karaya." + dependents: ["WS-003", "WS-004", "WS-005", "WS-011", "WS-013"] + binary_definition_of_done: "A decision packet records settled CiteWire/citewire/Openly Useful facts, credential-free authenticated target absence, and the still-required separate approvals for repository route, legacy disposition, npm, MCP Registry, MCP identifier, citewire.org authority, support/security, and separate Cloud operator identity. No external action occurs." + checks: + baseline: ["Read remotes, current ref, and package metadata."] + focused: ["Review credential-free authority evidence and exact public names.", "List every unresolved operation without inferring authorization."] + integration: ["Check Community, Cloud, Openly Useful, and Karaya references for identity consistency."] expected_artifact: "/Users/luismorrobel/karayagroup/citewire/docs/canonical-identity-decision.md" - rollback_boundary: "Decision and evidence only until an owner separately approves the chosen external action; no external change is authorized by this stream." - github_mapping: - repository: "MeekPhills/citewire" - issue: "https://github.com/MeekPhills/citewire/issues/3" - status: "open" - linear_mapping: - issue: "KAR-67" - status: "Todo" - url: "https://linear.app/lgam/issue/KAR-67/citewire-canonical-identity-history-migration-website-and-release" - claude_execution_tier: "Fable L1 identity-and-release orchestrator with Opus authority review" - independent_reviewer: "Opus release and identity reviewer" - integration_owner: "Fable L0 master orchestrator" - first_safe_action: "Request the explicit owner decision and read-only authenticated authority evidence; do not create, transfer, archive, deploy, or change DNS." - escalation_condition: "Stop for an ambiguous identity, unavailable authority, a paid-service decision, any DNS/provider action, or a request to infer repository disposition." + rollback_boundary: "Focused decision-document revert only; no external operation is authorized." + github_mapping: "Recorded historical MeekPhills/citewire issue #3." + linear_mapping: "Recorded historical KAR-67 Todo." + execution_label: "Fable L1 identity coordination with Opus authority review." + independent_reviewer: "Opus identity reviewer with Sonnet exact-name check." + first_safe_action: "Record settled facts and unapproved operations without creating, transferring, archiving, deploying, or changing DNS." + escalation_condition: "Stop for ambiguous authority, target creation/transfer request, package/registry action, DNS/provider action, or paid-service decision." - id: "WS-003" - parent_cluster: "Canonical Citewire identity, authority, and public release" - objective: "Resolve either a retain-in-place route or an owner-approved, history-preserving canonical repository migration, and verify the selected route before public metadata or immutable release." + parent_cluster: "Canonical CiteWire identity and authority" + objective: "Verify the owner-selected retain, transfer, or mirror route while preserving full history and a rollback path." priority: "P0" status: "blocked" current_verified_state: - claim_status: "Inferred" - state: "The owner requested an Openly Useful public repository ready for open source and forking, while retaining the legacy project as historical. The selected organization, target repository, transfer-versus-mirror mechanism, and archive setting are not decided." - evidence: ["latest owner direction", "GitHub issue #3", "Linear KAR-67"] - production_readiness_category: "repository history, maintainability, and public governance" - risk: - level: "critical" - statement: "A transfer, archive, or rewrite without an approved method can lose discoverability, change package provenance, or break downstream links." - complexity: "high" - uncertainty: "high" + claim_status: "Verified" + state: "Openly-Useful/citewire is absent; no target creation, transfer, mirror, archive, or legacy disposition is approved." repository: "/Users/luismorrobel/karayagroup/citewire" exclusive_ownership_paths: - "/Users/luismorrobel/karayagroup/citewire/docs/history-migration-runbook.md" - "/private/tmp/citewire-history-verification-clone" dependencies: ["WS-002"] dependents: ["WS-008"] - binary_definition_of_done: "Phase A records the owner-selected retain-in-place or move route. For retain-in-place, canonical refs and legacy disposition are explicitly recorded and reverified. For a move, Phase B executes only under a separate exact owner approval, preserves full verified history, validates source/destination refs through an isolated fresh clone, records legacy disposition, and proves rollback before public metadata or release action. A plan alone does not unblock WS-008." - acceptance_criteria: - - "No force-push, history rewrite, repository deletion, or archive occurs without exact owner approval." - - "The chosen method preserves commit reachability and the destination's default branch policy." - - "Existing PRs, npm provenance, registry references, and downstream links are explicitly reconciled." - - "WS-003 completes only after the selected route itself is verified: recorded retain-in-place state or independently checked owner-approved migration execution." - baseline_checks: - working_directory: "/Users/luismorrobel/karayagroup/citewire" - commands: ["git fsck --full", "git log --all --decorate --oneline", "git remote -v"] - focused_implementation_checks: - - "Compare commit counts and named release-candidate commits before and after the approved operation." - - "Clone the selected destination into an isolated temporary directory and verify refs and remotes." - integration_checks: - - "Re-verify PR #1, PR #2, Openly Useful PR #8, Karaya PR #17, npm provenance, and documentation URLs against the chosen identity." + binary_definition_of_done: "The selected route, target, legacy disposition, and exact owner approval are recorded. If a move occurs, full history and named refs are verified in an isolated clone, legacy reachability is preserved, and rollback is proven before WS-008." + checks: + baseline: ["Run git fsck --full.", "Inventory refs and remotes read-only."] + focused: ["Compare commit counts and named refs.", "Verify source/destination through an isolated fresh clone after exact approval."] + integration: ["Reconcile recorded PRs, npm provenance, registry references, and public URLs against the selected route."] expected_artifact: "/Users/luismorrobel/karayagroup/citewire/docs/history-migration-runbook.md" - rollback_boundary: "No active remote/ref mutation until a dry-run plan and separate owner approval exist; preserve the legacy remote and isolated verified clone until the owner accepts the result." - github_mapping: - repository: "MeekPhills/citewire" - issue: "https://github.com/MeekPhills/citewire/issues/3" - status: "open; same composite identity issue as WS-002" - linear_mapping: - issue: "KAR-67" - status: "Todo" - claude_execution_tier: "Opus cross-repository migration owner under Fable L1 identity-and-release orchestration" - independent_reviewer: "Opus git-history reviewer" - integration_owner: "Fable L0 master orchestrator" - first_safe_action: "Produce a read-only source/destination/ref inventory after WS-002; do not alter remotes or repository settings." - escalation_condition: "Stop if the owner has not selected the destination or legacy disposition, or if a command would rewrite history, transfer, archive, or delete a repository." + rollback_boundary: "Preserve legacy remote and verified clone. No history rewrite, deletion, transfer, or archive before separate owner approval." + github_mapping: "Recorded historical MeekPhills/citewire issue #3." + linear_mapping: "Recorded historical KAR-67 Todo." + execution_label: "Opus history-migration owner under Fable L1." + independent_reviewer: "Independent Opus git-history reviewer." + first_safe_action: "Produce read-only source/target/ref inventory after WS-002." + escalation_condition: "Stop for absent exact owner route, history rewrite, target creation, transfer, archive, or deletion." - id: "WS-004" - parent_cluster: "Canonical Citewire identity, authority, and public release" - objective: "Re-verify the existing Community 0.2.0 candidate and reconcile its package, MCP, provider, documentation, security, and release metadata with the selected canonical identity before immutable release." + parent_cluster: "Community 0.2 candidate" + objective: "Re-verify the existing 0.2 candidate and reconcile candidate metadata with WS-002 before release." priority: "P0" - status: "completed_but_reverification_required" + status: "recorded_candidate_reverification_blocked" current_verified_state: - claim_status: "Verified" - state: "Draft PR #1 is mergeable from agent/citewire-product-launch at 10aee95ac95bb437b4607723cd20fa5c8f9d1879. Fresh stacked-branch verification passed 70/70 committed tests, 5/5 release checks, package inspection, and diff/secret checks; fresh GitHub reads show Node 18/22 green on PR #1. Identity-sensitive re-verification remains required after WS-002 and before release action." - evidence: ["fresh local committed-suite verification on 2026-08-15", "GitHub PR #1 and CI metadata on 2026-08-15"] - production_readiness_category: "package correctness, security, protocol compatibility, and release preflight" - risk: - level: "high" - statement: "A stale candidate could publish invalid immutable metadata or move provider conditions into the wrong public identity." - complexity: "medium" - uncertainty: "medium" + claim_status: "Historical" + state: "Recorded candidate is draft PR #1 at 10aee95. Its original committed-suite and Node 18/22 evidence is historical pending remote revalidation. The parked public-platform prototype is excluded." repository: "/Users/luismorrobel/karayagroup/citewire" exclusive_ownership_paths: - "/Users/luismorrobel/karayagroup/citewire/package.json" - "/Users/luismorrobel/karayagroup/citewire/package-lock.json" - "/Users/luismorrobel/karayagroup/citewire/server.json" - - "/Users/luismorrobel/karayagroup/citewire/src/" - - "/Users/luismorrobel/karayagroup/citewire/test/" - "/Users/luismorrobel/karayagroup/citewire/docs/providers.md" - - "/Users/luismorrobel/karayagroup/citewire/docs/releasing.md" - - "/Users/luismorrobel/karayagroup/citewire/.github/workflows/release.yml" dependencies: ["WS-002"] - dependents: ["WS-005", "WS-008"] - binary_definition_of_done: "The exact candidate passes clean isolated install, committed Community tests, release metadata checks, syntax checks, package inspection, secret scan, and Node 18/22 CI; all public identity fields match the owner-approved canonical decision; the PR remains draft unless separately approved." - acceptance_criteria: - - "Community remains zero-dependency, ESM, Node 18+, provider-disabled-by-default, and provider-neutral." - - "No Karaya editorial policy, credentials, source configuration, or redactions enter Community." - - "package.json, server.json, release workflow, SECURITY.md, SUPPORT.md, docs, and changelog agree on public identity and version." - baseline_checks: - working_directory: "/Users/luismorrobel/karayagroup/citewire" - commands: ["npm ci --cache /private/tmp/citewire-npm-cache", "npm test", "npm run release:check", "npm pack --dry-run --json", "git diff --check"] - focused_implementation_checks: - - "Run committed HTTP, stdio, RPC, provider, platform, and release-metadata suites." - - "Validate server.json with the documented MCP publisher preflight without publishing." - - "Search candidate diff and tracked files for secrets before any release action." - integration_checks: - - "Confirm PR #1 remains draft, mergeable, and green on Node 18 and 22." - - "Confirm Cloud's immutable archive pin points to this exact reviewed candidate until WS-010." + dependents: ["WS-005", "WS-008", "WS-017"] + binary_definition_of_done: "The exact 0.2 candidate passes clean isolated install, committed tests, release checks, package inspection, secret scan, and Node 18/22 verification; identity-sensitive metadata agrees with WS-002; PR #1 remains draft unless separately approved." + checks: + baseline: ["npm ci in isolated cache.", "npm test.", "npm run release:check.", "npm pack --dry-run --json.", "git diff --check."] + focused: ["Validate MCP metadata without publication.", "Inspect tracked candidate metadata and diff for secrets."] + integration: ["Reconfirm recorded PR #1 state and CI before action.", "Confirm Cloud retains the exact archive pin until WS-010."] expected_artifact: "/Users/luismorrobel/karayagroup/citewire/docs/community-release-preflight-2026-08-15.md" - rollback_boundary: "Revert only the focused candidate/preflight commit before merge; do not tag, publish, release, or submit a registry record." - github_mapping: - repository: "MeekPhills/citewire" - pull_request: "https://github.com/MeekPhills/citewire/pull/1" - issue: "https://github.com/MeekPhills/citewire/issues/3" - status: "open draft PR; open identity issue" - linear_mapping: - issue: "KAR-67" - status: "Todo" - claude_execution_tier: "Opus release-preflight owner under Fable L1 identity-and-release orchestration" - independent_reviewer: "Opus security and MCP compatibility reviewer" - integration_owner: "Fable L0 master orchestrator" - first_safe_action: "Run the committed preflight suite against the exact PR #1 head after WS-002; do not change release metadata before the identity decision." - escalation_condition: "Stop on any failed test, unexpected package file, public-contract regression, secret, version collision, or release-action prompt." + rollback_boundary: "Focused candidate/preflight revert only. No tag, publish, release, registry, or catalog action." + github_mapping: "Recorded historical CiteWire PR #1 and issue #3." + linear_mapping: "Recorded historical KAR-67 Todo." + execution_label: "Opus release-preflight owner under Fable L1." + independent_reviewer: "Independent Opus security and MCP-compatibility reviewer." + first_safe_action: "After WS-002, re-run the committed preflight against the exact candidate without changing release metadata." + escalation_condition: "Stop for failed test, unexpected package file, contract regression, secret, version collision, or release prompt." - id: "WS-005" - parent_cluster: "Canonical Citewire identity, authority, and public release" - objective: "Make the landing implementation and citewire.org canonical identity converge only after authority and HTTPS deployment are explicitly approved." + parent_cluster: "CiteWire landing and HTTPS gate" + objective: "Deploy the prepared landing only after owner-approved hosting and DNS work, then prove its public HTTPS destination." priority: "P0" status: "blocked" current_verified_state: - claim_status: "Verified" - state: "Draft PR #2 is mergeable from agent/citewire-landing-site at ff09b68ed811531eb0ca630b65daeaf06cc3304c. citewire.org returns a parked page over HTTP; HTTPS fails TLS." - evidence: ["GitHub PR #2 metadata on 2026-08-15", "fresh citewire.org HTTP/TLS observation on 2026-08-15"] - production_readiness_category: "website correctness, HTTPS, DNS, and public discoverability" - risk: - level: "critical" - statement: "Merging or linking a landing page before the canonical secure destination is live could direct users to a parked or insecure page." - complexity: "high" - uncertainty: "high" + claim_status: "Historical" + state: "Recorded PR #2 is draft. Recorded citewire.org HTTP is parked and HTTPS TLS fails; no live CiteWire landing is verified." repository: "/Users/luismorrobel/karayagroup/citewire" exclusive_ownership_paths: - - "/Users/luismorrobel/karayagroup/citewire/site/index.html" - - "/Users/luismorrobel/karayagroup/citewire/site/styles.css" - - "/Users/luismorrobel/karayagroup/citewire/site/styles/" - - "/Users/luismorrobel/karayagroup/citewire/site/brand/" - - "/Users/luismorrobel/karayagroup/citewire/site/vercel.json" + - "/Users/luismorrobel/karayagroup/citewire/site/" - "/Users/luismorrobel/karayagroup/citewire/test/site.test.mjs" dependencies: ["WS-002", "WS-004"] - dependents: ["WS-006", "WS-007"] - binary_definition_of_done: "The owner-approved canonical website is deployed at citewire.org with valid HTTPS, expected page content and canonical URLs, no parked response, and independent HTTP/TLS/browser evidence; PR #2 is merged only with separate owner approval." - acceptance_criteria: - - "The public landing reflects the selected repository/organization and does not claim unavailable service, publication, registry acceptance, or deployment." - - "HTTP redirects safely to HTTPS or serves the owner-approved canonical behavior; HTTPS has a valid certificate and correct host." - - "The committed landing regression suite and deployment smoke checks pass." - baseline_checks: - working_directory: "/Users/luismorrobel/karayagroup/citewire" - commands: ["npm test", "node --test test/site.test.mjs", "git diff --check"] - focused_implementation_checks: - - "Run direct HTTP and TLS checks against citewire.org after an approved deployment/DNS action." - - "Verify title, canonical URL, robots, sitemap, and outbound links from the deployed response." - integration_checks: - - "Confirm PR #2 remains draft, mergeable, and green before any owner-approved merge." - - "Only then re-check the exact targets in Openly Useful PR #8 and Karaya PR #17." + dependents: ["WS-006", "WS-007", "WS-008"] + binary_definition_of_done: "The owner-approved canonical website is live at citewire.org with valid HTTPS, correct page and canonical content, no parked response, and independent HTTP/TLS/browser evidence. PR #2 merges only under separate owner approval." + checks: + baseline: ["Run committed Community and site tests.", "Run git diff --check."] + focused: ["After approved deployment, verify HTTP, TLS, title, canonical URL, robots, sitemap, assets, and outbound links."] + integration: ["Recheck downstream PR targets only after live evidence exists."] expected_artifact: "/Users/luismorrobel/karayagroup/citewire/site/README.md" - rollback_boundary: "Revert the hosting/DNS deployment through the provider only after explicit owner approval; no automatic fallback, DNS mutation, or preview disclosure." - github_mapping: - repository: "MeekPhills/citewire" - pull_request: "https://github.com/MeekPhills/citewire/pull/2" - issue: "https://github.com/MeekPhills/citewire/issues/3" - status: "open draft PR; open identity issue" - linear_mapping: - issue: "KAR-67" - status: "Todo" - claude_execution_tier: "Fable L1 identity-and-release orchestrator with Opus deployment review" - independent_reviewer: "Opus web deployment and identity reviewer" - integration_owner: "Fable L0 master orchestrator" - first_safe_action: "Compare the draft landing's declared canonical URLs with the owner-selected identity and collect read-only DNS/TLS evidence." - escalation_condition: "Stop for an absent authority proof, DNS/provider activation, a certificate failure, a paid-service choice, or any deploy/merge action without exact owner approval." + rollback_boundary: "Provider/DNS reversal only through a separately approved reversible route. No preview disclosure or automatic DNS mutation." + github_mapping: "Recorded historical CiteWire PR #2 and issue #3." + linear_mapping: "Recorded historical KAR-67 Todo." + execution_label: "Fable L1 public-release coordination with Opus deployment review." + independent_reviewer: "Independent Opus deployment/identity reviewer with Sonnet URL/header checks." + first_safe_action: "Compare site canonical fields to WS-002 and gather read-only DNS/TLS evidence." + escalation_condition: "Stop for missing authority, DNS/provider activation, certificate failure, paid-service choice, deployment, or merge without exact approval." - id: "WS-006" - parent_cluster: "Downstream Citewire web integrations" - objective: "Safely land the Openly Useful Citewire link only after the canonical live HTTPS destination is independently verified." + parent_cluster: "Downstream CiteWire web integrations" + objective: "Land the Openly Useful CiteWire link only after the public destination is verified." priority: "P1" status: "blocked" current_verified_state: - claim_status: "Verified" - state: "Openly Useful draft PR #8 is mergeable at 28af5c7a5fdd0425ced2fe45f5c50e05946758de and changes the Citewire link plus site validation; it remains draft because citewire.org is parked and HTTPS fails." - evidence: ["GitHub PR #8 metadata on 2026-08-15", "Linear KAR-67"] - production_readiness_category: "downstream public-link integrity" - risk: - level: "high" - statement: "A merged downstream link can send users to the parked or insecure Citewire domain." - complexity: "low" - uncertainty: "low" + claim_status: "Historical" + state: "Recorded Openly Useful PR #8 is draft and held because citewire.org is not a verified HTTPS destination." repository: "/Users/luismorrobel/karayagroup/openlyuseful.org" exclusive_ownership_paths: - "/Users/luismorrobel/karayagroup/openlyuseful.org/index.html" - "/Users/luismorrobel/karayagroup/openlyuseful.org/scripts/validate_site.py" dependencies: ["WS-005"] dependents: [] - binary_definition_of_done: "PR #8's exact two-file diff passes the committed validation, points at the owner-approved live HTTPS Citewire destination, remains factual, and is merged only with separate owner approval." - acceptance_criteria: - - "The link uses the canonical URL selected in WS-002 and verified in WS-005." - - "No launch, registry, service, or availability claim exceeds verified state." - - "The diff remains limited to index.html and scripts/validate_site.py unless independently re-scoped." - baseline_checks: - working_directory: "/Users/luismorrobel/karayagroup/openlyuseful.org" - commands: ["python3 scripts/validate_site.py", "git diff --check"] - focused_implementation_checks: - - "Resolve and fetch the exact destination over HTTPS." - - "Run the committed Openly Useful site validation without adding temporary test artifacts." - integration_checks: - - "Reconfirm PR #8 draft/mergeable state and Vercel preview status after the target is live." + binary_definition_of_done: "Recorded PR #8's exact two-file diff validates, points only to the verified live HTTPS CiteWire destination, remains factual, and merges only with separate owner approval." + checks: + baseline: ["Run python3 scripts/validate_site.py.", "Run git diff --check."] + focused: ["Resolve and fetch the exact destination over HTTPS."] + integration: ["Reconfirm PR state and preview only after WS-005."] expected_artifact: "/Users/luismorrobel/karayagroup/openlyuseful.org/index.html" - rollback_boundary: "Revert the focused link commit or use the host's prior deployment only with owner approval; do not redirect to an unverified alternative." - github_mapping: - repository: "Openly-Useful/openlyuseful.org" - pull_request: "https://github.com/Openly-Useful/openlyuseful.org/pull/8" - related_issue: "https://github.com/MeekPhills/citewire/issues/3" - status: "open draft PR" - linear_mapping: - issue: "KAR-67" - status: "Todo" - claude_execution_tier: "Sonnet bounded downstream-link owner under Fable L1 identity-and-release orchestration" - independent_reviewer: "Luna link and exact-diff reviewer" - integration_owner: "Fable L0 master orchestrator" - first_safe_action: "Re-run the committed validator and verify the destination with direct HTTPS only after WS-005 succeeds." - escalation_condition: "Stop if citewire.org is not valid HTTPS, the diff expands, CI fails, or a merge/deploy action lacks owner approval." + rollback_boundary: "Focused link revert or host prior deployment only with approval; never redirect to an unverified alternative." + github_mapping: "Recorded historical Openly Useful PR #8 and related CiteWire issue #3." + linear_mapping: "Recorded historical KAR-67 Todo." + execution_label: "Sonnet bounded link owner under Fable L1." + independent_reviewer: "Independent Opus factual-link reviewer." + first_safe_action: "Wait for WS-005, then run the committed validator and direct HTTPS check." + escalation_condition: "Stop for invalid HTTPS, expanded diff, failed CI, merge, or deploy request without approval." - id: "WS-007" - parent_cluster: "Downstream Citewire web integrations" - objective: "Safely land the Karaya Industry News citewire.org bridge only after the canonical live HTTPS destination and approved visible copy are independently verified." + parent_cluster: "Downstream CiteWire web integrations" + objective: "Land the Karaya Industry News CiteWire bridge only after HTTPS evidence and Luis read-aloud approval." priority: "P1" status: "blocked" current_verified_state: - claim_status: "Verified" - state: "Karaya draft PR #17 is mergeable at 3a90e43d8797af9e7c0bc02d4c1ae6f51ebd19a6 and contains the downstream Citewire link, bridge documentation, and a committed compliance regression; it remains draft because citewire.org is parked and HTTPS fails." - evidence: ["GitHub PR #17 metadata on 2026-08-15", "fresh citewire.org HTTP/TLS observation on 2026-08-15"] - production_readiness_category: "public-copy integrity, downstream link integrity, and Karaya compliance" - risk: - level: "high" - statement: "A public Karaya link to a noncanonical or broken site is a visible correctness failure; unapproved visible wording would bypass the read-aloud gate." - complexity: "medium" - uncertainty: "medium" + claim_status: "Historical" + state: "Recorded Karaya PR #17 is draft and held because citewire.org is not a verified HTTPS destination." repository: "/Users/luismorrobel/karayagroup/karayagroup-citewire-site-link" exclusive_ownership_paths: - "/Users/luismorrobel/karayagroup/karayagroup-citewire-site-link/docs/citewire-product-bridge.md" @@ -521,213 +369,113 @@ work_streams: - "/Users/luismorrobel/karayagroup/karayagroup-citewire-site-link/site/test/news-compliance.test.mjs" dependencies: ["WS-005"] dependents: [] - binary_definition_of_done: "PR #17's exact three-file diff passes the committed Karaya tests and build, the target is live HTTPS, Luis approves every changed visible word by read-aloud, and the PR is merged only with separate owner approval." - acceptance_criteria: - - "Karaya's custom editorial policy, data, credentials, voice, source rights, redactions, and approval gates stay outside the Community package." - - "No owner screenshots under karayagroup-brand/site/handoff/redesign/ are changed, staged, cleaned, or included." - - "The bridge does not make unverified Citewire deployment, registry, or availability claims." - baseline_checks: - working_directory: "/Users/luismorrobel/karayagroup/karayagroup-citewire-site-link/site" - commands: ["npm test", "npm run build", "git -C .. diff --check"] - focused_implementation_checks: - - "Run site/test/news-compliance.test.mjs and the normal MCP regression suite." - - "Fetch the exact Citewire target over HTTPS and inspect rendered visible copy before asking for read-aloud approval." - integration_checks: - - "Confirm PR #17 remains draft, mergeable, and green after rebasing only if independently required." - - "Confirm a production smoke test only after a separately approved merge and automatic deployment." + binary_definition_of_done: "Recorded PR #17's exact three-file diff passes Karaya tests/build, targets live HTTPS, has Luis read-aloud approval for every changed visible word, and merges only with separate owner approval." + checks: + baseline: ["Run Karaya tests, build, MCP, and compliance checks.", "Run git -C .. diff --check."] + focused: ["Fetch the exact CiteWire target and inspect rendered visible copy.", "Reject protected screenshot paths."] + integration: ["Perform production smoke only after separately approved merge/deploy."] expected_artifact: "/Users/luismorrobel/karayagroup/karayagroup-citewire-site-link/docs/citewire-product-bridge.md" - rollback_boundary: "Revert only the bridge commit after owner approval; never touch the protected owner screenshot worktree." - github_mapping: - repository: "MeekPhills/karayagroup" - pull_request: "https://github.com/MeekPhills/karayagroup/pull/17" - related_issue: "https://github.com/MeekPhills/citewire/issues/3" - status: "open draft PR" - linear_mapping: - issue: "KAR-67" - status: "Todo" - claude_execution_tier: "Sonnet bounded Karaya bridge owner under Fable L1 identity-and-release orchestration" - independent_reviewer: "Opus Karaya copy/compliance reviewer" - integration_owner: "Fable L0 master orchestrator" - first_safe_action: "Re-run existing compliance and build checks; defer any visible copy review until WS-005 verifies the target." - escalation_condition: "Stop if visible copy changes, the target lacks HTTPS, screenshots appear in the diff, a test fails, or approval/merge/deploy authority is absent." + rollback_boundary: "Focused bridge revert only after approval; never touch the protected brand worktree." + github_mapping: "Recorded historical Karaya PR #17 and related CiteWire issue #3." + linear_mapping: "Recorded historical KAR-67 Todo." + execution_label: "Sonnet bounded Karaya bridge owner under Fable L1." + independent_reviewer: "Independent Opus Karaya copy/compliance reviewer." + first_safe_action: "Defer visible-copy approval until WS-005 live HTTPS evidence exists." + escalation_condition: "Stop for visible copy without approval, invalid HTTPS, protected screenshots, failed test, or merge/deploy request." - id: "WS-008" - parent_cluster: "Canonical Citewire identity, authority, and public release" - objective: "Complete the owner-gated immutable Community release and registry sequence only after identity, history, candidate, and release-environment preflight are independently verified." + parent_cluster: "Immutable Community release and registry" + objective: "Perform the owner-gated immutable Community release only after identity, repository, candidate, and live website gates are complete." priority: "P0" status: "blocked" current_verified_state: - claim_status: "Verified" - state: "citewire@0.1.0 is the only published npm version; 0.2.0 is unpublished. No release environment, tag, GitHub release, npm 0.2.0 publication, MCP Registry record, or catalog entry is verified." - evidence: ["CITEWIRE_CODEX_HANDOFF.md", "docs/releasing.md", "GitHub issue #3", "Linear KAR-67"] - production_readiness_category: "immutable release, supply chain, registry, and rollback" - risk: - level: "critical" - statement: "npm packages and public registry records are immutable or difficult to correct; incorrect release identity cannot be repaired by overwriting." - complexity: "high" - uncertainty: "medium" + claim_status: "Historical" + state: "Recorded npm baseline is citewire@0.1.0. Recorded 0.2 candidate is unpublished and no release, registry, catalog, or tag is verified." repository: "/Users/luismorrobel/karayagroup/citewire" exclusive_ownership_paths: - "/Users/luismorrobel/karayagroup/citewire/.github/workflows/release.yml" - - "/Users/luismorrobel/karayagroup/citewire/package.json" - - "/Users/luismorrobel/karayagroup/citewire/server.json" - "/Users/luismorrobel/karayagroup/citewire/CHANGELOG.md" - "/Users/luismorrobel/karayagroup/citewire/docs/releasing.md" - "/Users/luismorrobel/karayagroup/citewire/docs/distribution.md" - dependencies: ["WS-003", "WS-004"] + dependencies: ["WS-003", "WS-004", "WS-005"] dependents: ["WS-010"] - binary_definition_of_done: "A separate explicit owner approval authorizes each irreversible step; the approved main commit is tagged once, a manual preflight runs with publication toggles false, npm publication is independently verified with provenance, the MCP Registry entry is independently verified, and a GitHub release occurs only after both public records are correct." - acceptance_criteria: - - "GitHub release environment has the owner-required reviewer and v* tag restriction." - - "npm trusted publishing points to the selected canonical repository, release workflow, and environment." - - "Private vulnerability reporting and maintenance contacts are configured according to the approved identity." - - "The release workflow refuses an occupied version and package/registry identities agree exactly." - baseline_checks: - working_directory: "/Users/luismorrobel/karayagroup/citewire" - commands: ["npm test", "npm run release:check", "npm pack --dry-run --json", "npm view citewire@0.2.0 version", "git diff --check"] - focused_implementation_checks: - - "Run the manual release workflow preflight with both publication toggles false from the exact approved tag." - - "After separately approved publication, verify npm version, mcpName, integrity, provenance, and the official MCP Registry record." - integration_checks: - - "Verify Cloud's transition plan only after npm publishes the exact approved version." - - "Verify no downstream URL or release documentation points to an obsolete identity." + binary_definition_of_done: "Each irreversible step has separate exact owner approval; approved main is tagged once; no-publication preflight runs with toggles false; every public package, release, MCP, support/security, homepage, and documentation URL resolves to the independently verified live HTTPS destination before publication; npm version/integrity/provenance/MCP identity and MCP Registry record are independently verified; GitHub release follows only after correct public records and healthy canonical website." + checks: + baseline: ["Run Community suite, release check, package dry run, and diff check."] + focused: ["Run manual no-publication workflow preflight from exact approved tag.", "After approval, verify npm, provenance, MCP Registry, and public URLs."] + integration: ["Confirm Cloud transition can start only after immutable published evidence."] expected_artifact: "/Users/luismorrobel/karayagroup/citewire/docs/distribution.md" - rollback_boundary: "Before publication, revert the focused release change; after publication, do not overwrite or retag, instead use the documented deprecation/fixed-patch path under separate owner approval." - github_mapping: - repository: "MeekPhills/citewire" - pull_request: "https://github.com/MeekPhills/citewire/pull/1" - issue: "https://github.com/MeekPhills/citewire/issues/3" - status: "open draft candidate and open identity/release issue" - linear_mapping: - issue: "KAR-67" - status: "Todo" - claude_execution_tier: "Fable L1 identity-and-release orchestrator with Opus release owner" - independent_reviewer: "Opus supply-chain and registry reviewer" - integration_owner: "Fable L0 master orchestrator" - first_safe_action: "Verify all owner setup entries and run no-publication preflight only after an exact approval for the selected tag/ref." - escalation_condition: "Stop on any requested merge, tag, publish, GitHub release, registry submission, version collision, missing release protection, or unsupported provenance evidence." + rollback_boundary: "Before publication revert focused release changes. After publication use only owner-approved deprecation or fixed-patch procedure; never overwrite or retag." + github_mapping: "Recorded historical CiteWire PR #1 and issue #3." + linear_mapping: "Recorded historical KAR-67 Todo." + execution_label: "Fable L1 release coordination with Opus supply-chain owner." + independent_reviewer: "Independent Opus registry/provenance reviewer." + first_safe_action: "Wait for all three dependencies, then run only a no-publication preflight." + escalation_condition: "Stop for merge, tag, publish, release, registry submission, version collision, missing protection, or unsupported provenance." - id: "WS-009" - parent_cluster: "Citewire Cloud private-alpha foundation" - objective: "Reconcile Cloud documentation with the verified immutable Community archive pin and preserve the explicit private-alpha owner gates." + parent_cluster: "Cloud documentation pin alignment" + objective: "Preserve the verified Cloud documentation reconciliation to the 10aee95 archive pin without implying deployment." priority: "P1" - status: "completed_freshly_verified" + status: "complete_preserve_only" current_verified_state: - claim_status: "Verified" - state: "Cloud documentation was reconciled in commit 69068275ca0e332e36304533aa0f6b5d2e291405 on agent/cloud-alpha-http. The focused four-file docs-only diff updates README.md plus docs/ALPHA-DEPLOYMENT-CHECKLIST.md, docs/ARCHITECTURE.md, and docs/OWNER-DECISIONS.md from 6c89b6ea4c8b080fe2ffa166c41eb3113059c894 to 10aee95ac95bb437b4607723cd20fa5c8f9d1879." - evidence: ["fresh git show and status inspection on 2026-08-15", "isolated install, syntax/diff checks, and 15/15 committed tests reported passed"] - production_readiness_category: "operational documentation and dependency traceability" - risk: - level: "medium" - statement: "Stale operator documentation can cause a reviewer to validate, replace, or deploy against the wrong Community candidate." - complexity: "low" - uncertainty: "low" + claim_status: "Historical" + state: "Recorded Cloud docs-only head 6906827 reconciled four prose files to archive pin 10aee95. It is complete evidence, not an active mutable path lease." repository: "/Users/luismorrobel/karayagroup/citewire-cloud" - exclusive_ownership_paths: - - "/Users/luismorrobel/karayagroup/citewire-cloud/README.md" - - "/Users/luismorrobel/karayagroup/citewire-cloud/docs/ARCHITECTURE.md" - - "/Users/luismorrobel/karayagroup/citewire-cloud/docs/OWNER-DECISIONS.md" - - "/Users/luismorrobel/karayagroup/citewire-cloud/docs/ALPHA-DEPLOYMENT-CHECKLIST.md" + exclusive_ownership_paths: [] + evidence_ownership: "Recorded commit 69068275ca0e332e36304533aa0f6b5d2e291405 and its verification record." dependencies: ["WS-001"] dependents: ["WS-011"] - binary_definition_of_done: "Every Cloud document names the verified 10aee95 archive pin or accurately states its replacement condition; no document claims deployment, public availability, or approved operator decisions; committed documentation checks pass." - acceptance_criteria: - - "The archive pin, its integrity evidence, and the later npm replacement condition agree across all Cloud docs." - - "Account isolation, fail-closed composition, owner gates, and no-deployment posture remain explicit." - - "No credential, participant, customer, or provider detail enters documentation." - baseline_checks: - working_directory: "/Users/luismorrobel/karayagroup/citewire-cloud" - commands: ["npm test", "npm run check", "git diff --check"] - focused_implementation_checks: - - "Search all tracked Cloud documentation for 6c89b6ea4c8b080fe2ffa166c41eb3113059c894 and reconcile every occurrence." - - "Review docs against package.json and package-lock.json only; do not change runtime behavior." - integration_checks: - - "Independent reviewer confirms no documentation implies Community publication or Cloud deployment." - - "Reconfirm Cloud PR #1 remains draft and does not absorb an unrelated documentation rewrite without review." + binary_definition_of_done: "Recorded Cloud docs identify 10aee95 or its accurate replacement condition and make no deployment, availability, participant, pricing, or operator claim." + checks: + baseline: ["Search historical docs for stale 6c89b6e references."] + focused: ["Match docs against Cloud package and lockfile without runtime modification."] + integration: ["Confirm Cloud PR remains draft/undeployed when remote evidence is freshly required."] expected_artifact: "/Users/luismorrobel/karayagroup/citewire-cloud/docs/ALPHA-DEPLOYMENT-CHECKLIST.md" - rollback_boundary: "Revert the focused documentation commit; no runtime, provider, deployment, or registry state changes occur." - github_mapping: - repository: "MeekPhills/citewire-cloud" - pull_request: "https://github.com/MeekPhills/citewire-cloud/pull/1" - head: "69068275ca0e332e36304533aa0f6b5d2e291405" - status: "open draft private-alpha candidate; the focused documentation reconciliation is included and the PR remains undeployed" - linear_mapping: - issue: "KAR-66" - status: "In Progress" - role: "Program-level Cloud documentation follow-up; no distinct Linear child issue exists" - claude_execution_tier: "Sonnet bounded documentation owner under Fable L1 Cloud orchestration" - independent_reviewer: "Luna exact-pin and documentation reviewer" - integration_owner: "Fable L0 master orchestrator" - first_safe_action: "Keep the verified docs-only commit in the draft PR and re-check its exact four-file boundary if the PR changes." - escalation_condition: "Stop if a document change asks for a provider, participant, credential, domain, paid service, deployment, or runtime behavior decision." + rollback_boundary: "Focused four-file docs revert only; no runtime, provider, deployment, or registry change." + github_mapping: "Recorded historical CiteWire Cloud PR #1." + linear_mapping: "Recorded historical KAR-66 In Progress; no distinct child." + execution_label: "Sonnet documentation preservation under Fable L1." + independent_reviewer: "Independent Opus boundary reviewer." + first_safe_action: "No implementation work; if PR #1 changes, recheck the historical four-file boundary." + escalation_condition: "Stop for provider, participant, credential, domain, paid-service, deployment, or runtime decision." - id: "WS-010" - parent_cluster: "Citewire Cloud private-alpha foundation" - objective: "Replace the temporary immutable Community archive pin with the verified published Community npm range only after WS-008 completes and exact package provenance is independently verified." + parent_cluster: "Cloud npm dependency migration" + objective: "Replace the temporary Community archive pin only after immutable Community publication and provenance verification." priority: "P0" status: "blocked" current_verified_state: - claim_status: "Verified" - state: "Cloud currently imports Community from the exact 10aee95 archive and has committed regression coverage for direct HTTP and concurrent account isolation. The npm 0.2.0 release required for the documented range replacement is not published." - evidence: ["citewire-cloud/package.json and package-lock.json", "CITEWIRE_CODEX_HANDOFF.md", "docs/ALPHA-DEPLOYMENT-CHECKLIST.md"] - production_readiness_category: "dependency provenance, compatibility, and account isolation" - risk: - level: "critical" - statement: "Prematurely using a package range can consume an absent, wrong, or unverified immutable artifact and weaken the Community-to-Cloud compatibility boundary." - complexity: "medium" - uncertainty: "medium" + claim_status: "Historical" + state: "Cloud records exact 10aee95 archive import. The required published 0.2 npm artifact is not verified." repository: "/Users/luismorrobel/karayagroup/citewire-cloud" exclusive_ownership_paths: - "/Users/luismorrobel/karayagroup/citewire-cloud/package.json" - "/Users/luismorrobel/karayagroup/citewire-cloud/package-lock.json" dependencies: ["WS-008"] dependents: [] - binary_definition_of_done: "npm independently reports the approved Community version with expected mcpName, integrity, and provenance; Cloud package.json and lockfile use the documented npm range; clean isolated install, full committed tests, syntax checks, direct HTTP smoke, concurrent account-isolation smoke, diff check, and Node 18/22 CI pass; the PR remains draft and undeployed." - acceptance_criteria: - - "Community remains a one-way import and Cloud does not copy or fork its transport implementation." - - "Authentication precedes MCP dispatch; request account context remains immutable and filters unexpected caller fields." - - "Stateful entitled tools remain fail-closed when services are absent." - baseline_checks: - working_directory: "/Users/luismorrobel/karayagroup/citewire-cloud" - commands: ["npm ci --cache /private/tmp/citewire-cloud-npm-cache", "npm test", "npm run check", "git diff --check"] - focused_implementation_checks: - - "Run committed direct HTTP smoke tests for missing, malformed, invalid, and valid bearer handling." - - "Run committed concurrent account-isolation regression tests; do not create ad hoc test artifacts." - - "Inspect package-lock integrity and the Community import boundary." - integration_checks: - - "Confirm GitHub Node 18/22 CI is green on the exact draft PR head." - - "Confirm no deployment, provider activation, persistence, billing, OAuth, quota, or external account mutation occurred." + binary_definition_of_done: "npm independently reports approved Community version, integrity, provenance, and MCP identity; Cloud uses documented npm range; isolated install, full tests, check, direct HTTP, concurrent account isolation, diff, and Node 18/22 CI pass; Cloud stays draft and undeployed." + checks: + baseline: ["Run isolated npm ci, npm test, npm run check, and git diff --check."] + focused: ["Run committed HTTP and account-isolation tests.", "Inspect package-lock integrity and Community import boundary."] + integration: ["Confirm no deployment, provider activation, persistence, billing, OAuth, quota, or account mutation."] expected_artifact: "/Users/luismorrobel/karayagroup/citewire-cloud/package-lock.json" - rollback_boundary: "Revert the focused dependency change before merge; retain the exact archive pin until the published replacement passes all checks." - github_mapping: - repository: "MeekPhills/citewire-cloud" - pull_request: "https://github.com/MeekPhills/citewire-cloud/pull/1" - status: "open draft candidate; the npm-range replacement requires a separate reviewed change after publication" - linear_mapping: - issue: "KAR-66" - status: "In Progress" - role: "Program-level Cloud compatibility stream; no distinct Linear child issue exists" - claude_execution_tier: "Opus dependency and account-isolation owner under Fable L1 Cloud orchestration" - independent_reviewer: "Terra account-isolation and supply-chain reviewer" - integration_owner: "Fable L0 master orchestrator" - first_safe_action: "Read npm provenance for the exact released Community version only after WS-008; leave the archive pin untouched until that evidence exists." - escalation_condition: "Stop on absent/wrong provenance, a failed test, unexpected lockfile diff, secret, npm publication request, deploy request, or account-boundary regression." + rollback_boundary: "Revert focused dependency change and retain archive pin until published replacement passes every check." + github_mapping: "Recorded historical CiteWire Cloud PR #1." + linear_mapping: "Recorded historical KAR-66 In Progress; no distinct child." + execution_label: "Opus dependency/isolation owner under Fable L1." + independent_reviewer: "Independent Opus supply-chain and tenant reviewer." + first_safe_action: "Read exact published npm provenance only after WS-008." + escalation_condition: "Stop for absent/wrong provenance, failed test, lockfile surprise, secret, publication, deploy, or account-boundary regression." - id: "WS-011" - parent_cluster: "Citewire Cloud private-alpha foundation" - objective: "Resolve the documented private-alpha readiness gaps without deploying, choosing paid services, or expanding the account/data surface before owner authorization." + parent_cluster: "Cloud private-alpha identity and operations" + objective: "Resolve private-alpha readiness without deploying or coupling Community/Cloud/Karaya identities." priority: "P1" status: "blocked" current_verified_state: - claim_status: "Verified" - state: "Cloud draft PR #1 is mergeable at 69068275ca0e332e36304533aa0f6b5d2e291405 with fresh clean-install, direct HTTP, concurrent account-isolation, and Node 18/22 evidence while retaining the exact 10aee95 archive pin. It has zero verified deployments and lacks owner decisions for participants, credentials, domain/origin policy, persistence, retention, OAuth, billing, quotas, support, terms, privacy, and deployment. This archive-pinned readiness path is separate from the later WS-010 npm-range migration." - evidence: ["GitHub PR #1 metadata on 2026-08-15", "CITEWIRE_CODEX_HANDOFF.md", "docs/OWNER-DECISIONS.md"] - production_readiness_category: "security, privacy, operations, and private-alpha governance" - risk: - level: "critical" - statement: "A private-alpha deployment without identities, revocation, retention, origin, and operational decisions can expose tenant data or create unsupported commitments." - complexity: "high" - uncertainty: "high" + claim_status: "Historical" + state: "Recorded Cloud PR #1 is draft and archive-pinned with zero verified deployments. Its operator, tenant, support/privacy, domain, retention, billing, OAuth, and participant decisions are unresolved." repository: "/Users/luismorrobel/karayagroup/citewire-cloud" exclusive_ownership_paths: - "/Users/luismorrobel/karayagroup/citewire-cloud/.env.example" @@ -735,274 +483,171 @@ work_streams: - "/Users/luismorrobel/karayagroup/citewire-cloud/src/auth.js" - "/Users/luismorrobel/karayagroup/citewire-cloud/src/http.js" - "/Users/luismorrobel/karayagroup/citewire-cloud/src/plans.js" + - "/Users/luismorrobel/karayagroup/citewire-cloud/src/tools.js" - "/Users/luismorrobel/karayagroup/citewire-cloud/docs/OWNER-DECISIONS.md" - "/Users/luismorrobel/karayagroup/citewire-cloud/docs/ALPHA-DEPLOYMENT-CHECKLIST.md" - dependencies: ["WS-009"] + - "/Users/luismorrobel/karayagroup/citewire-cloud/test/" + dependencies: ["WS-002", "WS-009"] dependents: [] - binary_definition_of_done: "The owner has approved the exact private-alpha operating decisions, a reviewed implementation satisfies the documented fail-closed and isolation checks, and a separate explicit deployment approval governs any deployment; no public availability claim is made." - acceptance_criteria: - - "Credentials are generated and distributed outside the repository; only intended non-secret hashes/configuration are used." - - "Origin policy, proxy duplicate-Authorization handling, account isolation, error behavior, revocation, retention, and incident handling are explicit and tested." - - "Persistence, billing, OAuth, provider activation, and paid infrastructure remain absent unless separately selected and approved." - baseline_checks: - working_directory: "/Users/luismorrobel/karayagroup/citewire-cloud" - commands: ["npm ci --cache /private/tmp/citewire-cloud-npm-cache", "npm test", "npm run check", "git diff --check"] - focused_implementation_checks: - - "Use committed HTTP and account-isolation regressions plus static secret scan." - - "Review exact configured Origin behavior and duplicate Authorization proxy invariant without writing real credentials." - integration_checks: - - "Verify exact deployment identifier, environment owner, and rollback procedure only after a separate deployment approval." - - "Verify Cloud remains private and undeployed before that approval." + binary_definition_of_done: "Owner approves tenancy/auth issuer, credential namespace, deployment account, support/privacy owner, domain/origin, retention, billing/provider choices, and participant scope. Reviewed implementation remains fail-closed and isolated; no Community or Karaya credentials/accounts are trusted by default; deployment requires a separate approval." + checks: + baseline: ["Run isolated npm ci, committed Cloud tests, check, and diff check."] + focused: ["Run committed HTTP/account-isolation tests and static secret scan.", "Review configured Origin and Authorization proxy behavior without real credentials."] + integration: ["Verify deployment identifier/operator/rollback only after separate deployment approval.", "Confirm Cloud remains private and undeployed."] expected_artifact: "/Users/luismorrobel/karayagroup/citewire-cloud/docs/ALPHA-DEPLOYMENT-CHECKLIST.md" - rollback_boundary: "No deployment or service activation is within this stream without an owner-approved rollback; code changes revert by focused commit only." - github_mapping: - repository: "MeekPhills/citewire-cloud" - pull_request: "https://github.com/MeekPhills/citewire-cloud/pull/1" - status: "open draft candidate" - linear_mapping: - issue: "KAR-66" - status: "In Progress" - role: "Program-level Cloud private-alpha stream; no distinct Linear child issue exists" - claude_execution_tier: "Opus security, privacy, and deployment-readiness owner under Fable L1 Cloud orchestration" - independent_reviewer: "Opus tenant-boundary and operational-risk reviewer" - integration_owner: "Fable L0 master orchestrator" - first_safe_action: "Convert unmade owner decisions into an explicit approval checklist and independently re-run committed isolation tests; do not deploy." - escalation_condition: "Stop for a paid-service decision, credential delivery, provider activation, deployment, retention decision, billing/OAuth choice, privacy/legal commitment, or unsupported account-boundary behavior." + rollback_boundary: "Focused code/docs revert only; no deployment or service activation without owner-approved rollback." + github_mapping: "Recorded historical CiteWire Cloud PR #1." + linear_mapping: "Recorded historical KAR-66 In Progress; no distinct child." + execution_label: "Opus security/privacy owner under Fable L1." + independent_reviewer: "Independent Opus tenant-boundary reviewer with Sonnet test execution." + first_safe_action: "Convert unresolved decisions into an explicit approval checklist and do not deploy." + escalation_condition: "Stop for paid service, credential delivery, provider activation, deployment, retention, billing/OAuth, privacy/legal commitment, or isolation failure." - id: "WS-012" - parent_cluster: "Karaya production truth, corpus integrity, and automated editorial controls" - objective: "Establish dated read-only production truth and prepare an owner-reviewed, rights-aware remediation decision for historical Industry News corpus drift." + parent_cluster: "Karaya production truth and corpus integrity" + objective: "Establish dated read-only production truth and reconcile vendor provenance before proposing remediation." priority: "P0" - status: "blocked" + status: "blocked_missing_clean_worktree" current_verified_state: - claim_status: "Verified" - state: "Karaya Industry News, About, nine-topic API, and public MCP are live. The public JSON feed has 50 items; 16 exceed the current 480-character provisional cap and one retains a POWER Magazine syndication trailer. Current code strips known boilerplate and applies the cap, so the observed concern is stored-corpus drift rather than proof the current ingest gate is bypassed. Migrations 0007-0010, live source/circuit-breaker state, cron health, queue age, and effective source count are unknown or contradictory." - evidence: ["Linear KAR-69", "GitHub issue #18", "fresh Karaya HTTP/MCP smoke observation on 2026-08-15"] - production_readiness_category: "data integrity, rights compliance, observability, and rollback planning" - risk: - level: "critical" - statement: "Changing stored public content, sources, or migrations without evidence and an owner-approved rights-aware plan could alter published material or violate source obligations." - complexity: "high" - uncertainty: "high" + claim_status: "Historical" + state: "Recorded live Karaya feed had 50 items, 16 over provisional cap, and one POWER Magazine trailer. This is stored-corpus drift, not proof current ingest bypasses policy. Required production-audit worktree is absent." repository: "/Users/luismorrobel/karayagroup/karayagroup-production-audit" exclusive_ownership_paths: - "/Users/luismorrobel/karayagroup/karayagroup-production-audit/docs/production-truth-2026-08-15.md" dependencies: ["WS-001"] - dependents: ["WS-014", "WS-015", "WS-016"] - binary_definition_of_done: "A dated read-only evidence packet covers deployed commit, migration history, source state, circuit breakers, cron health, queue age, effective source count, affected row counts, and exact policy drift; it offers rights/revision-aware remediation options with no database, source, provider, or public-content mutation." - acceptance_criteria: - - "No database mutation, migration, source toggle, provider activation, or silent historical rewrite occurs." - - "Every observed row class is reproducible from a documented read-only query or public response." - - "The response distinguishes current ingest behavior from historical stored-corpus drift." - baseline_checks: - working_directory: "/Users/luismorrobel/karayagroup/karayagroup-production-audit/site" - commands: ["npm test", "npm run build", "node --test test/mcp.test.mjs test/news-compliance.test.mjs", "git -C .. diff --check"] - focused_implementation_checks: - - "Use only read-only production metadata and public feed/API/MCP requests." - - "Run the committed ingestion, source, publish-policy, news API, news page, and compliance regressions." - integration_checks: - - "Repeat routine HTTP smokes for /, /industry-news, /industry-news/about, /api/v1/news/topics, and MCP initialize." - - "Independently reconcile observed data with deployed code and repository migration inventory." + dependents: ["WS-014"] + binary_definition_of_done: "A dated read-only packet covers deployed commit, migrations, source/circuit-breakers, cron, queue, source count, affected rows, and policy drift, with rights/revision-aware options. It reconciles actual vendored CiteWire adapter preimage, exact commit, package version, local customization, and behavior/terms delta. No data, source, provider, or public-content mutation occurs." + checks: + baseline: ["Record a fresh clean production-audit worktree from verified origin/main.", "Run local Karaya tests/build/compliance only from that worktree."] + focused: ["Use public HTTP/API/MCP requests and authorized read-only production metadata only.", "Inventory migrations, source, cron, queue, corpus, and vendor provenance."] + integration: ["Reconcile observed production data to deployed code and migration inventory."] expected_artifact: "/Users/luismorrobel/karayagroup/karayagroup-production-audit/docs/production-truth-2026-08-15.md" - rollback_boundary: "Read-only evidence only; any later data change requires a separate approved, reversible plan and snapshot/rollback procedure." - github_mapping: - repository: "MeekPhills/karayagroup" - issue: "https://github.com/MeekPhills/karayagroup/issues/18" - status: "open" - linear_mapping: - issue: "KAR-69" - status: "Todo" - url: "https://linear.app/lgam/issue/KAR-69/karaya-production-truth-and-corpus-policy-integrity" - claude_execution_tier: "Opus production-data and rights-integrity owner under Fable L1 Karaya orchestration" - independent_reviewer: "Opus data-integrity and rights reviewer" - integration_owner: "Fable L0 master orchestrator" - first_safe_action: "Level 0 first records a fresh clean isolated worktree created from verified origin/main at the nominated production-audit path; then collect only read-only deployment, migration, source, cron, queue, and corpus evidence. Never use karayagroup-live or karayagroup-brand." - escalation_condition: "Stop for a database write, migration, provider/source activation, corpus rewrite, unapproved access method, secret, or ambiguity about data rights." + rollback_boundary: "Read-only evidence only. Any data/configuration change needs a separate approved reversible plan with snapshot/rollback." + github_mapping: "Recorded historical MeekPhills/karayagroup issue #18." + linear_mapping: "Recorded historical KAR-69 Todo." + execution_label: "Fable L1 Karaya coordination with Opus data/rights owner." + independent_reviewer: "Independent Opus production-integrity reviewer." + first_safe_action: "Create and record the clean production-audit worktree, then collect public/local read-only evidence. Never use live, brand, or editorial-shadow." + escalation_condition: "Stop for database write, migration, provider/source activation, corpus rewrite, unapproved access, secret, or rights ambiguity." - id: "WS-013" - parent_cluster: "Public Citewire MCP contract and Community resources" - objective: "Design a versioned, backward-compatible public MCP expansion for discovery, source/topic metadata, inclusion explanations, health, and resources without moving Karaya-specific editorial state into Community." + parent_cluster: "Versioned public MCP contract ADR" + objective: "Design, but do not implement, a backward-compatible Community MCP contract for discovery, metadata, explanations, health, and resources." priority: "P1" - status: "planned" + status: "planned_design_only" current_verified_state: - claim_status: "Verified" - state: "Community currently exposes news.list, news.get, news.topics, news.about, optional provider tools, stdio, and stateless HTTP. resources/list, resources/read, inclusion tiers, reason tags, and decision traces are absent." - evidence: ["Linear KAR-68", "GitHub issue #4", "Citewire source inventory on 2026-08-15"] - production_readiness_category: "public API compatibility, contract design, and documentation" - risk: - level: "high" - statement: "An unversioned contract expansion can break existing MCP clients or leak Karaya-specific policy into the MIT Community boundary." - complexity: "high" - uncertainty: "medium" + claim_status: "Historical" + state: "Current Community exposes news.list, news.get, news.topics, news.about, optional provider tools, stdio, and stateless HTTP. Resources, inclusion tiers, reason tags, and decision traces are absent." repository: "/Users/luismorrobel/karayagroup/citewire" exclusive_ownership_paths: - "/Users/luismorrobel/karayagroup/citewire/docs/platform-contract.md" - "/Users/luismorrobel/karayagroup/citewire/docs/adr-public-mcp-contract-v1.md" dependencies: ["WS-002"] - dependents: [] - binary_definition_of_done: "An independently reviewed ADR and compatibility plan define versioning, schemas, resources, rights fields, fixture specifications, error behavior, stdio/direct-HTTP smoke specifications, and explicit exclusions for Karaya state; actual fixtures, tests, runtime changes, and smoke execution require a separately approved, serialized implementation stream after WS-004." - acceptance_criteria: - - "Existing news.* tools and HTTP/stdio behavior remain backward compatible." - - "Any inclusion explanation is provider-neutral and carries no Karaya editorial state, credentials, source configuration, or protected data." - - "Resources enumerate and read predictably with documented errors and bounded content." - baseline_checks: - working_directory: "/Users/luismorrobel/karayagroup/citewire" - commands: ["npm test", "node --test test/rpc.test.mjs test/http.test.mjs test/platform.test.mjs", "git diff --check"] - focused_implementation_checks: - - "Specify the committed schema/fixture compatibility tests required before later implementation." - - "Specify direct stdio and HTTP protocol smokes using existing committed helpers; execution belongs to the later implementation stream." - integration_checks: - - "Review Community boundary against Karaya's independent policy/evaluation architecture." - - "Re-run Cloud compatibility tests after any public transport or tool-contract change." + dependents: ["WS-017"] + binary_definition_of_done: "An independently reviewed ADR defines versioning, capability discovery, schemas, resources, attribution/canonical/rights/inclusion/health fields, errors, compatibility, fixture specifications, and stdio/direct-HTTP smoke specifications. It explicitly excludes Studio, plugins, accounts/identity, persistence, scheduling, credential storage, Cloud operations, and Karaya state. WS-017 is the sole later serialized runtime implementation after WS-004 and explicit owner approval. No runtime, test, package, registry, or deployment mutation occurs." + checks: + baseline: ["Read-only inventory current news.*, RPC, HTTP, stdio, and committed tests."] + focused: ["Write schema/fixture compatibility matrix and later implementation smoke specification."] + integration: ["Review Community boundary against Karaya and Cloud."] expected_artifact: "/Users/luismorrobel/karayagroup/citewire/docs/adr-public-mcp-contract-v1.md" - rollback_boundary: "Design/ADR first; later code changes revert by focused commit and must preserve existing protocol behavior." - github_mapping: - repository: "MeekPhills/citewire" - issue: "https://github.com/MeekPhills/citewire/issues/4" - status: "open" - linear_mapping: - issue: "KAR-68" - status: "Todo" - url: "https://linear.app/lgam/issue/KAR-68/citewire-public-mcp-contract-and-resources" - claude_execution_tier: "Opus public-contract owner under Fable L1 Community-MCP orchestration" - independent_reviewer: "Opus MCP compatibility reviewer" - integration_owner: "Fable L0 master orchestrator" - first_safe_action: "Write and independently review the ADR and compatibility matrix before changing a tool, resource, transport, or package version." - escalation_condition: "Stop on an unversioned breaking change, a public-contract ambiguity, a Karaya-specific data/policy leak, or a release/registry action." + rollback_boundary: "Revert ADR proposal only; preserve current protocol behavior." + github_mapping: "Recorded historical MeekPhills/citewire issue #4." + linear_mapping: "Recorded historical KAR-68 Todo." + execution_label: "Opus protocol/rights design owner under Fable L1." + independent_reviewer: "Independent Opus MCP-compatibility reviewer with Sonnet schema check." + first_safe_action: "Inventory existing schemas/tests before naming a new tool, resource, or field." + escalation_condition: "Stop for breaking contract, Karaya-specific field, rights ambiguity, provider activation, publication, registry action, secret, or deployment." - id: "WS-014" - parent_cluster: "Karaya production truth, corpus integrity, and automated editorial controls" - objective: "Define and prove a deterministic, rights-safe policy/evaluation/shadow state machine for automated editorial assessment without expanding production publication." + parent_cluster: "Karaya deterministic shadow policy" + objective: "Define and prove a rights-safe non-publishing policy/evaluation/shadow state machine." priority: "P1" status: "blocked" current_verified_state: - claim_status: "Verified" - state: "Current code deterministically quarantines relevance below 0.55, routes 0.55 through 0.8199 to review, and marks 0.82 or higher auto eligible subject to further gates; ingest still writes eligible items as needs_review. Proposed shadow bands are below 0.50 held, 0.50 through 0.5999 adjacent-only with automated agreement, and 0.60 or higher standard candidate. No shadow workflow, durable decision trace, or assessment scheduler exists." - evidence: ["site/api/_lib/ingest/classify.js", "site/api/cron/ingest.js", "Linear KAR-70"] - production_readiness_category: "policy safety, evaluation, auditability, and automated decision controls" - risk: - level: "critical" - statement: "Lowering scores or removing routine review without deterministic replay, audit trails, rights gates, and a global stop path could expand unsafe publication." - complexity: "high" - uncertainty: "high" + claim_status: "Historical" + state: "No approved shadow workflow exists. The preserved editorial-shadow proposal is not partial completion and contains an executable migration, nondeterministic run identity, incomplete corpus traversal, race/partial-write defects, and unresolved vendor provenance." repository: "/Users/luismorrobel/karayagroup/karayagroup-production-audit" exclusive_ownership_paths: - "/Users/luismorrobel/karayagroup/karayagroup-production-audit/site/api/_lib/ingest/classify.js" - "/Users/luismorrobel/karayagroup/karayagroup-production-audit/site/api/_lib/ingest/process.js" - "/Users/luismorrobel/karayagroup/karayagroup-production-audit/site/api/_lib/publish-policy.js" + - "/Users/luismorrobel/karayagroup/karayagroup-production-audit/site/api/_lib/editorial-assessment.js" + - "/Users/luismorrobel/karayagroup/karayagroup-production-audit/site/api/_lib/editorial-fingerprint.js" + - "/Users/luismorrobel/karayagroup/karayagroup-production-audit/site/api/_lib/editorial-source-assessment.js" + - "/Users/luismorrobel/karayagroup/karayagroup-production-audit/site/api/cron/editorial-assess.js" - "/Users/luismorrobel/karayagroup/karayagroup-production-audit/site/test/ingest.test.mjs" - "/Users/luismorrobel/karayagroup/karayagroup-production-audit/site/test/ingest-worker.test.mjs" - "/Users/luismorrobel/karayagroup/karayagroup-production-audit/site/test/publish-policy.test.mjs" + - "/Users/luismorrobel/karayagroup/karayagroup-production-audit/site/test/editorial-assessment.test.mjs" + - "/Users/luismorrobel/karayagroup/karayagroup-production-audit/site/test/editorial-assess-worker.test.mjs" + - "/Users/luismorrobel/karayagroup/karayagroup-production-audit/site/test/editorial-source-assessment.test.mjs" - "/Users/luismorrobel/karayagroup/karayagroup-production-audit/docs/adr-editorial-policy-shadow-state-machine.md" + excluded_paths: + - "/Users/luismorrobel/karayagroup/karayagroup-production-audit/supabase/migrations/" + - "/Users/luismorrobel/karayagroup/karayagroup-production-audit/site/api/admin.js" + - "/Users/luismorrobel/karayagroup/karayagroup-production-audit/site/api/_lib/editorial-automation-controls.js" dependencies: ["WS-012"] - dependents: ["WS-015", "WS-016"] - binary_definition_of_done: "An approved policy/data-contract ADR, deterministic replay fixtures, shadow-only state machine, decision trace schema, rights gates, and assessment criteria pass committed regression tests without changing published-item eligibility or production thresholds." - acceptance_criteria: - - "Shadow bands are configuration-backed and run without changing production publishing." - - "Every automated decision records policy version, input provenance, reason tags, rights/access result, evaluator agreement, and disposition." - - "No raw provider content, provider credential, or unapproved model/cost choice is introduced." - baseline_checks: - working_directory: "/Users/luismorrobel/karayagroup/karayagroup-production-audit/site" - commands: ["npm test", "node --test test/ingest.test.mjs test/ingest-worker.test.mjs test/publish-policy.test.mjs", "npm run build", "git -C .. diff --check"] - focused_implementation_checks: - - "Use committed deterministic fixture/replay tests and no ad hoc test artifacts." - - "Prove shadow outcomes cannot write published status, change source state, or alter historical corpus." - integration_checks: - - "Compare shadow decisions with WS-012 production truth and corpus classifications." - - "Independent review validates rights, policy trace, and global-stop design before WS-015." - - "WS-012 must prove existing schema sufficiency. If a migration, backfill, or configuration write is needed, stop and create a separately approved reversible subtask with snapshot and rollback evidence." + dependents: ["WS-015"] + binary_definition_of_done: "Approved policy/data contract, deterministic replay fixtures, bounded as-of/window run identity, complete stable corpus pagination, concurrency-safe creation/retry, atomic-or-recoverable partial writes, independent-agreement/rights gates, and non-publishing shadow behavior pass committed tests. If schema is insufficient, stop for a separately approved reversible migration subtask." + checks: + baseline: ["Run committed Karaya tests/build in the clean production-audit worktree."] + focused: ["Run deterministic replay, pagination, race/retry, partial-write, rights-trace, and no-publish tests."] + integration: ["Compare shadow outputs to WS-012 truth and obtain independent rights/policy review."] expected_artifact: "/Users/luismorrobel/karayagroup/karayagroup-production-audit/docs/adr-editorial-policy-shadow-state-machine.md" - rollback_boundary: "Keep shadow decisions non-publishing; revert focused policy/fixture commits before any production threshold or source-state change." - github_mapping: - repository: "MeekPhills/karayagroup" - issue: "https://github.com/MeekPhills/karayagroup/issues/19" - status: "open" - linear_mapping: - issue: "KAR-70" - status: "Todo" - url: "https://linear.app/lgam/issue/KAR-70/karaya-automated-editorial-pipeline-adjacent-signals-and-control" - claude_execution_tier: "Opus policy, evaluation, and data-contract owner under Fable L1 Karaya orchestration" - independent_reviewer: "Opus rights-safety and deterministic-replay reviewer" - integration_owner: "Fable L0 master orchestrator" - first_safe_action: "Draft the policy/data-contract ADR and replay matrix from WS-012 evidence; do not change thresholds or publishing behavior." - escalation_condition: "Stop for a production threshold change, automatic publishing, provider/model/cost selection, database migration, source activation, untraceable decision, or failed replay." + rollback_boundary: "Focused non-publishing policy/fixture revert only. No migration, threshold, source-state, or corpus change." + github_mapping: "Recorded historical MeekPhills/karayagroup issue #19." + linear_mapping: "Recorded historical KAR-70 Todo." + execution_label: "Opus policy/data-contract owner under Fable L1." + independent_reviewer: "Independent Opus rights and deterministic-replay reviewer." + first_safe_action: "Derive the ADR and replay matrix from WS-012, not the preserved editorial-shadow diff." + escalation_condition: "Stop for threshold change, automatic publishing, model/cost choice, migration, source activation, untraceable decision, or failed replay." - id: "WS-015" - parent_cluster: "Karaya production truth, corpus integrity, and automated editorial controls" - objective: "Build the owner-approved Adjacent signal label, reason tags, exceptions-only approval console, global pause, and regular assessment surface on top of the validated shadow state machine." + parent_cluster: "Karaya authorized exceptions console" + objective: "Build the owner-approved Adjacent presentation, exceptions-only console, pause, and assessment surface on top of WS-014." priority: "P1" status: "blocked" current_verified_state: - claim_status: "Verified" - state: "No Adjacent signal UI, inclusion-tier fields, agent workflow, durable decision trace, exceptions-only console, global pause control, or assessment scheduler is implemented. Existing KAR-53 remains the console/source-health follow-up anchor." - evidence: ["Linear KAR-70", "site source inventory on 2026-08-15"] - production_readiness_category: "user experience, accessibility, operational control, and assessment" - risk: - level: "high" - statement: "Visible labels can mislead users or violate approved voice; a console that becomes a publication bypass or lacks a tested pause/control path is unsafe." - complexity: "high" - uncertainty: "high" + claim_status: "Historical" + state: "No authorized Adjacent UI, decision trace, exceptions-only console, global pause, or assessment scheduler is implemented. Generic Studio is not evidence and is excluded." repository: "/Users/luismorrobel/karayagroup/karayagroup-production-audit" exclusive_ownership_paths: - "/Users/luismorrobel/karayagroup/karayagroup-production-audit/site/api/admin.js" - "/Users/luismorrobel/karayagroup/karayagroup-production-audit/site/api/_lib/editorial-auth.js" - "/Users/luismorrobel/karayagroup/karayagroup-production-audit/site/api/_lib/editorial-queries.js" + - "/Users/luismorrobel/karayagroup/karayagroup-production-audit/site/api/_lib/editorial-automation-controls.js" - "/Users/luismorrobel/karayagroup/karayagroup-production-audit/site/api/news-page.js" - "/Users/luismorrobel/karayagroup/karayagroup-production-audit/site/api/_lib/render.js" - "/Users/luismorrobel/karayagroup/karayagroup-production-audit/site/src/pages/industry-news/shell.astro" - "/Users/luismorrobel/karayagroup/karayagroup-production-audit/site/src/styles/" - "/Users/luismorrobel/karayagroup/karayagroup-production-audit/site/test/admin.test.mjs" - "/Users/luismorrobel/karayagroup/karayagroup-production-audit/site/test/news-page.test.mjs" + - "/Users/luismorrobel/karayagroup/karayagroup-production-audit/site/test/editorial-automation-controls.test.mjs" - "/Users/luismorrobel/karayagroup/karayagroup-production-audit/docs/adjacent-signal-console-runbook.md" - dependencies: ["WS-012", "WS-014"] + dependencies: ["WS-014"] dependents: ["WS-016"] - binary_definition_of_done: "The console exposes only exceptions, every control is authorized/auditable and cannot bypass rights or global pause, scheduled assessments use recorded evidence, the Adjacent signal tier/reason tags are accessible and approved by Luis read-aloud, and all committed tests/build/compliance checks pass." - acceptance_criteria: - - "The visible non-standard label is exactly owner-approved, distinguishable without color alone, and paired with concise reason tags that explain why it appears." - - "The console requires editorial authentication and shows exception/decision evidence rather than a routine manual-review queue." - - "A global pause halts automated progression; its activation, effect, and recovery are tested." - - "Assessments are cadence-defined, reproducible, and do not silently change thresholds or publish content." - baseline_checks: - working_directory: "/Users/luismorrobel/karayagroup/karayagroup-production-audit/site" - commands: ["npm test", "node --test test/admin.test.mjs test/news-page.test.mjs test/news-compliance.test.mjs", "npm run build", "git -C .. diff --check"] - focused_implementation_checks: - - "Add committed accessibility, visual-tier, reason-tag, authorization, global-pause, and assessment-cadence tests." - - "Use existing compliance fixtures and avoid synthetic owner screenshots or ad hoc artifacts." - integration_checks: - - "Luis completes read-aloud approval of every changed visible label/tag/copy string." - - "Independent reviewer confirms UI behavior matches WS-014 decision traces and no unexpected fields reach publication." + binary_definition_of_done: "Console exposes exceptions only; authentication/authorization is injected and enforced; every action links to rights/exception trace; global pause gates every mutation; assessment evidence is auditable; accessible visible tiers/reason tags have Luis read-aloud approval; committed tests/build/compliance pass." + checks: + baseline: ["Run committed Karaya tests/build/compliance."] + focused: ["Run authorization, traceability, global-pause-all-writes, accessibility, reason-tag, cadence, and compliance tests."] + integration: ["Verify visible copy/read-aloud approval and alignment with WS-014 decision traces."] expected_artifact: "/Users/luismorrobel/karayagroup/karayagroup-production-audit/docs/adjacent-signal-console-runbook.md" - rollback_boundary: "Feature is disabled by the tested global pause; revert focused UI/API changes and preserve decision logs. No history rewrite or silent label removal." - github_mapping: - repository: "MeekPhills/karayagroup" - issue: "https://github.com/MeekPhills/karayagroup/issues/19" - related_issue: "KAR-53" - status: "open; KAR-53 remains the existing console/source-health follow-up anchor" - linear_mapping: - issue: "KAR-70" - related_issue: "KAR-53" - status: "Todo" - claude_execution_tier: "Sonnet bounded console/UI/test owners under Fable L1 Karaya orchestration; Opus owns security and copy review" - independent_reviewer: "Opus authorization, accessibility, and copy-compliance reviewer" - integration_owner: "Fable L0 master orchestrator" - first_safe_action: "Create an implementation-ready UI/control specification from the approved WS-014 state contract; ask Luis for read-aloud approval before any visible copy merge." - escalation_condition: "Stop for unapproved visible copy, a routine manual-review queue, an unaudited control, missing pause test, threshold change, provider/model/cost choice, or data mutation." + rollback_boundary: "Tested global pause first, then focused UI/API revert while preserving decision logs." + github_mapping: "Recorded historical MeekPhills/karayagroup issue #19; KAR-53 is related context." + linear_mapping: "Recorded historical KAR-70 Todo; KAR-53 related context." + execution_label: "Sonnet bounded UI/test owner under Fable L1 with Opus security/copy review." + independent_reviewer: "Independent Opus authorization, accessibility, and copy-compliance reviewer." + first_safe_action: "Create an implementation-ready control specification from WS-014; do not adapt generic Studio." + escalation_condition: "Stop for unapproved visible copy, routine manual-review queue, unaudited control, missing pause test, threshold/model/cost choice, or data mutation." - id: "WS-016" - parent_cluster: "Karaya production truth, corpus integrity, and automated editorial controls" - objective: "Perform a separately approved, reversible canary and production rollout only after evidence proves the policy, console, rights controls, and global pause meet their binary gates." + parent_cluster: "Karaya canary and reversible rollout" + objective: "Run a separately approved reversible canary and rollout only after WS-015 safety evidence." priority: "P0" status: "blocked" current_verified_state: - claim_status: "Verified" - state: "No canary, production threshold change, autonomous publishing rollout, or rollback drill is authorized or recorded. Current production keeps launch-source ingestion in review rather than automatically publishing." - evidence: ["site/api/cron/ingest.js", "Linear KAR-70"] - production_readiness_category: "deployment, reliability, rollback, and production change control" - risk: - level: "critical" - statement: "An autonomous-publishing rollout without a controlled canary, monitoring, owner approval, and a tested rollback can alter public content at scale." - complexity: "high" - uncertainty: "high" + claim_status: "Historical" + state: "No canary, threshold change, autonomous publishing rollout, or rollback drill is authorized or recorded." repository: "/Users/luismorrobel/karayagroup/karayagroup-production-audit" exclusive_ownership_paths: - "/Users/luismorrobel/karayagroup/karayagroup-production-audit/site/api/cron/ingest.js" @@ -1010,33 +655,60 @@ work_streams: - "/Users/luismorrobel/karayagroup/karayagroup-production-audit/docs/industry-news-runbook.md" - "/Users/luismorrobel/karayagroup/karayagroup-production-audit/docs/go-live-runbook.md" - "/Users/luismorrobel/karayagroup/karayagroup-production-audit/docs/autonomous-editorial-canary-runbook.md" - dependencies: ["WS-012", "WS-014", "WS-015"] + dependencies: ["WS-015"] dependents: [] - binary_definition_of_done: "Luis separately approves a bounded canary, acceptance metrics, monitoring, pause trigger, and rollback drill; the canary passes all documented safety metrics; production rollout occurs only after independent review and remains reversible through the verified global pause and documented recovery procedure." - acceptance_criteria: - - "Canary scope, duration, data class, public exposure, success/failure thresholds, and owner are explicit." - - "No source/provider activation, database migration, public-copy change, or paid-service decision is bundled into the rollout." - - "Global pause and rollback drill are exercised before broader enablement, with evidence preserved." - baseline_checks: - working_directory: "/Users/luismorrobel/karayagroup/karayagroup-production-audit/site" - commands: ["npm test", "npm run build", "node --test test/ingest-worker.test.mjs test/publish-policy.test.mjs test/admin.test.mjs", "git -C .. diff --check"] - focused_implementation_checks: - - "Use committed regression suites plus approved canary observability checks; do not create a production-only ad hoc test artifact." - - "Verify pause, no-publish fallback, and recovery behavior against the exact deployed commit." - integration_checks: - - "Routine production HTTP/MCP smokes and post-canary corpus/right checks." - - "Independent reviewer validates change log, monitoring evidence, and rollout/rollback decision before each escalation." + binary_definition_of_done: "Luis separately approves bounded canary, metrics, monitoring, pause trigger, and rollback drill; canary passes documented safety metrics; rollout follows independent review and remains reversible through verified pause and recovery." + checks: + baseline: ["Run committed Karaya regression suite/build."] + focused: ["Verify exact deployed pause, no-publish fallback, recovery, and approved canary observability."] + integration: ["Run production HTTP/MCP and post-canary corpus/rights checks with independent change-log review."] expected_artifact: "/Users/luismorrobel/karayagroup/karayagroup-production-audit/docs/autonomous-editorial-canary-runbook.md" - rollback_boundary: "Tested global pause first; then the documented owner-approved recovery procedure. No automatic rollout or rollback and no database/corpus mutation without explicit approval." - github_mapping: - repository: "MeekPhills/karayagroup" - issue: "https://github.com/MeekPhills/karayagroup/issues/19" - status: "open" - linear_mapping: - issue: "KAR-70" - status: "Todo" - claude_execution_tier: "Fable L1 Karaya rollout orchestrator with Opus production-change owner" - independent_reviewer: "Opus production safety and rollback reviewer" - integration_owner: "Fable L0 master orchestrator" - first_safe_action: "Prepare a no-change canary/rollback plan from WS-012 through WS-015 evidence and request exact owner approval before any deployment or production setting change." - escalation_condition: "Stop for missing metrics, absent global-pause proof, unapproved deploy/canary/threshold/source/data change, provider activation, paid service, or any irreversible action." + rollback_boundary: "Tested global pause, then owner-approved recovery. No automatic rollout/rollback or data/corpus mutation." + github_mapping: "Recorded historical MeekPhills/karayagroup issue #19." + linear_mapping: "Recorded historical KAR-70 Todo." + execution_label: "Fable L1 rollout coordination with Opus production-change owner." + independent_reviewer: "Independent Opus production-safety and rollback reviewer." + first_safe_action: "Prepare no-change canary/rollback plan only after WS-015." + escalation_condition: "Stop for missing metrics, absent pause proof, unapproved deploy/canary/threshold/source/data change, provider activation, paid service, or irreversible action." + + - id: "WS-017" + parent_cluster: "Community MCP contract implementation" + objective: "Implement the approved versioned Community MCP contract without Studio, plugins, hosted control-plane behavior, accounts, persistence, scheduling, credentials, or publishing." + priority: "P1" + status: "required_parked_not_authorized" + current_verified_state: + claim_status: "Verified" + state: "The dirty citewire-public-platform worktree is a parked prototype with known design/security defects. It is not a WS-013 design completion or WS-017 implementation baseline." + repository: "/Users/luismorrobel/karayagroup/citewire" + exclusive_ownership_paths: + - "/Users/luismorrobel/karayagroup/citewire/src/community/" + - "/Users/luismorrobel/karayagroup/citewire/src/config.js" + - "/Users/luismorrobel/karayagroup/citewire/src/core/rpc.js" + - "/Users/luismorrobel/karayagroup/citewire/src/index.js" + - "/Users/luismorrobel/karayagroup/citewire/test/community.test.mjs" + - "/Users/luismorrobel/karayagroup/citewire/test/rpc.test.mjs" + - "/Users/luismorrobel/karayagroup/citewire/test/http.test.mjs" + - "/Users/luismorrobel/karayagroup/citewire/test/index.test.mjs" + - "/Users/luismorrobel/karayagroup/citewire/docs/source-registry-and-rights.md" + excluded_paths: + - "/Users/luismorrobel/karayagroup/citewire/apps/studio/" + - "/Users/luismorrobel/karayagroup/citewire/package.json" + - "/Users/luismorrobel/karayagroup/citewire/package-lock.json" + - "/Users/luismorrobel/karayagroup/citewire/server.json" + - "/Users/luismorrobel/karayagroup/citewire/.github/" + dependencies: ["WS-004", "WS-013"] + dependents: [] + authorization_gate: "Explicit owner approval must be recorded after both dependencies. Before it, only read-only inventory is allowed; no code change or implementation worktree creation." + binary_definition_of_done: "Approved WS-013 schemas are implemented without changing news.* semantics; resources/capability discovery are additive and versioned; registry input is schema-validated and every Community source is inert/disabled by default; unknown or ambiguous rights resolve to hold; no classifier can publish or externally activate; no credential input, storage, or logging is introduced; Community stays stateless/read-only/provider-neutral/attribution-first/non-publishing; no Karaya policy/credentials/source configuration or Cloud tenancy leaks; Node 18/22, protocol tests, package contents, docs, and Cloud compatibility agree; the parked WIP has a written disposition record rather than a merge shortcut; separate implementation and merge approvals exist." + checks: + baseline: ["Run committed Community suite and git diff --check."] + focused: ["Run exact news.* compatibility, stdio/direct-HTTP resource/capability, invalid-registry, and Node 18/22 checks.", "Run npm pack --dry-run --json to prove Studio/plugin exclusion."] + integration: ["Independently review Community/Karaya/Cloud boundary and bounded Cloud consumer compatibility."] + expected_artifact: "/Users/luismorrobel/karayagroup/citewire/docs/source-registry-and-rights.md" + rollback_boundary: "Focused implementation revert only while preserving current news.* behavior. A later release requires a separate owner-approved release iteration." + github_mapping: "Recorded historical CiteWire issue #4; no implementation PR exists." + linear_mapping: "Recorded historical KAR-68 Todo." + execution_label: "Opus Community implementation owner with Sonnet bounded tests under Fable L1." + independent_reviewer: "Independent Opus MCP/rights reviewer." + first_safe_action: "After WS-004 and WS-013, inventory the parked prototype read-only. Start no code change or clean implementation worktree until explicit owner approval is recorded; never copy, merge, or stage the parked diff." + escalation_condition: "Stop for unversioned breaking change, rights ambiguity, Karaya/Cloud leakage, Studio/plugin proposal, failed compatibility check, or release/registry/deployment request." diff --git a/CLAUDE.md b/CLAUDE.md index 46ad3c1..e8fbf6c 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -1,100 +1,105 @@ # CLAUDE.md -This repository is the tracked orchestration home for the cross-repository -Citewire open-source program. Read `PROJECT_HANDOFF.md` and every file under -`.claude/orchestration/` before acting. +This repository contains the tracked orchestration package for the CiteWire +cross-repository program. Read PROJECT_HANDOFF.md and every file under +.claude/orchestration before acting. -Community Citewire must remain MIT licensed, zero-dependency, stateless, -read-only, provider-neutral, and Node 18+ ESM unless Luis explicitly approves a -versioned public-contract change. Providers stay disabled by default. - -Use routine smoke tests, committed regression tests, and account-isolation -terminology. Do not create ad hoc repository test artifacts. Preserve the -Community-to-Cloud one-way dependency and Karaya's separate customized policy. +Community CiteWire remains MIT licensed, zero-dependency, stateless, read-only, +provider-neutral, and Node 18+ ESM unless a later owner-approved, +versioned-contract change says otherwise. Providers remain disabled by default. +Cloud consumes Community one way. Karaya is a separate customized consumer and +must not leak credentials, editorial policy, source configuration, redactions, +or proprietary state into Community. -## Managed Fable orchestration block - -Last synchronized: 2026-08-15 - -### Authority - -- Sol parent orchestrator is the Level 0 Fable master. "Sol parent - orchestrator" and "Fable L0 master" are the same authority, not separate - approvers or executors. -- Level 0 Fable master owns global truth, dependency release, integration, - GitHub/Linear synchronization, and stop/go judgment. -- Nested Fable orchestrators own composite clusters only after Level 0 releases - their dependencies. -- Opus owns architecture, security, privacy, data integrity, migrations, - cross-repository changes, root-cause analysis, and critical review. -- Sonnet owns bounded implementation, tests, fixtures, docs, accessibility, - CI/build repairs, deterministic verification, and runbooks. -- Implementers never serve as their own sole independent reviewer. When an - owner and reviewer use the same model tier, they must be separate - agents/sessions. The reviewer has no write ownership of the implementation - paths, does not reuse the implementer's conclusions as evidence, and reports - to Level 0 before integration. An implementer may never self-approve. - -### Source of truth - -1. Luis's latest explicit direction. -2. Current implementation and reproducible behavior. -3. Fresh tests, CI, deployment, and production evidence. -4. Git history and reviewed diffs. -5. Current GitHub and Linear state. -6. Current documentation. -7. Historical discussion. - -Classify material claims as Verified, Historical, Inferred, -Unknown, or Contradicted. Never treat a closed issue, commit message, old -handoff, or agent report as fresh proof. +## Managed orchestration block + +Last synchronized: 2026-08-15. + +### Planning labels and authority + +- Fable, Opus, and Sonnet are execution-planning labels only. They do not + assert model, plugin, connector, or runtime availability. +- Fable L0 owns cross-stream truth, dependency release, and stop/go + integration. It does not self-approve a high-risk implementation. +- Opus is required for identity, history, protocol, rights, security, + supply-chain, data-integrity, migration, and production-safety review. +- Sonnet is limited to bounded implementation, documentation, + exact-reference, and deterministic verification work. +- Every implementation has an independent reviewer with no write lease over + the implementation paths. + +### Current authority facts + +- Current local CiteWire orchestration head is + 7e816c5b2900cb04309f751e5d93bab79752128a. +- 80017d60c4396d704e0be55af4cd9cb1dc548b94 is only historical + initial-package evidence. +- Visible brand is CiteWire. Technical token is citewire. Project parent is + Openly Useful. +- Openly-Useful/citewire is authenticated absent and unapproved. This does not + permit creation, transfer, mirror, archive, rename, npm work, registry work, + DNS, hosting, or Cloud operator action. +- GitHub, Linear, CI, deployment, DNS, and provider references in the handoff + are recorded historical state pending fresh remote revalidation before + action. +- KAR-71 and KAR-77 are context only. They are not dependencies, mapped + streams, or authorization. + +### Controlled dirty exceptions + +- citewire/.project-status/manifest.json is a controlled untracked proposal. + Keep it unstaged and exclude it from every orchestration commit. The + repository is not Git-clean until it is separately dispositioned. +- citewire-public-platform is a dirty parked prototype. Do not merge, stage, + clean, cherry-pick, or credit it to WS-013 or WS-017. +- karayagroup-editorial-shadow is a dirty preserved proposal. Do not commit its + migration or credit it to WS-014 or WS-015. +- karayagroup-production-audit is absent. It must be created as a fresh clean + isolated worktree from verified origin/main before WS-012 begins. Never use + karayagroup-live, karayagroup-brand, or editorial-shadow as a substitute. +- Preserve the protected Karaya screenshot inventory: 49 files, 8 tracked and + 41 untracked. Never edit, stage, clean, move, delete, or use it as a + baseline. ### Execution rules -- Follow `.claude/orchestration/work-graph.yaml`; do not skip dependencies. -- Every agent gets one repository or non-overlapping owned paths, binary - acceptance criteria, required checks, rollback, reviewer, and escalation. -- Keep all Citewire, Cloud, Openly Useful, and Karaya product PRs draft until - their exact owner gates are satisfied. -- Canonical identity precedes immutable package or MCP Registry publication. -- Karaya production truth and corpus integrity precede threshold reduction or - automated publishing. -- Unknown rights, missing attribution, agent disagreement, low evidence, and - provider failures hold rather than publish. -- Jobs may report policy drift. They may not silently mutate policy. -- Preserve all 49 Karaya screenshot files in the separate owner worktree: - 41 untracked and 8 tracked. Never clean, stage, move, rewrite, or delete them. +- Follow the 17-stream graph exactly. Required direct corrections are: + WS-008 depends on WS-003, WS-004, and WS-005; WS-011 depends on WS-002 and + WS-009; Karaya follows WS-012 to WS-014 to WS-015 to WS-016; WS-017 depends + on WS-004 and WS-013. +- Studio, plugins, and hosted-control-plane work are speculative. They have no + required workstream and are explicitly excluded from WS-017. +- WS-004 owns current Community candidate metadata, not future Community + runtime/test paths. WS-017 owns the later runtime contract paths. WS-009 is + evidence-only, while WS-011 owns future mutable Cloud readiness paths. +- Do not start a downstream link before WS-005 independently proves a live + canonical HTTPS destination. +- Do not publish an immutable Community artifact before WS-005 as well as + WS-003 and WS-004. A published public metadata record must not point at the + recorded broken domain. +- WS-012 is read-only and writes only its evidence packet. It must establish + vendor provenance and production truth before WS-014. WS-014 owns + non-publishing policy/shadow paths, WS-015 owns admin/UI/controls, and + WS-016 owns rollout/configuration/runbooks. ### Hard stops -Stop on a failed test, unexpected diff, secret, target collision, overlapping -owner edit, paid-service decision, provider/source activation, migration, -production-data change, repository creation/transfer/archive, DNS/domain/TLS -change, deployment, merge, tag, npm/GitHub Release/MCP Registry/catalog action, -or visible Karaya copy without the required exact owner approval. - -### Initial action - -Revalidate the recorded baseline: all product worktrees except the protected -Karaya owner-screenshot inventory must be clean. The protected worktree has the -expected 41 untracked screenshots. The -Citewire orchestration worktree may contain only this controlled handoff -package and its exact orchestration commit; stop on any additional modified or -untracked path. Revalidate the protected Karaya inventory as exactly 49 -screenshots, 8 tracked and 41 untracked. Do not stage, clean, move, edit, or -delete any of them. - -Then execute WS-002 only: prepare the canonical identity decision packet. Do -not launch WS-012 during the initial two-hour wave; it remains an independent -later read-only branch that requires Level 0 authorization. If Luis has not -made the identity choice, stop at the decision gate. Do not infer it from the -phrase "Openly Useful" or from a non-visible GitHub target. - -The only permitted write in this initial wave is the cited WS-002 canonical -identity decision packet. It does not create authority for any external -action. Do not alter remotes, repository visibility, naming, security settings, -branch protection, GitHub settings, Vercel projects, hosting, certificates, -workflow configuration, or any external system. Stop before any external -mutation or irreversible action, even if it is not named above. +Stop for a failed check, unexpected diff, secret, target collision, +overlapping owner edit, protected asset, repository creation/transfer/archive, +DNS/domain/TLS change, deployment, merge, tag, npm/GitHub release, registry or +catalog action, provider activation, migration, production-data/configuration +change, paid-service decision, Studio/plugin scope expansion, or visible +Karaya copy without Luis read-aloud approval. + +### Initial execution wave + +1. Run WS-001 only: synchronize and mechanically validate the 17-stream + documentation package. +2. After WS-001, begin WS-002 as a documentation-only identity packet. +3. In parallel only after a clean production-audit worktree exists, WS-012 may + collect public/local read-only evidence. It must stop before a privileged + read, migration, data/configuration change, or rights ambiguity. +4. Do not start WS-003 through WS-008, WS-010 through WS-011, WS-013 through + WS-017 implementation, Studio/plugin work, or either parked prototype. diff --git a/PROJECT_HANDOFF.md b/PROJECT_HANDOFF.md index 41fffcf..038432d 100644 --- a/PROJECT_HANDOFF.md +++ b/PROJECT_HANDOFF.md @@ -1,404 +1,174 @@ -# Citewire open-source program handoff - -Verified at: 2026-08-15, America/New_York - -This is the tracked, cross-repository source of truth for the next Claude Code -execution session. It is intentionally stored in the existing public Citewire -repository on `agent/citewire-orchestration-handoff`, stacked on the prepared -landing head `ff09b68ed811531eb0ca630b65daeaf06cc3304c`. The workspace root is not -a Git repository. Keeping the package here makes the handoff reviewable without -changing the exact diff of draft landing PR #2. - -## Project identity - -Citewire is a public, MIT-licensed, zero-dependency, Node 18+ ESM MCP package -for read-only news and research access. The current Community boundary is -stateless and provider-neutral. It supports stdio and Streamable HTTP, four -generic `news.*` tools when a platform adapter is configured, and ten optional -provider tools that are disabled by default. - -The requested next product is broader: - -- make Citewire a canonical, forkable open-source project under Openly Useful; -- preserve full Git history and keep the legacy repository readable as - historical provenance; -- keep Karaya Industry News as a separate, customized consumer; -- add a rights-aware public MCP contract and resources; -- replace routine human review only after a deterministic, independently - verified automated editorial path is proven; -- use an exceptions-only console, a global pause, and recurring assessments; -- evaluate `0.50-0.5999` items in shadow mode as `Adjacent signal` candidates - with controlled reason tags; -- use citewire.org as the canonical landing page after it is actually live. - -The current public identity is still `MeekPhills/citewire`, npm package -`citewire`, and MCP name `io.github.MeekPhills/citewire`. The proposed -`Openly-Useful/citewire` target is not visible, but GitHub privacy masking means -its availability is Unknown until an authorized organization-owner check. - -## Local repositories - -| Repository | Absolute path | Current verified branch and head | State | -| --- | --- | --- | --- | -| Citewire Community and landing | `/Users/luismorrobel/karayagroup/citewire` | `agent/citewire-orchestration-handoff` at `80017d60c4396d704e0be55af4cd9cb1dc548b94`, based on `ff09b68ed811531eb0ca630b65daeaf06cc3304c` | Focused handoff in draft PR #5; product PRs remain draft | -| Citewire Cloud | `/Users/luismorrobel/karayagroup/citewire-cloud` | `agent/cloud-alpha-http` at `69068275ca0e332e36304533aa0f6b5d2e291405` | Clean after docs sync; implementation base is `ad7e58f...`; exact Community archive pin is `10aee95...` | -| Openly Useful | `/Users/luismorrobel/karayagroup/openlyuseful.org` | `agent/citewire-site-link` at `28af5c7a5fdd0425ced2fe45f5c50e05946758de` | Clean draft link branch | -| Current Karaya link branch | `/Users/luismorrobel/karayagroup/karayagroup-citewire-site-link` | `agent/citewire-site-link` at `3a90e43d8797af9e7c0bc02d4c1ae6f51ebd19a6` | Clean and based on production main `9c150632...` | -| Karaya owner-asset worktree | `/Users/luismorrobel/karayagroup/karayagroup-brand` | `agent/citewire-product-bridge` at `60130c88...`, behind current main | Do not touch: 49 screenshots total, 41 untracked and 8 tracked | -| Historical Karaya feature worktree | `/Users/luismorrobel/karayagroup/karayagroup-live` | `1c63a389...`, 87 commits behind current main | Historical only; not production truth | - -The parent directory `/Users/luismorrobel/karayagroup` is not a Git -repository. Its old `README.md` and `CLAUDE.md` contain durable Karaya safety, -redaction, voice, and owner-copy rules, but their one-page, no-database, and -never-deployed state claims are superseded by the live Karaya implementation. - -## GitHub - -| Repository | Active item | Verified state | -| --- | --- | --- | -| `MeekPhills/citewire` | PR #1 | Draft, mergeable, head `10aee95...`, base `main`; Node 18/22 workflow run `31750916990` succeeded | -| `MeekPhills/citewire` | PR #2 | Draft, mergeable, head `ff09b68...`, base `agent/citewire-product-launch`; runs `31849200115` and `31849291099` succeeded | -| `MeekPhills/citewire` | PR #5 | Draft, mergeable, head `80017d6...`, base `agent/citewire-landing-site`; exact 22-file orchestration-only diff | -| `MeekPhills/citewire` | Issue #3 | Canonical identity, history migration, website, and release; maps KAR-67 | -| `MeekPhills/citewire` | Issue #4 | Versioned public MCP contract and resources; maps KAR-68 | -| `MeekPhills/citewire-cloud` | PR #1 | Draft, mergeable, head `6906827...`; Node 18/22 runs `31893670759` and `31893673430` succeeded | -| `Openly-Useful/openlyuseful.org` | PR #8 | Draft, mergeable, head `28af5c7...`; runs `31849408964` and `31849412743` succeeded; preview passed | -| `MeekPhills/karayagroup` | PR #17 | Draft, mergeable, head `3a90e43...`; run `31849281233` succeeded; preview passed | -| `MeekPhills/karayagroup` | Issue #18 | Production truth and corpus integrity; maps KAR-69 | -| `MeekPhills/karayagroup` | Issue #19 | Automated editorial pipeline and exceptions console; maps KAR-70 | - -No repository has a Git tag, release, or milestone. The open PRs remain draft. -No submitted review or unresolved review thread was visible during recovery. - -## Linear - -- Workspace: `lgam` -- Team: Karaya Group, ID `b9ad52e1-0bb5-45cb-8f60-827e281bca39` -- Initiative: Karaya Group, ID `53ec5c44-4833-4d3a-a146-982062147eaf` -- Project: `karaya-site · build, deploy, DNS, email path`, ID - `cf2701e4-7c7c-4e46-941d-0d9f6332fff7` -- Parent program: KAR-66, In Progress -- Canonical identity/release child: KAR-67, Todo -- Public MCP contract child: KAR-68, Todo -- Production truth/corpus child: KAR-69, Todo; blocks KAR-70 -- Editorial automation child: KAR-70, Todo; related to KAR-53 -- Completed provenance: KAR-48 and KAR-36, Done -- Existing console/source-health follow-up: KAR-53, Backlog -- Dependency issue: KAR-24 is Todo as of 2026-08-15T15:52:24.535Z; linked PR - #16 is merged -- Complete Launch Log document ID: - `7f791900-c44b-489f-b0af-e1464784e367` - -## Architecture - -```text -Citewire Community -MIT / Node >=18 / ESM / stateless / read-only -stdio + Streamable HTTP + platform tools + optional provider tools - | - +-- exact archive dependency --> Citewire Cloud - | private, account-scoped alpha - | undeployed, stateful tools fail closed - | - +-- prepared static site ------> citewire.org - currently parked and TLS-broken - -Karaya Industry News -Vercel + Astro/serverless + Supabase app schema -public pages/API/feeds + anonymous read-only MCP + protected editorial console -uses vendored citewire@0.1-era provider adapters, not a current package import - -Openly Useful -dependency-free static Vercel site and design-family reference -``` - -Community must not absorb Karaya credentials, source registry, editorial -state, voice rules, redactions, or proprietary policy. Cloud depends one-way on -Community. Karaya is a separate customized consumer with vendored-provider -provenance until a deliberate compatibility/update contract is approved. - -## Environment setup and routine checks - -### Community and landing - -```text -cd /Users/luismorrobel/karayagroup/citewire -npm ci --ignore-scripts --no-audit --no-fund --cache /private/tmp/citewire-claude-cache -npm test -npm run release:check -npm pack --dry-run --json --cache /private/tmp/citewire-claude-cache -git diff --check -``` - -CI uses Node 18 and Node 22. Reuse committed release, protocol, provider, and -site regressions. Do not create ad hoc test artifacts in the repository. - -### Cloud - -```text -cd /Users/luismorrobel/karayagroup/citewire-cloud -npm ci --ignore-scripts --no-audit --no-fund --cache /private/tmp/citewire-cloud-claude-cache -npm test -npm run check -git diff --check -``` - -Reuse `test/http.test.mjs`, including direct HTTP, input allowlist, and -concurrent account-isolation regressions. Use account-isolation terminology. - -### Karaya - -Run from the current production-main-derived worktree's `site/` directory: - -```text -npm ci -npm run build -npm test -node tools/check-registry.mjs -npm audit --omit=dev -``` - -Also run the repository's dependency gate, compliance grep, public HTTP routine -smokes, and MCP initialize/tools checks. Preserve every file under the separate -owner screenshot worktree. - -### Openly Useful - -```text -python3 scripts/validate_site.py -git diff --check -``` - -## Completed work - -- Community provider-compliance candidate is complete at `10aee95...`. -- Cloud package and lockfile already pin `10aee95...`; do not repeat that edit. -- Cloud account-boundary repair and committed concurrent account-isolation - regressions are complete at implementation base `ad7e58f...`. The four-file - documentation reconciliation is pushed at `6906827...`; fresh Node 18/22 CI - runs `31893670759` and `31893673430` passed. -- Karaya PR sequence #16 -> #15 -> #14 is complete; production main is - `9c150632...`. Do not replay it. -- Karaya Industry News, nine-topic API, and public read-only MCP are live. -- Citewire landing, Openly Useful link, and Karaya link branches are pushed and - CI-green, but remain draft. -- Four composite Linear children and four matching GitHub issues were created - for the reviewed remaining work; active PR bodies carry work-stream mappings. - -## Product decisions and constraints - -- Preserve Community as MIT, zero-dependency, stateless, read-only, and Node - 18+ ESM. -- Keep providers disabled by default. No paid/metered provider or NewsData.io - activation without an explicit provider, terms, budget, and failure-policy - decision. -- Preserve Cloud as a separate private, account-scoped product boundary. -- Keep Karaya as a customized consumer with its own source policy, voice, - redactions, labels, ranking, and presentation. -- "Remove review" means removing routine human review only after deterministic - rights gates and independent automated verification are proven. Unknown - rights, missing attribution, disagreement, low evidence, or provider failure - must hold. -- Provisional shadow bands only: `<0.50` held, `0.50-0.5999` adjacent-only with - automated agreement, `>=0.60` standard candidate. Current production remains - `<0.55` quarantine, `0.55-0.8199` review, `>=0.82` auto-eligible. -- `Adjacent signal` and all visible reason tags require historical calibration - and Luis's read-aloud approval before shipping. -- Jobs may report assessment findings. They must not silently change policy. - -## Current behavior and known failures - -Fresh on 2026-08-15: - -- `https://karaya.group/industry-news` and `/industry-news/about` return 200. -- `GET /api/v1/news/topics` returns nine expected slugs. -- MCP initialize returns protocol `2025-06-18`, server `karaya-news-mcp` - version `1.0.0`; tools/list returns 15 read-only tools. -- The public JSON feed returns 50 items. Sixteen summaries exceed the current - 480-character provisional cap and one retains an `appeared first on POWER - Magazine` trailer. This proves stored-corpus policy drift, not a present - ingest bypass. -- `http://citewire.org` serves a Porkbun parked-domain page. A separate check - briefly saw 502. `https://citewire.org` consistently fails TLS. The stable - conclusion is that the Citewire landing is not live or usable. -- Karaya migration files and handoffs contradict one another about migrations - 0007-0010. Production migration history, live source/circuit-breaker state, - cron health, queue age, and runtime source count are Unknown. -- The former four-document Cloud pin drift is resolved at `6906827...` without - changing runtime metadata or the future `^0.2.0` publication gate. - -## Production-readiness gaps - -P1: - -- canonical GitHub/npm/MCP identity and legacy disposition are undecided; -- citewire.org is parked and TLS-broken; -- Community 0.2 is draft and unpublished; -- Karaya stored corpus does not fully match current policy; -- live Karaya migration/source/cron/queue truth is unresolved; -- Cloud is deliberately undeployed and has no participant, endpoint, - persistence, OAuth, billing, retention, privacy, support, or rollback - decision; -- automated editorial workflow, global pause, assessment cadence, and canary - evidence do not exist. - -P2: - -- Community and Karaya MCP surfaces do not implement resources or the proposed - decision-trace/inclusion contract; -- provider rate controls are process-local rather than distributed; -- `why_it_matters` is not structurally guaranteed for public items; -- Astro-chain audit exceptions expire on 2026-09-04; -- recurring cross-site availability monitoring is not verified. - -## Critical path - -```text -Identity and immutable release: -WS-002 canonical identity and authority - -> WS-003 verified retain-in-place route or owner-approved history migration - -> WS-008 separately approved immutable release and registry publication -WS-002 -> WS-004 identity-consistent Community candidate -> WS-008 - -Secure website and downstream links: -WS-002 + WS-004 - -> WS-005 identity-consistent landing + owner-approved HTTPS deployment - -> WS-006 and WS-007 downstream links - -WS-012 Karaya production truth and corpus integrity - -> WS-014 policy/evaluation/shadow state machine - -> WS-015 approved labels, exceptions console, pause, and assessments - -> WS-016 owner-approved canary and production automation - -WS-009 Cloud docs is independent. -WS-010 waits for WS-008. -WS-011 remains a separate owner-gated private-alpha path. -WS-013 may design the future MCP contract after identity is settled, but does -not block an accurately scoped 0.2 release. -``` - -## Active streams - -The full structured graph is in `.claude/orchestration/work-graph.yaml` and -each stream has an executable brief under `.claude/orchestration/streams/`. - -| ID | Objective | Priority | Tracker | -| --- | --- | --- | --- | -| WS-001 | Durable orchestration package | P0 | This branch and draft PR | -| WS-002 | Canonical identity and authority decision | P0 | Citewire #3, KAR-67 | -| WS-003 | Full-history canonical repository path | P0 | Citewire #3, KAR-67 | -| WS-004 | Community identity reconciliation and preflight | P0 | Citewire PR #1, KAR-67 | -| WS-005 | Landing identity, hosting, TLS, and verification | P0 | Citewire PR #2, KAR-67 | -| WS-006 | Openly Useful link activation | P1 | Openly Useful PR #8, KAR-67 | -| WS-007 | Karaya link activation | P1 | Karaya PR #17, KAR-67 | -| WS-008 | Immutable Community release and registry | P0 | Citewire PR #1/#3, KAR-67 | -| WS-009 | Cloud old-pin documentation repair, completed at `6906827...` | P1 | Cloud PR #1, KAR-66 | -| WS-010 | Cloud switch to verified npm artifact | P0 | Cloud PR #1, KAR-67 | -| WS-011 | Cloud private-alpha readiness | P1 | Cloud PR #1, KAR-66 | -| WS-012 | Karaya production truth and corpus integrity | P0 | Karaya #18, KAR-69 | -| WS-013 | Public MCP contract and resources | P1 | Citewire #4, KAR-68 | -| WS-014 | Editorial policy, corpus, and shadow state machine | P1 | Karaya #19, KAR-70 | -| WS-015 | Adjacent signal, console, pause, assessments | P1 | Karaya #19, KAR-70/KAR-53 | -| WS-016 | Canary and production automation rollout | P0 | Karaya #19, KAR-70 | - -## Validation state - -Fresh external GitHub reads verified current PR state and CI workflow results. -Fresh public HTTP/MCP/feed checks verified the production facts above. Local -Git refs and worktree status were rechecked. One Luna Conductor report drifted -to unrelated `GLO-*`/FantasyHQ data and was rejected in full; its corrected -report returned to the Citewire/Karaya scope and supplies the mappings above. - -Synchronization is durable: draft Citewire PR #5 contains the 22-file handoff -package at `80017d60...` plus verified metadata-only follow-up; KAR-66 has the -PR/issue mappings and dated verification comment; KAR-48 has a provenance-only -comment and remains Done; and the complete Launch Log document -`7f791900-c44b-489f-b0af-e1464784e367` was fetched in full, appended, saved, and -re-read with the 2026-08-15 synchronization marker present. - -No secret, private chat transcript, owner screenshot, deployment credential, -raw account key, or paid-provider configuration belongs in these artifacts. - -## Deployment and release state - -- Karaya production is live at main `9c150632...`. -- Openly Useful production is live; PR #8 is preview-only and draft. -- Citewire landing is not deployed to citewire.org. -- Citewire Community 0.2 is not merged, tagged, published, released, or in the - official MCP Registry. -- Citewire Cloud is not deployed. -- No provider activation, migration, DNS change, source activation, automated - production publication, npm publication, registry/catalog submission, or - paid-service decision occurred in this orchestration session. - -## Manual-only blockers - -Luis must explicitly decide or approve: - -1. canonical repository owner/path and legacy disposition; -2. npm and MCP Registry identity, `mcpName`, security/support URLs; -3. target organization authority and repository creation if moving; -4. Vercel project creation, domain attachment, DNS, TLS, deployment, rollback; -5. Community merge, release environment, vulnerability reporting, trusted - publisher, tag, npm, GitHub Release, and MCP Registry steps; -6. read-only privileged Karaya production evidence access; -7. any corpus remediation or migration; -8. provider/model, terms, privacy/retention, budget, and failure policy; -9. visible `Adjacent signal` and reason-tag copy through read-aloud approval; -10. automation canary and production rollout. - -## Initial parallel execution wave - -The initial wave remains entirely inside WS-002. It does not start WS-003 -through WS-016. - -- Level 0 establishes the controlled baseline and owns the decision packet. -- A nested Fable session frames the retain-in-place and move-to-approved-org - identity routes without selecting one. -- A Luna session independently verifies exact repository names, refs, PRs, - namespace visibility, and available authority evidence. -- A Terra session independently reviews irreversible provenance, package, - registry, hosting, and legacy-disposition consequences. -- The two independent reports return to Level 0. Neither reviewer owns packet - implementation paths or may reuse the implementer's conclusions as proof. - -## Two-hour Claude execution schedule - -- T+0–30: revalidate the controlled baseline and independently frame/verify the - two identity routes. No repository, metadata, link, hosting, or external - mutation. -- T+30–60: Level 0 reconciles the reports into the canonical identity decision - packet with explicit Unknowns, consequences, authority needs, and rollback - boundaries. -- T+60–120: stop at Luis's identity decision gate. Do not start WS-003 through - WS-016. Only correct factual errors in the WS-002 packet through the same - independent review path. - -## Exact first Claude action - -Read `PROJECT_HANDOFF.md`, `CLAUDE.md`, and every file under -`.claude/orchestration/` in full before acting. Revalidate the recorded baseline: -all product worktrees except the protected Karaya owner-screenshot inventory -must be clean; that protected worktree is expected to contain its 41 untracked -screenshots. The Citewire orchestration checkout must -contain only the exact tracked handoff commit and no additional modified or -untracked path. Revalidate the protected Karaya inventory as exactly 49 -screenshots, 8 tracked and 41 untracked. Do not stage, clean, move, edit, or -delete any of them. Revalidate exact heads, draft PR states, citewire.org -HTTP/TLS, and Karaya routine smoke evidence. - -Execute WS-002 only. Produce the canonical identity decision packet comparing -retain-in-place and owner-approved move routes and their immutable consequences. -If Luis has not selected the identity and proven the required authority, stop -at that decision gate. Do not infer the choice from "Openly Useful" or from a -non-visible GitHub target. - -The only permitted write is the cited WS-002 canonical identity decision -packet. It does not create authority for any external action. Do not alter -remotes, repository visibility, naming, security settings, branch protection, -GitHub settings, Vercel projects, hosting, certificates, workflow -configuration, or any external system. Do not merge, deploy, create or transfer -a repository, change DNS, tag, publish, release, submit a registry/catalog, -apply a migration, modify production data, enable a source/provider, select a -paid service, issue credentials, or ship visible Karaya copy. Stop before any -external mutation or irreversible action, even if it is not named above. +# CiteWire program handoff + +Verified local baseline: 2026-08-15, America/New_York. + +This is the tracked source of truth for the current 17-stream CiteWire, +Cloud, Openly Useful, and Karaya program. It is a control package, not +authorization for a repository operation, publication, hosting, deployment, +database change, or visible Karaya copy change. + +## Current control facts + +- Current CiteWire orchestration head is + 7e816c5b2900cb04309f751e5d93bab79752128a. +- 80017d60c4396d704e0be55af4cd9cb1dc548b94 is historical initial-package + evidence only. +- Visible brand: CiteWire. Technical token: citewire. Project parent: Openly + Useful. +- Openly-Useful/citewire is authenticated absent and unapproved. Absence does + not authorize creation, transfer, mirror, archive, rename, package or + registry identity, citewire.org operations, or Cloud tenancy/operator work. +- All remote PR, CI, GitHub, Linear, DNS, hosting, and deployment references + are recorded historical state pending fresh remote revalidation before action. + +## Controlled exceptions + +- citewire/.project-status/manifest.json is a controlled untracked proposal. + Preserve it unstaged and exclude it from this orchestration commit. CiteWire + is not Git-clean until it is separately dispositioned. +- citewire-public-platform is a dirty parked prototype at 7e816c5. Do not + merge, stage, clean, cherry-pick, or credit it to WS-013 or WS-017. +- karayagroup-editorial-shadow is a dirty preserved proposal at 9c150632. Do + not commit its migration or credit it to WS-014 or WS-015. +- karayagroup-production-audit is absent. Create it as a fresh clean isolated + worktree from verified origin/main before WS-012. Do not substitute live, + brand, or editorial-shadow. +- karayagroup-brand/site/handoff/redesign contains 49 protected screenshots, + 8 tracked and 41 untracked. Never edit, stage, clean, move, delete, or use + them as a baseline. + +The public-platform prototype is parked because it changed runtime behavior +before the WS-013 ADR, Studio is not defensibly authenticated, pause does not +gate every write, record cleanup is shallow, registry input is unvalidated, a +publish seam exists, and package contents exclude Studio. Studio, plugins, and +hosted control-plane work are speculative and have no required stream. + +The editorial-shadow proposal is preserved without credit because it has an +executable migration before production truth, lacks bounded replay/window +identity and deterministic corpus traversal, does not converge safely on +concurrent/partial writes, and has a CiteWire vendor-version contradiction. +Its focused verification stopped after 21 passing tests when one test file +could not load `@supabase/supabase-js`; the isolated worktree had no installed +dependencies and the shell was Node v24.18.0 rather than the required Node 22. +No install, rerun, build, audit, commit, migration, or deployment followed. +WS-012 reconciles its vendor preimage, commit, version, customizations, and +behavior/terms delta before WS-014. + +## Recorded repository and tracker state + +- CiteWire orchestration: agent/citewire-orchestration-handoff at 7e816c5. +- Community candidate: agent/citewire-product-launch at 10aee95, recorded + CiteWire PR #1 draft. +- Landing: agent/citewire-landing-site at ff09b68, recorded CiteWire PR #2 + draft. +- Orchestration package: recorded CiteWire PR #5 draft. +- Cloud: agent/cloud-alpha-http at 6906827, recorded Cloud PR #1 draft and + archive pin 10aee95. +- Openly Useful link: recorded PR #8 draft at 28af5c7. +- Karaya CiteWire bridge: recorded PR #17 draft at 3a90e43. +- Identity/release: recorded CiteWire issue #3 and KAR-67 Todo. +- Public Community contract: recorded CiteWire issue #4 and KAR-68 Todo. +- Karaya production truth: recorded Karaya issue #18 and KAR-69 Todo. +- Karaya automation: recorded Karaya issue #19 and KAR-70 Todo. KAR-53 is + related console/source-health context. +- KAR-66 is the recorded In Progress program parent. KAR-71 and KAR-77 are + context only, not stream mappings, dependencies, or authority. +- KAR-48 and KAR-36 are recorded Done provenance/history. KAR-24 is recorded + Todo; linked PR #16 does not prove the Astro-major-upgrade dependency done. + These are context-only, not active CiteWire stream mappings. +- No verified CiteWire Cowork/plugin manifest or GitHub/Linear work item maps + to a required stream. Studio/plugin work remains speculative. + +## Product boundary + +Community CiteWire is MIT, zero-dependency, Node 18+ ESM, stateless, read-only, +provider-neutral, attribution-first, and provider-disabled by default. It must +not contain Karaya credentials, source configuration, editorial policy, +redactions, historical state, or Cloud tenancy. + +Cloud is a distinct private account boundary that consumes Community one way. +It is not an implicit CiteWire, Openly Useful, or Karaya account namespace. +Its participant, credential, support, privacy, origin, billing, retention, and +deployment decisions remain separate owner gates. + +Karaya is a separate customized consumer. Its safety path is WS-012 to WS-014 +to WS-015 to WS-016. + +## The 17-stream graph + +1. WS-001 controls the documentation package. +2. WS-002 records identity facts and unresolved authority. +3. WS-003 verifies the owner-selected repository/history route. +4. WS-004 re-verifies the existing Community candidate. +5. WS-005 verifies the live CiteWire HTTPS destination. +6. WS-006 activates the Openly Useful link after WS-005. +7. WS-007 activates the Karaya link after WS-005 and read-aloud approval. +8. WS-008 is the immutable release path and depends on WS-003, WS-004, and + WS-005. +9. WS-009 is complete evidence-only Cloud documentation alignment. +10. WS-010 changes Cloud to npm only after WS-008. +11. WS-011 depends directly on WS-002 and WS-009. +12. WS-012 records read-only production truth from a new clean worktree. +13. WS-013 is an ADR-only public MCP contract design. +14. WS-014 owns non-publishing shadow policy after WS-012. +15. WS-015 owns authorized controls/UI after WS-014. +16. WS-016 owns canary/rollout after WS-015. +17. WS-017 is the only new required stream. It implements the approved + Community contract after WS-004 and WS-013. It excludes Studio, plugins, + hosting, accounts, persistence, scheduling, credentials, publishing, and + every Karaya behavior. + +No stream may write outside its explicit path lease. WS-004 owns current +candidate metadata but not future Community runtime/test paths; WS-017 owns +the later runtime contract paths. WS-009 is evidence-only, so WS-011 owns +future mutable Cloud readiness documentation. WS-012 writes only its truth +packet; WS-014 owns policy/shadow paths, WS-015 owns admin/UI/control paths, +and WS-016 owns rollout/configuration/runbook paths. + +## Critical paths + +- Identity, live website, immutable release, Cloud npm: + WS-001 → WS-002 → WS-003 and WS-004 → WS-005 → WS-008 → WS-010. + WS-008 waits for all of WS-003, WS-004, and WS-005. +- Live HTTPS links: + WS-001 → WS-002 → WS-004 → WS-005 → WS-006 and WS-007. +- Future Community contract: + WS-001 → WS-002 → WS-013, together with WS-004, then WS-017. + WS-017 does not block the 0.2 release path; a later release is separately + owner-approved. +- Cloud private alpha: + WS-001 → WS-009 and WS-002 → WS-011. +- Karaya production safety: + WS-001 → fresh production-audit worktree → WS-012 → WS-014 → WS-015 → + WS-016. + +## Initial wave and two-hour plan + +Phase 0 is WS-001 only: synchronize and mechanically validate the 17-stream +package. + +After WS-001, WS-002 may build a documentation-only identity packet. In +parallel only after a fresh clean production-audit worktree exists, WS-012 may +collect public/local read-only evidence. No other stream may begin. + +- Minutes 0–15: confirm 7e816c5 and controlled exceptions; independent + path/ref check. +- Minutes 15–40: synchronize WS-001 and prepare WS-002 decision record. +- Minutes 40–60: independent review of dependencies, leases, historical + labels, and stops. +- Minutes 60–75: conditionally create and record clean production-audit + worktree, otherwise preserve the WS-012 block. +- Minutes 75–120: conditionally collect WS-012 public/local read-only + evidence and vendor-provenance reconciliation. + +## Hard stops + +Stop for a failed check, unexpected diff, secret, protected asset, owner +overlap, repository create/transfer/archive/rename, DNS/domain/TLS action, +hosting/deployment, merge, tag, publication, registry/catalog action, provider +activation, migration, production-data/configuration mutation, paid-service +decision, Studio/plugin scope expansion, or visible Karaya copy without Luis +read-aloud approval. + +The executable per-stream contracts, checks, artifacts, rollbacks, mappings, +reviewers, and first actions are in work-graph.yaml and WS-001 through WS-017. From 9f10bb3b934abb05f56ad508dd6e45160ecc117f Mon Sep 17 00:00:00 2001 From: MeekPhills <117056626+MeekPhills@users.noreply.github.com> Date: Sat, 15 Aug 2026 16:35:23 -0400 Subject: [PATCH 4/4] Record verified CiteWire synchronization evidence --- .claude/orchestration/execution-state.yaml | 15 +++++++++++-- .claude/orchestration/recovery-ledger.yaml | 13 ++++++++++-- .claude/orchestration/streams/WS-001.md | 11 ++++++---- .../orchestration/verification-evidence.md | 21 +++++++++++++++++-- .claude/orchestration/work-graph.yaml | 16 ++++++++------ CLAUDE.md | 7 +++++-- PROJECT_HANDOFF.md | 20 ++++++++++++++---- 7 files changed, 81 insertions(+), 22 deletions(-) diff --git a/.claude/orchestration/execution-state.yaml b/.claude/orchestration/execution-state.yaml index 7f0cea4..602cc5a 100644 --- a/.claude/orchestration/execution-state.yaml +++ b/.claude/orchestration/execution-state.yaml @@ -7,7 +7,9 @@ orchestration: repository_path: "/Users/luismorrobel/karayagroup/citewire" repository: "MeekPhills/citewire" branch: "agent/citewire-orchestration-handoff" - current_verified_head: "7e816c5b2900cb04309f751e5d93bab79752128a" + pre_synchronization_head: "7e816c5b2900cb04309f751e5d93bab79752128a" + first_17_stream_sync_commit: "4b04c4c448f44b07f8fc10a4e2211274d7c55ee8" + live_head_resolution: "Read the live branch and draft PR #5 head before action; this metadata commit cannot embed its own resulting SHA." historical_initial_package_commit: "80017d60c4396d704e0be55af4cd9cb1dc548b94" based_on: "ff09b68ed811531eb0ca630b65daeaf06cc3304c" mode: "17-stream controlled handoff; documentation synchronization only until explicit gates release later streams" @@ -66,6 +68,15 @@ recorded_historical_mappings: console_context: "KAR-53 context only" context_only: ["KAR-71", "KAR-77"] +fresh_synchronization_evidence: + observed_on: "2026-08-15" + draft_pr_5: "Verified draft and mergeable at first 17-stream sync 4b04c4c; re-read live head after any later metadata commit." + ci: "Node 18 and Node 22 passed in runs 31906699682 and 31906701652." + github: "Synchronization comments were re-read on CiteWire issues #3/#4 and Karaya issues #18/#19." + linear: "KAR-66 through KAR-70 were re-read after update; statuses remained In Progress/Todo as recorded." + launch_log: "The full document was re-read at 124831 characters with exactly one CiteWire 17-stream synchronization marker." + claim_status: Verified + external_observations: citewire_org: observed_on: "2026-08-15" @@ -124,7 +135,7 @@ initial_parallel_execution_wave: - "Any use of parked prototypes as a baseline" two_hour_schedule: - t_plus_0_to_15: "Confirm 7e816c5 and controlled exceptions; independent exact-ref/path review." + t_plus_0_to_15: "Resolve live head, confirm 7e816c5 pre-sync baseline and controlled exceptions; independent exact-ref/path review." t_plus_15_to_40: "Synchronize WS-001 documentation while preparing WS-002 decision packet without external action." t_plus_40_to_60: "Independent review of graph, direct dependencies, exclusive leases, historical labels, and stops." t_plus_60_to_75: "Conditional future worktree creation/recording for WS-012, otherwise preserve its blocked status." diff --git a/.claude/orchestration/recovery-ledger.yaml b/.claude/orchestration/recovery-ledger.yaml index f905a53..9012e95 100644 --- a/.claude/orchestration/recovery-ledger.yaml +++ b/.claude/orchestration/recovery-ledger.yaml @@ -13,8 +13,8 @@ claim_status_legend: current_control_baseline: - id: "REC-001" claim_status: Verified - claim: "CiteWire orchestration current local head is 7e816c5b2900cb04309f751e5d93bab79752128a. Initial handoff package commit 80017d60c4396d704e0be55af4cd9cb1dc548b94 is historical evidence only." - action_boundary: "Do not represent 80017d6 as the current head." + claim: "CiteWire orchestration pre-sync baseline is 7e816c5b2900cb04309f751e5d93bab79752128a; first reviewed 17-stream sync is 4b04c4c448f44b07f8fc10a4e2211274d7c55ee8. Initial handoff package 80017d60c4396d704e0be55af4cd9cb1dc548b94 is historical evidence only." + action_boundary: "Read the live branch/PR head before action; do not represent 80017d6 or 7e816c5 as current." - id: "REC-002" claim_status: Verified claim: "Visible brand is CiteWire, technical token is citewire, and project parent is Openly Useful." @@ -89,6 +89,15 @@ graph_corrections: - "Studio/plugin work is speculative and not a required stream." - "No exclusive path lease overlaps another active mutable lease." +fresh_synchronization: + claim_status: Verified + evidence: + - "Draft PR #5 re-read at 4b04c4c, draft and mergeable, before the final metadata follow-up." + - "Node 18/22 CI passed in runs 31906699682 and 31906701652." + - "GitHub synchronization comments re-read on CiteWire #3/#4 and Karaya #18/#19." + - "KAR-66 through KAR-70 re-read after updates; Launch Log preserved and extended once." + action_boundary: "Tracking synchronization only; no product, release, deployment, DNS, provider, migration, or production mutation." + unknowns_and_stops: - id: "REC-401" claim_status: Unknown diff --git a/.claude/orchestration/streams/WS-001.md b/.claude/orchestration/streams/WS-001.md index 76cc2bf..a163209 100644 --- a/.claude/orchestration/streams/WS-001.md +++ b/.claude/orchestration/streams/WS-001.md @@ -13,8 +13,10 @@ system mutation. ## Current state -Current local orchestration head is -7e816c5b2900cb04309f751e5d93bab79752128a. The initial handoff package at +Pre-sync orchestration baseline is +7e816c5b2900cb04309f751e5d93bab79752128a. The first reviewed 17-stream sync is +4b04c4c448f44b07f8fc10a4e2211274d7c55ee8. Read the live head before action. +The initial handoff package at 80017d60c4396d704e0be55af4cd9cb1dc548b94 is historical evidence only. The controlled untracked .project-status/manifest.json proposal means the @@ -63,8 +65,9 @@ exceptions. - Execution label: Fable L0 integration, planning label only. - Reviewer: independent Opus graph reviewer with Sonnet exact-reference check. -- First action: establish the 7e816c5 baseline, preserve controlled - exceptions, then parse and cross-check the graph. +- First action: resolve the live head, confirm the 7e816c5 pre-sync baseline + and 4b04c4c sync evidence, preserve controlled exceptions, then parse and + cross-check the graph. ## Escalation diff --git a/.claude/orchestration/verification-evidence.md b/.claude/orchestration/verification-evidence.md index c835ab1..b4ff4fe 100644 --- a/.claude/orchestration/verification-evidence.md +++ b/.claude/orchestration/verification-evidence.md @@ -7,8 +7,11 @@ before an action is taken. ## Current local facts -- CiteWire orchestration head is - 7e816c5b2900cb04309f751e5d93bab79752128a. +- CiteWire pre-synchronization orchestration baseline is + 7e816c5b2900cb04309f751e5d93bab79752128a. The first reviewed 17-stream + synchronization commit is 4b04c4c448f44b07f8fc10a4e2211274d7c55ee8. + The live branch/PR head must be re-read because this metadata commit cannot + embed its own resulting SHA. - 80017d60c4396d704e0be55af4cd9cb1dc548b94 is the historical initial handoff-package commit, not the current head. - The settled identity facts are visible CiteWire, technical citewire, and @@ -61,6 +64,20 @@ The prior recorded observations remain: and one POWER Magazine trailer. This is stored-corpus drift pending WS-012, not proof of a current ingest bypass. +## Fresh synchronization verification + +- Draft PR #5 was re-read at first 17-stream sync 4b04c4c, still draft and + mergeable, before this final metadata follow-up. +- Node 18 and Node 22 CI passed in runs 31906699682 and 31906701652. +- Synchronization comments were re-read on CiteWire issues #3/#4 and Karaya + issues #18/#19. +- KAR-66 through KAR-70 were re-read after update. Their statuses remained + In Progress for KAR-66 and Todo for KAR-67 through KAR-70. +- The complete Launch Log was re-read at 124831 characters with exactly one + CiteWire 17-stream synchronization marker. + +These are tracking-only results, not product completion or action authority. + ## Parked worktree findings ### Public-platform prototype diff --git a/.claude/orchestration/work-graph.yaml b/.claude/orchestration/work-graph.yaml index efb0fe9..56f6f55 100644 --- a/.claude/orchestration/work-graph.yaml +++ b/.claude/orchestration/work-graph.yaml @@ -13,10 +13,12 @@ canonical_orchestration_repository: path: "/Users/luismorrobel/karayagroup/citewire" repository: "MeekPhills/citewire" branch: "agent/citewire-orchestration-handoff" - current_verified_head: "7e816c5b2900cb04309f751e5d93bab79752128a" + pre_synchronization_head: "7e816c5b2900cb04309f751e5d93bab79752128a" + first_17_stream_sync_commit: "4b04c4c448f44b07f8fc10a4e2211274d7c55ee8" + live_head_resolution: "Read the live branch and draft PR #5 head before action; this metadata commit cannot embed its own resulting SHA." historical_initial_package_commit: "80017d60c4396d704e0be55af4cd9cb1dc548b94" base_commit: "ff09b68ed811531eb0ca630b65daeaf06cc3304c" - state: "The initial handoff package was committed at 80017d6. The current local orchestration head is 7e816c5. No product or external-system mutation is represented by this graph." + state: "The initial handoff package was committed at 80017d6; 7e816c5 is the pre-sync baseline; 4b04c4c is the first reviewed 17-stream sync. No product mutation is represented by this graph." source_of_truth_order: - "latest explicit owner direction" @@ -57,7 +59,9 @@ repositories: repository: "MeekPhills/citewire" path: "/Users/luismorrobel/karayagroup/citewire" current_branch: "agent/citewire-orchestration-handoff" - current_head: "7e816c5b2900cb04309f751e5d93bab79752128a" + pre_synchronization_head: "7e816c5b2900cb04309f751e5d93bab79752128a" + first_17_stream_sync_commit: "4b04c4c448f44b07f8fc10a4e2211274d7c55ee8" + live_head_resolution: "Read the live branch and draft PR #5 head before action." - name: "CiteWire Community parked prototype" repository: "MeekPhills/citewire" path: "/Users/luismorrobel/karayagroup/citewire-public-platform" @@ -164,7 +168,7 @@ initial_parallel_execution_wave: mutation_boundary: "No repository creation, transfer, archive, DNS, deployment, merge, tag, publication, registry action, migration, source toggle, corpus rewrite, or visible Karaya copy change." two_hour_schedule: - t_plus_0_to_15: "Fable L0 confirms 7e816c5, records the controlled exceptions, and Sonnet independently checks paths and recorded refs." + t_plus_0_to_15: "Fable L0 confirms the live head and the 7e816c5 pre-sync baseline, records controlled exceptions, and Sonnet independently checks paths and refs." t_plus_15_to_40: "Fable prepares WS-001 graph synchronization while Opus prepares the no-mutation WS-002 identity packet and Sonnet checks recorded mappings." t_plus_40_to_60: "Independent Opus review of dependencies, exclusive leases, historical claims, and hard stops. Only focused documentation may be integrated after review." t_plus_60_to_75: "Conditional future action: create and record the fresh production-audit worktree from verified origin/main, or record that WS-012 remains blocked." @@ -189,7 +193,7 @@ work_streams: status: "active_documentation_only" current_verified_state: claim_status: "Verified" - state: "The current local orchestration head is 7e816c5. Initial handoff-package commit 80017d6 is historical evidence only. The worktree is not Git-clean because the controlled untracked .project-status manifest remains separately undispositioned." + state: "Pre-sync baseline is 7e816c5; first reviewed 17-stream sync is 4b04c4c; the live head must be read before action. Initial handoff-package commit 80017d6 is historical only. The worktree is not Git-clean because the controlled untracked .project-status manifest remains separately undispositioned." repository: "/Users/luismorrobel/karayagroup/citewire" exclusive_ownership_paths: - "/Users/luismorrobel/karayagroup/citewire/PROJECT_HANDOFF.md" @@ -210,7 +214,7 @@ work_streams: linear_mapping: "Recorded historical KAR-66 In Progress." execution_label: "Fable L0 integration." independent_reviewer: "Opus graph reviewer with Sonnet exact-reference check." - first_safe_action: "Establish the 7e816c5 baseline, preserve controlled exceptions, then parse and cross-check the graph." + first_safe_action: "Resolve the live head, confirm the 7e816c5 pre-sync baseline and 4b04c4c sync evidence, preserve controlled exceptions, then parse and cross-check the graph." escalation_condition: "Stop for conflicting evidence, secret/private transcript, owner overlap, or any claim needing fresh remote verification." - id: "WS-002" diff --git a/CLAUDE.md b/CLAUDE.md index e8fbf6c..07b7bb0 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -31,8 +31,11 @@ Last synchronized: 2026-08-15. ### Current authority facts -- Current local CiteWire orchestration head is - 7e816c5b2900cb04309f751e5d93bab79752128a. +- Pre-synchronization CiteWire orchestration baseline is + 7e816c5b2900cb04309f751e5d93bab79752128a. The first reviewed 17-stream + synchronization commit is 4b04c4c448f44b07f8fc10a4e2211274d7c55ee8. + Resolve the live branch/PR head before acting; a metadata commit cannot + truthfully embed its own SHA. - 80017d60c4396d704e0be55af4cd9cb1dc548b94 is only historical initial-package evidence. - Visible brand is CiteWire. Technical token is citewire. Project parent is diff --git a/PROJECT_HANDOFF.md b/PROJECT_HANDOFF.md index 038432d..7b26597 100644 --- a/PROJECT_HANDOFF.md +++ b/PROJECT_HANDOFF.md @@ -9,8 +9,11 @@ database change, or visible Karaya copy change. ## Current control facts -- Current CiteWire orchestration head is - 7e816c5b2900cb04309f751e5d93bab79752128a. +- Pre-synchronization CiteWire orchestration baseline is + 7e816c5b2900cb04309f751e5d93bab79752128a. The first reviewed 17-stream + synchronization commit is 4b04c4c448f44b07f8fc10a4e2211274d7c55ee8. + Read the live draft PR #5 head before acting; this metadata cannot embed its + own resulting commit SHA. - 80017d60c4396d704e0be55af4cd9cb1dc548b94 is historical initial-package evidence only. - Visible brand: CiteWire. Technical token: citewire. Project parent: Openly @@ -56,7 +59,8 @@ behavior/terms delta before WS-014. ## Recorded repository and tracker state -- CiteWire orchestration: agent/citewire-orchestration-handoff at 7e816c5. +- CiteWire orchestration: pre-sync baseline 7e816c5; first reviewed 17-stream + sync 4b04c4c; live branch head must be re-read. - Community candidate: agent/citewire-product-launch at 10aee95, recorded CiteWire PR #1 draft. - Landing: agent/citewire-landing-site at ff09b68, recorded CiteWire PR #2 @@ -79,6 +83,13 @@ behavior/terms delta before WS-014. - No verified CiteWire Cowork/plugin manifest or GitHub/Linear work item maps to a required stream. Studio/plugin work remains speculative. +Fresh synchronization evidence on 2026-08-15: draft PR #5 was verified at +4b04c4c with Node 18/22 CI green in runs 31906699682 and 31906701652; CiteWire +issues #3/#4 and Karaya issues #18/#19 contain the synchronization comments; +KAR-66 through KAR-70 were re-read after their updates; and the complete +Launch Log was re-read with exactly one appended 17-stream marker. These are +tracking-only changes, not product completion evidence. + ## Product boundary Community CiteWire is MIT, zero-dependency, Node 18+ ESM, stateless, read-only, @@ -151,7 +162,8 @@ After WS-001, WS-002 may build a documentation-only identity packet. In parallel only after a fresh clean production-audit worktree exists, WS-012 may collect public/local read-only evidence. No other stream may begin. -- Minutes 0–15: confirm 7e816c5 and controlled exceptions; independent +- Minutes 0–15: confirm the live head and the 7e816c5 pre-sync baseline plus + controlled exceptions; independent path/ref check. - Minutes 15–40: synchronize WS-001 and prepare WS-002 decision record. - Minutes 40–60: independent review of dependencies, leases, historical