From f50375f08627e6eb5806fb93dfd7e50fa114bcd2 Mon Sep 17 00:00:00 2001 From: Chris0Jeky Date: Thu, 2 Jul 2026 22:52:05 +0100 Subject: [PATCH 1/9] docs: add PROJECT_TRAJECTORY.md - 2026-07-02 whole-project analysis, part 1 (strengths, pivot-goal scoring, remaining path) --- docs/PROJECT_TRAJECTORY.md | 93 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 93 insertions(+) create mode 100644 docs/PROJECT_TRAJECTORY.md diff --git a/docs/PROJECT_TRAJECTORY.md b/docs/PROJECT_TRAJECTORY.md new file mode 100644 index 000000000..533e1cd56 --- /dev/null +++ b/docs/PROJECT_TRAJECTORY.md @@ -0,0 +1,93 @@ +# Project Trajectory — What Taskdeck Does Well and Where It Is Headed + +Last Updated: 2026-07-02 + +**Audience:** the maintainer, and future readers of the archived repo. +**Scope:** what this project genuinely does well, an honest scoring of the four archive-pivot goals, and the effective remaining path to "finished for personal use, then archived." +**Sibling document:** [`COURSE_CORRECTION.md`](COURSE_CORRECTION.md) carries the unflattering half — what must change, strategically and in execution, for the finish line to be reachable. Read both. + +**Provenance:** produced 2026-07-02 by a multi-agent analysis — six parallel dimension assessments (backend, frontend, CI/testing, docs/process, product-vs-thesis, strategy/economics) over the actual repo, issue tracker, CI history, and local databases; all 15 critical/high-severity claims were then adversarially verified by independent agents (5 confirmed, 10 adjusted with corrections folded in, 0 refuted). Evidence anchors below are file:line, issue numbers, or counted facts current as of this date. + +--- + +## 1. What Taskdeck genuinely does well + +### 1.1 Engineering: the architecture claims are machine-checked, not aspirational + +Most personal projects *say* they have clean architecture. Taskdeck **proves** it in CI: + +- Source-level purity tests forbid Domain from importing Application/Infrastructure/Api/AspNetCore/EFCore, and Application from importing Api/Infrastructure (`backend/tests/Taskdeck.Architecture.Tests/SourceLayerPurityTests.cs:48-76`), backed by csproj reference-graph checks (`ProjectReferenceBoundariesTests.cs`). `Taskdeck.Domain.csproj` has **zero** PackageReference entries. +- The product thesis itself — no automation surface mutates boards directly; everything routes through review-first proposals — is encoded as **12 CI-guarded invariants** in `RoadmapInvariantTests.cs` (INV-01 scans `Application/Services` + `Api/Mcp` for direct mutation calls). Only one invariant is skipped (DataFlowRegistry, genuinely unbuilt), and one (INV-10, MCP hash-pinning) is mechanism-only pending an explicit decision (#1154, decision folded into #1134's re-scope). + +This matters for archiving: the final state can honestly be described as clean-layered and review-first because a test run demonstrates it — no doc-vs-code drift risk on the architecture claims. + +The one long-running seam — `LlmQueueToProposalWorker` — was systematically hardened across #1236/#1250/#1254/#1256: DB-bounded type-aware reads with true-depth backlog gauges, optimistic claims on expected `UpdatedAt`, idempotency guards against duplicate proposals, stuck-Processing recovery with a retry budget, and an explicitly documented single-process assumption. Failure modes are reasoned about *in the code*, which is exactly what a frozen codebase needs. + +Test mass is real, not vanity: **5,482 `[Fact]`/`[Theory]` attributes across 444 backend test files** against 750 source files (Domain 1,191 / Application 2,667 / Api 1,517), consistent with the ~6,700 backend tests STATUS.md reports green. The frontend adds ~279 unit spec files (~3,750 tests) with per-directory coverage ratchets and 32 E2E specs. The suite runs on both Ubuntu and Windows on every PR. + +De-scoped-era subsystems are mostly parked correctly rather than rotting: the cache defaults to InMemory, the SignalR Redis backplane activates only on a config key, dormant Redis dependencies are semver-major capped (#1225), production DB is SQLite-only (a single `UseSqlite` registration), and ADR-0024/0025/0029 record the parked-but-live status per ADR. Dormant-but-harmless is the right archive posture. + +### 1.2 Product: the core loop is real, complete, and works offline + +The most important product fact this analysis established: the capture → triage → review → apply loop **does not depend on any LLM**. Capture triage is deterministic extraction (`CaptureTriageService.cs:234+` — checklist/bullet/numbered/dash/semicolon patterns) with deterministic card IDs, SHA256 idempotency keys, risk classification, and duplicate-proposal guards. The Mock-default experience *is* the real product on the golden path — no API key, no network, no setup. (The provenance stamp currently misattributes this work to the configured LLM provider — see #1273; fixing it advertises the strength.) + +The deep-review rail is genuine depth, not frontend theater: all six deep-review endpoints (conflicts, history, side-effects, provenance, confidence, similar-past on `AutomationProposalsController`) are backed by real services with claims-first authorization. The trust-gate UI a reviewer sees at the decisive moment reflects real computed properties of the proposal. + +The **Paper default flip shipped correctly and completely** on 2026-06-27 (ADR-0038): `paperThemeStore` defaults to `'paper'`, a one-time v2 storage migration preserves deliberate legacy choices, a reachable in-app Legacy escape hatch exists (#1221), and the 112-spec blast radius was caught by CI and resolved pre-merge. All 12 PAPER-01..12 child issues are closed; the Paper surface is ~11,600 LOC across 57 files with 41 dedicated spec files. Dual-UI drift is structurally contained because Paper and Legacy Review share the same actionability composables (#1217) — the freeze-not-delete decision for Legacy is genuinely cheap to carry. + +The easy-run dev path is shipped and demonstrably works: `scripts/dev-up.ps1/.sh` with several hardening rounds, DB pinned to `%LOCALAPPDATA%\Taskdeck` (fixing the CWD-dependent-DB trap), readiness polling, and optional demo seeding. + +### 1.3 Process: the gate catches real bugs, and the docs discipline is exceptional + +The heavy review process (2 adversarial reviews + bot rounds + aging) is not theater where it runs on real code. Documented pre-merge catches include a HIGH starvation regression in the #1236 bounded-reads design, a self-introduced HIGH (null operations element → 500) in #1151, the 112-spec blast radius on the theme flip, and an empirically proven fail-open on non-ACL filesystems in #1267. Every documented HIGH catch came from code slices — the gate earns its cost exactly where it runs on code. (Its cost structure elsewhere is a course-correction topic — see the sibling doc and #1269.) + +Docs discipline directly pre-pays the archive: STATUS.md and the masterplan carry dated post-merge syncs current to the same day as the last merge; the 43-ADR system was re-statused after the pivot with unusual precision (live-behavior-vs-parked-premise distinctions per ADR); docs governance is CI-enforced (`reusable-docs-governance.yml`). The process even finds and tracks its own doc rot with file:line evidence (#1222, #1227, #1138) rather than hiding it. + +Finally, the project has an operating **de-stub / honesty culture**: #1217 removed fabricated author metadata in favour of the real confidence value; #1219/#1234/#1245 de-stubbed Paper review with real backends rather than faking it. This is precisely the muscle the endgame needs — aimed at the remaining dishonest surfaces (#1272, #1276). + +### 1.4 The required CI gate is right-sized and green + +`ci-required.yml` runs 15 jobs in ~14 minutes: docs governance, architecture tests, dual-OS backend/frontend suites, migration validation, E2E smoke, enforcing gitleaks and bundle-size gates, and advisory dependency/SAST with the phased-enforcement plan documented inline (ADR-0035). Main is consistently green. The workflow header is a full commented map of all top-level lanes — unusually legible for future readers. (The *scheduled* estate around it is not in this shape — that is #1275.) + +--- + +## 2. Where it is headed: the four pivot goals, honestly scored + +The 2026-06-13 direction (masterplan, Direction section) is: finish for personal use, then archive — (1) Paper canonical, (2) trivially easy to run, (3) general quality, (4) archive cleanly. Distribution, GTM, cloud, and mobile are permanently de-scoped. + +**Goal 1 — Paper canonical: ~90% done.** The flip shipped with safety rails; all children closed. What remains is a bounded punch list, not open-ended work: the ink-bleed wire-or-descope decision, ~1,500 LOC of orphaned Paper dead code, the #1266 one-liner (all in #1276), and — the largest item — **re-pointing automated coverage at Paper** (#1274): today the entire unit suite and 30 of 32 E2E specs pin Legacy, and the only axe/WCAG suite runs exclusively against the frozen Legacy UI. The UI the sole user sees every day is currently the least-tested UI (adversarially confirmed). + +**Goal 2 — trivially easy to run: dev path done; exe path never exercised.** dev-up is shipped and hardened. But the "canonical personal run path" — the self-contained exe — has **never once been built**: `release-desktop.yml` has zero runs ever, the repo has zero tags and zero releases (adversarially confirmed and independently re-verified). This goal closes with one workflow dispatch + a local smoke run + the one-page run doc, or a formal demotion of the exe with dev-up declared canonical (#1139 re-scope, folding in the #1123 tag decision). + +**Goal 3 — general quality: strong foundation, but unbounded as written, and the highest-value items were not the ones being worked.** The masterplan's "proactively found" framing has no terminating condition (adversarially confirmed, rated critical), and post-pivot intake has matched closure ~1:1. The items that actually decide whether the product is "finished" are few and now all tracked: #1235 (preview diff vs Apply), #1272 (Today dossier fabrication — previously untracked), #1273 (triage provenance), #1274 (coverage inversion), #1275 (always-red scheduled CI), and #1271 (dogfooding — "finished for personal use" is currently unverifiable because there has been no personal use). + +**Goal 4 — archive cleanly: least started, but cheapest.** Until 2026-07-02 the only consolidated closeout checklist lived in a gitignored file; ~31% of open issues were items the plan had already decided to close, with no on-issue markers. The exit criteria are now proposed on tracker #1278 for ratification, and the decided closures are one hour of work (#1270). + +--- + +## 3. The effective path: sequencing that leverages the strengths + +The project's strengths — CI-enforced truth, docs discipline, the de-stub culture, and a review gate that catches HIGHs on code — map directly onto a short, convergent endgame. The key insight from the economics assessment: the process points precisely at a goal *when a wave is explicitly sequenced with tracked issues* (the Paper activation arc proved this — prerequisites → de-stubs → flip in two weeks), and drifts into self-seeded follow-ups when the goal is a doc-only list. So the path is: **make everything a tracked issue with a checked-in stop condition, close what is already decided, then run three short waves.** That is exactly what has now been seeded: + +| Step | What | Tracked as | +|---|---|---| +| 0 — commit the stop condition | Ratify exit criteria + target date; codify the two review tiers, intake severity bar, no-new-backend-surface rule | #1278 (ARCHIVE-00), #1269 (ARCHIVE-01) | +| 1 — backlog to truth (~1 hour) | Close every already-decided issue with dated notes | #1270 (ARCHIVE-02) | +| 2 — dogfooding (parallel, starts now) | ≥10 days of real personal use — the pivot's acceptance test | #1271 (ARCHIVE-03) | +| 3 — product-truth wave (FULL tier) | Preview diff == Apply; Today dossier truth; provenance truth | #1235, #1272 (ARCHIVE-04), #1273 (ARCHIVE-05) | +| 4 — coverage + estate right-sizing | Paper E2E/axe re-point; CI keep/kill/gate pass + ADR; branch protection; dead-surface removal | #1274 (ARCHIVE-06), #1275 (ARCHIVE-07), #1276 (ARCHIVE-08), #1173, #1210, #1228 | +| 5 — run-path decision | Dispatch + smoke the exe once, or demote it | #1139 (+ #1123) | +| 6 — docs closeout (LIGHT tier) | STATUS split; drift banner sweep; freshness pass | #1138, #1222 + #1227 | +| 4–6 as capacity allows | Bounded finish-or-close slices | #1134, #1135, #1128, #1175, #1215 | +| 7 — archive | README banner, final entries, tag decision, done-check | #1277 (ARCHIVE-09) | + +At the velocity the Paper arc demonstrated, this is roughly **4–6 weeks of sessions** (analysis estimate: ~2026-08-15), ending with: ci-required green; every remaining workflow green or schedule-disabled with a dated note; every default-reachable surface showing real data or an honest empty state; the approval-gate diff equal to what Apply executes; one validated run path; ≥10 days of organic usage data; and zero open issues without a fix or a dated parked-at-archive note. That is a checkable definition of "finished for personal use, then archived" — and every element of it plays to something the project already does well. + +--- + +## 4. Related documents + +- [`COURSE_CORRECTION.md`](COURSE_CORRECTION.md) — the problems, the fix-vs-write-off calls, and the ordered plan with completion conditions. +- [`IMPLEMENTATION_MASTERPLAN.md`](IMPLEMENTATION_MASTERPLAN.md) — Direction section (the pivot itself). +- [`STATUS.md`](STATUS.md) — current shipped reality. +- GitHub tracker [#1278](https://github.com/Chris0Jeky/Taskdeck/issues/1278) — ARCHIVE-00, the closeout wave and exit criteria. From 0fc21f0085e0167329181884350830531d9fa0b3 Mon Sep 17 00:00:00 2001 From: Chris0Jeky Date: Thu, 2 Jul 2026 22:52:05 +0100 Subject: [PATCH 2/9] docs: add COURSE_CORRECTION.md - 2026-07-02 whole-project analysis, part 2 (strategic/execution problems, ordered closeout plan, proposed exit criteria) --- docs/COURSE_CORRECTION.md | 137 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 137 insertions(+) create mode 100644 docs/COURSE_CORRECTION.md diff --git a/docs/COURSE_CORRECTION.md b/docs/COURSE_CORRECTION.md new file mode 100644 index 000000000..47d15df40 --- /dev/null +++ b/docs/COURSE_CORRECTION.md @@ -0,0 +1,137 @@ +# Course Correction — What Must Change to Finish + +Last Updated: 2026-07-02 + +**Audience:** the maintainer. This is the unflattering half of the 2026-07-02 whole-project analysis; the sibling [`PROJECT_TRAJECTORY.md`](PROJECT_TRAJECTORY.md) covers what the project does well and the effective path forward. The engineering quality is real — that is established there and not re-argued here. + +**The one-paragraph version:** nineteen days after deciding to "finish for personal use, then archive," the project has no mechanism that can ever conclude it is finished, is generating work at the rate it retires it, and has never once been used for the purpose it is being finished for. The process is excellent at executing whatever is in front of it — so what is in front of it must become a finite, tracked, ratified list. Everything below is ranked by how much it delays the archive goal, and every remediation is now a tracked issue (wave tracker: [#1278](https://github.com/Chris0Jeky/Taskdeck/issues/1278)). + +**Provenance:** six parallel dimension assessments over the repo, tracker, CI history, and local databases; all 15 critical/high claims adversarially verified by independent agents (5 confirmed, 10 adjusted — the corrected forms are what appear below; 0 refuted). Overstated claims that did not survive verification are called out explicitly rather than silently dropped. + +--- + +## 1. The central strategic problems + +### 1.1 There is no checkable definition of done, anywhere in the tracked repo (CRITICAL — confirmed) + +The only archive-closeout plan in existence is "Wave 8" in `ORCHESTRATOR.md` — a file that is **gitignored**, untracked, and undated. Pivot goal 3 in the canonical masterplan is, verbatim, "General quality — backend correctness + usability, **proactively found**" — an open-ended work-generation instruction with no bound. Goal 4 describes what archiving looks like but provides no trigger for when goals 2–3 are "done enough" to start it. A repo-wide search finds no exit criteria that survived the pivot: the masterplan's Exit Criteria sections sit inside a block bannered SUPERSEDED, and #996's "definition of done" is the pre-pivot Paper-maximalist one, contradicting the pivot's own "remaining Paper work is polish" framing. + +**Why this blocks finishing:** nothing checked in can ever evaluate to "quality is done, begin archiving." Every session inherits an unbounded instruction plus a fresh crop of review-seeded issues, and the process will run indefinitely at high quality. This is the root cause; every other strategic problem below is downstream of it. + +**Remediation:** #1278 (ARCHIVE-00) proposes the exit criteria (§5 below) for ratification, with a target archive date. + +### 1.2 The product has never been used by its one user (CRITICAL — verified, core holds) + +Every database on the machine was inspected. The canonical dev DB (`%LOCALAPPDATA%\Taskdeck\taskdeck-dev.db`) contains 4 DEMO boards and 11 cards seeded in a **19-second window** on 2026-07-02, plus one bare "chris" registration with zero content and onboarding never completed. The Api-folder DB has DEMO plus manual smoke-test boards, last touched 2026-04-23. The repo-root DB has 0 boards. There is manual *testing* data; there is **zero organic personal-work data**. No issue tracked dogfooding until this analysis. + +**Why this blocks finishing:** "finished for personal use" is unverifiable without a single day of personal use. Worse, real use is the cheapest and most accurate issue-generator available — two weeks of it would show which open issues matter and which are theater. Dogfooding is not a nice-to-have at the end; it is the acceptance test for the pivot, and it should start now, in parallel with everything else. + +**Remediation:** #1271 (ARCHIVE-03). Cannot be delegated to agents. + +### 1.3 The backlog self-replenishes at ~1:1 and nothing has ever been closed as not-planned (HIGH — adjusted) + +Since the pivot: 21 issues created, 19 closed, open count 43 → 45. All 19 closures were COMPLETED — **zero not-planned closures in 19 days**, meaning the plan's own terminal de-scope mechanism has never fired. The intake source is the review gate itself: substantive PRs seed ~0.75 review-surfaced follow-ups each (verifiable in the issue chains #1240→#1241→#1263→#1264→#1267→{#1262, #1242} and #1265→#1266), and goal 3's "proactively found" legitimizes unlimited intake. + +**Why this blocks finishing:** a backlog that refills as fast as it drains has no finish line regardless of velocity. The fix is not working harder — it is a written severity bar for seeding new issues (data loss, silent corruption, security exposure real under the single-user threat model), with everything below the bar fixed in-PR or recorded as dated accepted-risk. + +**Remediation:** #1269 (ARCHIVE-01). + +### 1.4 The backlog contradicts the pivot: ~31% of open issues are already decided (MEDIUM — adjusted, one hour to fix) + +14 of 45 open issues are items the plan has already decided to close: 12 de-scoped trackers (#531/#532/#537/#540/#544/#546/#548/#550/#1167/#655/#219/#217), #1137 ("effectively satisfied… pending close"), and #1194 (planned wontfix — SQLite-only forever). None of the 12 carries an on-issue pivot marker; six still carry Priority II labels; #531's body still says "multi-platform product." The authoritative docs *are* honest about the de-scope, so this is staleness rather than dishonesty — but the raw GitHub surface misleads, and the open-issue count is useless as a progress meter while a third of it is dead weight. + +**Remediation:** #1270 (ARCHIVE-02) — about an hour of closures, maintainer sign-off is the gate. + +### 1.5 Effort allocation drifted, and the paper process rules don't match practice (adjusted from several HIGH claims) + +What survived verification: of the 15 merged PRs in the #1248–#1268 range, one advanced Paper (the flip itself); 8 were quality follow-ups, 7 of them closing issues the agents' own post-pivot reviews had seeded. Wave-4 Paper polish has appeared in every handoff "next" list since 06-27 with zero merged PRs — because its items were a doc-only list in a gitignored file while the competing follow-ups were tracked issues fresh in context. Meanwhile a five-PR chain hardened Windows file ACLs and TOCTOU races against an attacker (another local account on the maintainer's personal machine) that the threat model does not contain, and #1245 built two net-new backend features + two ADRs + a new table when the recorded decision was "wire or remove" toast stubs — then needed two more PRs fixing bugs the new feature created. + +Two claims were **overstated and must not drive decisions**: the gate is not literally flat-rate (dependabot PRs merge with zero reviews; docs syncs merge in minutes — the gate is already tiered in practice; the real defect is that the docs *describe* a flat gate that is not applied), and the follow-up work is technically inside pivot goal 3, so this is sequencing drift within the pivot, not defection from it. + +**The honest corrections:** (a) write down the tiering that already exists so the docs stop misdescribing the process, and reserve the heavy gate for code that touches the loop; (b) make wave membership the admission ticket by giving every wave item a tracked issue; (c) adopt a no-new-backend-surface rule — no new tables, endpoints, or feature ADRs unless an exit criterion requires them; stubs get removed, not wired. + +**Remediation:** #1269 (ARCHIVE-01); wave items now tracked as #1272–#1277. + +### 1.6 The "canonical personal run path" has never existed (HIGH — confirmed) + +`release-desktop.yml` has **zero runs ever** (it supports `workflow_dispatch`; nobody ever pressed the button). Zero tags, zero releases. PR #1145 previously found the local build scripts had shipped flags likely producing a broken exe — undetected, because no one had ever run one. Yet the masterplan names the self-contained exe the canonical run path, and #1240 spent six review rounds hardening a first-run path whose end artifact has never been produced. The only proven run paths are dev-up and `dotnet run`. + +**Decision required — either branch is fine:** dispatch the workflow once, smoke-run the artifact, write the one-page doc; or demote the exe to optional and declare dev-up canonical. What is not fine is archiving with an aspirational canonical run path. + +**Remediation:** #1139 re-scope (folds in the #1123 tag decision). + +--- + +## 2. Product truth gaps — the actual "finish" work + +These decide whether the product is finished, and they received zero commits while ACL hardening and ring sweeps merged: + +- **#1235 (open since 06-19):** `GetProposalDiffAsync` builds the preview from the original proposal while Apply executes the latest revision. Verification confirmed a tested caveat ships in the Paper UI, so this is disclosed-stale rather than silent, and it only follows the user's own edit — but a review-first product whose approval diff can differ from execution is still the single most on-thesis open defect. Now re-scoped as the top engineering priority. +- **Today dossier fabrication (CONFIRMED; was untracked):** `useTodayDossier.ts` hard-codes a fictional "haiku" agent ledger, fake decisions with confidence scores, fake boards, fake carry-over cards, "9 cards moved / 2h 14m focus," and a "quiet Saturday" lede rendered daily — on the **default-theme daily surface** since the flip. Only cadence/streak/line-for-tomorrow/seal are live. The project's own precedent (#1217: fabricated numbers are a trust violation) applies squarely. Now tracked: #1272 (ARCHIVE-04). +- **Provenance names an actor that didn't act:** capture triage is pure deterministic extraction (no LLM call anywhere on the path), but provenance stamps the configured live provider — with live providers enabled it claims "OpenAi/gpt-4o-mini" for a regex run. One-file fix that also advertises a real strength (the loop works offline by design). Now tracked: #1273 (ARCHIVE-05). +- **Coverage inversion (CONFIRMED):** the unit suite globally pins Legacy, 30 of 32 E2E specs pin Legacy, Paper-DOM E2E has zero coverage of the core capture→review→approve loop, and the only axe suite runs exclusively against Legacy with color-contrast disabled. The UI the sole user sees every day is the least-tested UI. Now tracked: #1274 (ARCHIVE-06). + +--- + +## 3. Fix vs. write off — be decisive + +**Fix (bounded, on-thesis, or one-time decisions):** #1235; the Today dossier (#1272); the provenance stamp (#1273); Paper E2E re-point + Paper axe suite (#1274); dead-surface removal (#1276: ink-bleed decision, orphaned Paper code, cohorts stub, voice capture, Ollama marking, #1266); #1134's two cheap ACs only (migrations consolidation, regex-timeout logging); #1138 STATUS split; #1222 + #1227 as one banner-sweep PR; branch protection (#1173 — minutes of settings work; main currently has zero required checks and allows force-push on an agent-operated repo); the CI keep/kill/gate pass (#1275); #1128's two paying ACs (verify script, no-parallel xUnit collection); #1175's dependency half. + +**Write off explicitly, with dated notes (do not let these regenerate):** + +- **#1246** — already fixed in code by #1260; close as fixed. **#1194** — tests a deployment that cannot exist; close wontfix. +- **ci-extended / #1210** — corrected record: the lane has 554 lifetime successes and broke 2026-06-05 coinciding with PR #1196's workflow edits; Postgres coverage still runs green nightly via the full-solution job. One bounded fix session or retirement — but no lane may fail on every run at archive. +- **ci-nightly's 2 red jobs** — red 28 consecutive days (a k6 permission bug masking a possibly-real board-write threshold breach). Fix or remove; the other 11 jobs are green and worth keeping (#1275). +- **Mutation testing** — red 10+ weeks on a Stryker config error, no consumer; kill the schedule, correct STATUS.md (#1275). +- **#1262 / #1242 / #1261** — accepted-risk under the single-user threat model, with that threat model written into the exit-criteria doc so the finding class stops regenerating (#1270, #1278). **#1206** — document the claim-then-fetch contract and close, or fold a few-line fix into a bundle; not a standalone PR. +- **#1154** — annotate INV-10 as mechanism-shipped/enforcement-not-wired rather than building the wiring; do not archive with a safety invariant that reads as enforced but isn't (folded into #1134's re-scope). +- **#1134 ACs 4–7 and #1135's decomposition AC** — sized for a maintained product, not an archive; land the 30-minute guardrail, close the rest (re-scoped on both issues). +- **SAST half of #1175** — one bounded session or an explicit dated "advisory forever" decision; not an open-ended triage. +- **De-scoped trackers** (#531/#532/#537/#540/#544/#546/#548/#550/#1167/#655/#219/#217/#1137) — close now, not at an unscheduled future wave (#1270). +- **Ollama pseudo-streaming prototype** — mark experimental or delete in the dead-code pass; decide once (#1276). + +--- + +## 4. The plan — ordered, with completion conditions + +| Step | Work | Done when | Tracked as | +|---|---|---|---| +| **0** (this week, one session) | Ratify + commit `docs/ARCHIVE_EXIT_CRITERIA.md` (§5) with a target date; promote the waves into the masterplan; codify the two review tiers, intake severity bar, and no-new-backend-surface rule in CLAUDE.md/AGENTS.md | All merged. Work not on the list is, by definition, not taken | #1278, #1269 | +| **1** (same week, ~1 hour) | Close the ~16 already-decided issues with dated notes; strip stale priority labels | Every open issue maps to an exit criterion or a wave | #1270 | +| **2** (starts immediately, parallel) | Dogfood: manage real work — including this repo's own outstanding tasks — through the loop daily | ≥10 days of organic data exist | #1271 | +| **3** | Product-truth wave (FULL tier): revision-aware diff; Today dossier truth; provenance truth | Exit criteria (b)–(d) check | #1235, #1272, #1273 | +| **4** | Coverage + estate: Paper E2E/axe re-point; CI keep/kill/gate pass + ADR; branch protection; dead-surface removal | Paper core loop has E2E + axe; zero always-red lanes; protection live | #1274, #1275, #1276, #1173, #1210, #1228 | +| **5** | Run-path decision: dispatch + smoke the exe once, or demote it | Exit criterion (f) checks | #1139 (+ #1123) | +| **6** | Docs closeout (LIGHT tier): STATUS split; drift sweep; freshness pass | Governance green; drift issues closed | #1138, #1222 + #1227 | +| **4–6** (as capacity allows) | Bounded finish-or-close slices | Each issue closed on its re-scoped ACs | #1134, #1135, #1128, #1175, #1215 | +| **7** | Archive: README banner, final entries, tag decision, done-check | Every exit criterion checked | #1277 | + +At current velocity this is realistically **~6 weeks (~2026-08-15)** — but only if Steps 0–1 happen first, because they are what convert an unbounded process into a terminating one. + +--- + +## 5. Proposed archive exit criteria (for ratification via #1278) + +Status: **Proposed** — the maintainer ratifies (with edits) and commits as `docs/ARCHIVE_EXIT_CRITERIA.md`; until then this is the analysis's recommendation, not policy. + +- **(a)** Frozen Wave-4 Paper punch list (≤6 named items), each a tracked issue — no open-ended "polish". +- **(b)** Preview diff equals what Apply executes (#1235 fixed, with a regression test). +- **(c)** Every default-reachable surface shows real data or an honest empty state. +- **(d)** Provenance never names an actor that didn't act. +- **(e)** ≥10 days of organic personal-usage data in `%LOCALAPPDATA%\Taskdeck`. +- **(f)** Exactly one validated, documented run path. +- **(g)** STATUS split (#1138) and drift sweep (#1222/#1227) done. +- **(h)** Zero always-red CI lanes; branch protection real on main. +- **(i)** Every open issue closed or labeled parked-at-archive with a dated note. +- **(j)** README archive banner + final STATUS/masterplan entries + v0.1.0 tag decision executed. +- A named **target archive date**. +- A written **single-user threat model** (one local OS user; no untrusted local accounts; no hosted exposure) so ACL/TOCTOU-class findings stop regenerating. +- **Process riders:** two-tier review gate; issue-intake severity bar (dogfooding findings exempt); no-new-backend-surface rule. + +--- + +## 6. Related documents + +- [`PROJECT_TRAJECTORY.md`](PROJECT_TRAJECTORY.md) — strengths, goal scoring, and the sequencing rationale. +- [`IMPLEMENTATION_MASTERPLAN.md`](IMPLEMENTATION_MASTERPLAN.md) — Direction section (the pivot this document serves). +- GitHub tracker [#1278](https://github.com/Chris0Jeky/Taskdeck/issues/1278) — ARCHIVE-00: exit criteria ratification and the closeout wave (#1269–#1277 plus re-scoped #1235, #996, #1123, #1128, #1134, #1135, #1138, #1139, #1173, #1175, #1210, #1215, #1222, #1227, #1228). From 5591c531d0a4ad7afc16afb7011940f31c4fec6e Mon Sep 17 00:00:00 2001 From: Chris0Jeky Date: Thu, 2 Jul 2026 22:52:05 +0100 Subject: [PATCH 3/9] docs: register PROJECT_TRAJECTORY + COURSE_CORRECTION in INDEX root living docs and maintainer read path --- docs/INDEX.md | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/docs/INDEX.md b/docs/INDEX.md index 338e76832..6fdd424fb 100644 --- a/docs/INDEX.md +++ b/docs/INDEX.md @@ -11,6 +11,10 @@ Stable reference material belongs in topical subfolders. - Current shipped reality, verified state, current focus, and active constraints. - `IMPLEMENTATION_MASTERPLAN.md` - Delivery history, the archive-pivot direction (finish-for-personal-use → archive), and the priority-labeled backlog map. *(The forward "horizons" / "release framing" / priority tranches are historical pre-pivot framing; the active sequence is the Direction-section waves.)* +- `PROJECT_TRAJECTORY.md` + - 2026-07-02 whole-project analysis, part 1: what the project genuinely does well, the four pivot goals honestly scored, and the effective remaining path (adversarially verified evidence; closeout wave tracker `#1278`). +- `COURSE_CORRECTION.md` + - 2026-07-02 whole-project analysis, part 2: the central strategic and execution problems, fix-vs-write-off calls, the ordered closeout plan with completion conditions, and the proposed archive exit criteria (ratification via `#1278`). - `GOLDEN_PRINCIPLES.md` - Stable repository invariants and decision rules. - `ISSUE_EXECUTION_GUIDE.md` @@ -39,7 +43,7 @@ Stable reference material belongs in topical subfolders. - Regular product user: - `START_HERE.md` -> `manual/02_home_and_today.md` -> `manual/03_projects_and_cards.md` -> `manual/08_recipes.md` - Maintainer or planner: - - `STATUS.md` -> `IMPLEMENTATION_MASTERPLAN.md` -> `ISSUE_EXECUTION_GUIDE.md` -> `TESTING_GUIDE.md` + - `STATUS.md` -> `IMPLEMENTATION_MASTERPLAN.md` -> `PROJECT_TRAJECTORY.md` -> `COURSE_CORRECTION.md` -> `ISSUE_EXECUTION_GUIDE.md` -> `TESTING_GUIDE.md` - active execution order: the archive-pivot **waves** in the Direction section of `IMPLEMENTATION_MASTERPLAN.md` (Paper UI activation → easy local run → general quality → archive). *Historical* roadmap input: root `taskdeck-12-week-roadmap-v4.md`, tracker `#972` (RFAI complete 2026-05-29, superseded by the archive pivot) - Contributor or agent: - `STATUS.md` -> `IMPLEMENTATION_MASTERPLAN.md` -> `GOLDEN_PRINCIPLES.md` -> `ISSUE_EXECUTION_GUIDE.md` -> `MCP_TOOLING_GUIDE.md` -> `../autodoc/AGENT_INDEX.md` -> `agentic/SKILL_REGISTRY.md` From a22048814c6ca18f220faa1e22db1d8cacc0d8b6 Mon Sep 17 00:00:00 2001 From: Chris0Jeky Date: Thu, 2 Jul 2026 22:52:05 +0100 Subject: [PATCH 4/9] docs: add the two analysis docs to CLAUDE.md Key Docs --- CLAUDE.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/CLAUDE.md b/CLAUDE.md index 9142951dd..ee6109836 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -170,6 +170,8 @@ ADRs live in `docs/decisions/`. See `docs/decisions/README.md` for the template - `docs/STATUS.md` -- current shipped reality (what is true now) - `docs/IMPLEMENTATION_MASTERPLAN.md` -- delivery history, roadmap, and planned work (what was done and what comes next) +- `docs/PROJECT_TRAJECTORY.md` -- 2026-07-02 whole-project analysis: strengths, pivot-goal scoring, and the remaining path to archive (closeout tracker `#1278`) +- `docs/COURSE_CORRECTION.md` -- 2026-07-02 whole-project analysis: what must change (strategy + execution), the ordered closeout plan, and the proposed archive exit criteria - `docs/GOLDEN_PRINCIPLES.md` -- stable invariants - `docs/decisions/INDEX.md` -- architecture decision records - `docs/TESTING_GUIDE.md` -- test operations reference From c4e8baabf289acc112a510d100f3ae86135b9f39 Mon Sep 17 00:00:00 2001 From: Chris0Jeky Date: Thu, 2 Jul 2026 22:52:05 +0100 Subject: [PATCH 5/9] docs: OUTSTANDING_TASKS - add archive-closeout wave section D (#1269-#1278) + changelog entry --- OUTSTANDING_TASKS.md | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/OUTSTANDING_TASKS.md b/OUTSTANDING_TASKS.md index bc6c404db..d8a392f1c 100644 --- a/OUTSTANDING_TASKS.md +++ b/OUTSTANDING_TASKS.md @@ -50,9 +50,27 @@ Last reviewed: 2026-06-19 > Full audit context and the complete gap inventory: **GitHub issue #1142** (master tracker). +## D. Archive closeout wave (seeded by the 2026-07-02 whole-project analysis) + +Analysis docs: `docs/PROJECT_TRAJECTORY.md` (strengths + path) and `docs/COURSE_CORRECTION.md` (what must change + ordered plan). Wave tracker: **#1278** (ARCHIVE-00). + +- [ ] **#1278** — ARCHIVE-00: ratify the archive exit criteria + target date; promote the closeout waves into the masterplan. *(Maintainer decision — the stop condition for pivot goal 3.)* +- [ ] **#1269** — ARCHIVE-01: codify the two-tier review gate (LIGHT/FULL), issue-intake severity bar, no-new-backend-surface rule. +- [ ] **#1270** — ARCHIVE-02: backlog triage hour — close ~16 already-decided issues with dated pivot notes. *(Maintainer sign-off on the list.)* +- [ ] **#1271** — ARCHIVE-03: dogfooding sprint — ≥10 days of real personal use (the pivot's acceptance test; cannot be delegated). +- [ ] **#1272** — ARCHIVE-04: Today dossier truth — de-stub the fabricated default daily surface (`useTodayDossier.ts` buildStubDossier). +- [ ] **#1273** — ARCHIVE-05: capture-triage provenance names the deterministic extractor, not the uninvolved LLM provider. +- [ ] **#1274** — ARCHIVE-06: re-point E2E + axe coverage at the Paper UI (currently the least-tested UI). +- [ ] **#1275** — ARCHIVE-07: CI estate right-sizing — keep/kill/gate per lane + short ADR (nightly red 28 days; mutation red 10+ weeks). +- [ ] **#1276** — ARCHIVE-08: dead-surface removal — ink-bleed decision, orphaned Paper code, cohorts stub, voice capture, Ollama marking. +- [ ] **#1277** — ARCHIVE-09: final archive pass — README banner, final doc entries, tag decision, exit-criteria done-check. +- [ ] **#1235** (re-scoped) — top engineering priority: revision-aware proposal diff (preview must equal what Apply executes). +- [ ] Re-scope comments posted on: #996, #1123/#1139, #1128, #1134 (+#1154 decision), #1135, #1138, #1173, #1175 (+#1174), #1210, #1215, #1222 (+#1227), #1228 — each carries updated finish-or-close ACs. + --- ## Changelog +- 2026-07-02: **Whole-project analysis delivered + archive closeout wave seeded.** Multi-agent analysis (6 dimensions, 15 claims adversarially verified: 5 confirmed / 10 adjusted / 0 refuted) produced `docs/PROJECT_TRAJECTORY.md` + `docs/COURSE_CORRECTION.md`. Seeded issues #1269–#1278 (ARCHIVE-00..09, new `archive-closeout` label) and posted re-scope comments on 14 existing issues. Added §D above. Central findings: no checkable definition of done existed in the tracked repo; zero organic personal-usage data; the default Paper UI is the least-tested UI; the "canonical" exe run path has never been built; ~31% of open issues already decided-closed by the pivot but still open. - 2026-06-19 (later): **Merge hold lifted — deck merged.** The maintainer lifted the hold and all four PRs shipped to `main`: **#1220** (canonical-docs reconciliation; 14 Codex rounds + 3 drift sweeps), **#1219** (Paper File-away dismiss, closes #1161), **#1221** (reachable in-app Appearance theme toggle — a Paper-activation prerequisite), **#1225** (StackExchange.Redis + SignalR-backplane semver-major caps). Post-merge STATUS/masterplan sync in PR #1233. Seeded during this work: #1226 (net8.0 upgrade), #1227 (dated-snapshot staleness), #1228 (cd-staging-gate auto-trigger), + the #1195 GDPR caller-audit. Next: the Paper-review de-stubs (last Wave-2 blocker before the default-theme flip) — `onPreviewDiff` in PR #1234. - 2026-06-19: **Maintainer check-offs confirmed** — **#1161** (Paper File-away dismiss, PR #1219), **#1164** (cross-process Migrate, PR #1186), **#1189** (Redis lock starvation, PR #1213), **#1198** (dead `ProposalGeneratorV1` removed, PR #1214), and **#1135 partial** (paper-night straggler tokens, PR #1216) marked done. Also: PR #1223 (npm group) merged; PR #1224 (nuget) closed (framework-major bumps rejected per ADR-0039 net8.0 pin); PR #1225 opened (StackExchange.Redis major cap). PRs #1219/#1220/#1221 fully reviewed + green + aged but **merges held by maintainer**. Maintainer decision: revisit net8.0 framework-major upgrade later (issue seeded). ADR-0004 stays "Accepted" with the never-implemented note (TenantId never built; isolation is per-UserId/board-access). - 2026-06-13: **Archive-pivot wave (Waves 0–2) merged — 17 PRs** (see STATUS.md "Archive-pivot delivery wave"). Direction is now **finish-for-personal-use → archive** (supersedes ship-first); distribution tracks (#1167 code-signing, #544/#546/#550 GTM, #537/#548 cloud, #540 mobile) are de-scoped and will be closed not-planned in archive closeout. **Maintainer check-off pending** for items this wave appears to deliver: **#1140** (dev-up + clean-workspace scripts, PR #1208), **#1139** AC1 (compose-secret quickstart docs, PR #1205), **#1135** partial (paper-night straggler tokens, PR #1216 — guardrail/decomposition half still open), **#1189** (Redis lock starvation, PR #1213), **#1198** (dead `ProposalGeneratorV1` removed, PR #1214 — follow-up #1215 seeded). Not auto-checked per rule 3. **#1161** (Paper "File away" dismiss) built on the #1217 shared-actionability foundation and is in review as PR #1219 (awaiting CI/aging). New issues seeded: #1209, #1215, #1218. From 173fc9b2f8c2675e4920b6314cd7f521111967e5 Mon Sep 17 00:00:00 2001 From: Chris0Jeky Date: Thu, 2 Jul 2026 22:56:09 +0100 Subject: [PATCH 6/9] docs: register PROJECT_TRAJECTORY + COURSE_CORRECTION as root living docs with update triggers and ARCHIVE-09 end-of-life (review MEDIUM-1) --- docs/LIVING_DOCUMENTS_GUIDE.md | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/docs/LIVING_DOCUMENTS_GUIDE.md b/docs/LIVING_DOCUMENTS_GUIDE.md index 598bc8db6..9b555c019 100644 --- a/docs/LIVING_DOCUMENTS_GUIDE.md +++ b/docs/LIVING_DOCUMENTS_GUIDE.md @@ -60,6 +60,24 @@ High-churn sections: - MVP expansion wave carry-forward - out-of-code/configuration coverage +### `docs/PROJECT_TRAJECTORY.md` + +Root placement rationale: passes the promotion rule below ("a recurring truth needed every session") — it scores the archive-pivot goals and carries the closeout sequencing that steers every remaining session until archive. End-of-life: at ARCHIVE-09 (#1277) it is annotated as final/historical (or moved to `docs/analysis/`) — it does not outlive the closeout as a living doc. + +Update when: +- a pivot-goal score materially changes (e.g. Paper coverage re-pointed, run path validated) +- the closeout sequencing or wave membership changes +- an archive exit criterion is met + +### `docs/COURSE_CORRECTION.md` + +Root placement rationale: same as `PROJECT_TRAJECTORY.md` — it carries the ordered closeout plan and the proposed archive exit criteria (ratification via `#1278`). End-of-life: same ARCHIVE-09 rule. + +Update when: +- the exit criteria are ratified or amended (mark §5 Accepted with a date) +- a plan step completes (record the date against its completion condition) +- a fix-vs-write-off call is reversed by the maintainer + ### `docs/GOLDEN_PRINCIPLES.md` Update when: From b73c2191fb712a963ead04fefa6e7672b5b47df6 Mon Sep 17 00:00:00 2001 From: Chris0Jeky Date: Thu, 2 Jul 2026 22:56:09 +0100 Subject: [PATCH 7/9] docs: qualify backlog counts as at-analysis-time pre-seeding snapshots (review MEDIUM-2) --- docs/COURSE_CORRECTION.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/COURSE_CORRECTION.md b/docs/COURSE_CORRECTION.md index 47d15df40..045765fc8 100644 --- a/docs/COURSE_CORRECTION.md +++ b/docs/COURSE_CORRECTION.md @@ -30,7 +30,7 @@ Every database on the machine was inspected. The canonical dev DB (`%LOCALAPPDAT ### 1.3 The backlog self-replenishes at ~1:1 and nothing has ever been closed as not-planned (HIGH — adjusted) -Since the pivot: 21 issues created, 19 closed, open count 43 → 45. All 19 closures were COMPLETED — **zero not-planned closures in 19 days**, meaning the plan's own terminal de-scope mechanism has never fired. The intake source is the review gate itself: substantive PRs seed ~0.75 review-surfaced follow-ups each (verifiable in the issue chains #1240→#1241→#1263→#1264→#1267→{#1262, #1242} and #1265→#1266), and goal 3's "proactively found" legitimizes unlimited intake. +At analysis time (2026-07-02, before this analysis seeded the closeout wave): 21 issues created since the pivot, 19 closed, open count 43 → 45. All 19 closures were COMPLETED — **zero not-planned closures in 19 days**, meaning the plan's own terminal de-scope mechanism has never fired. The intake source is the review gate itself: substantive PRs seed ~0.75 review-surfaced follow-ups each (verifiable in the issue chains #1240→#1241→#1263→#1264→#1267→{#1262, #1242} and #1265→#1266), and goal 3's "proactively found" legitimizes unlimited intake. **Why this blocks finishing:** a backlog that refills as fast as it drains has no finish line regardless of velocity. The fix is not working harder — it is a written severity bar for seeding new issues (data loss, silent corruption, security exposure real under the single-user threat model), with everything below the bar fixed in-PR or recorded as dated accepted-risk. @@ -38,7 +38,7 @@ Since the pivot: 21 issues created, 19 closed, open count 43 → 45. All 19 clos ### 1.4 The backlog contradicts the pivot: ~31% of open issues are already decided (MEDIUM — adjusted, one hour to fix) -14 of 45 open issues are items the plan has already decided to close: 12 de-scoped trackers (#531/#532/#537/#540/#544/#546/#548/#550/#1167/#655/#219/#217), #1137 ("effectively satisfied… pending close"), and #1194 (planned wontfix — SQLite-only forever). None of the 12 carries an on-issue pivot marker; six still carry Priority II labels; #531's body still says "multi-platform product." The authoritative docs *are* honest about the de-scope, so this is staleness rather than dishonesty — but the raw GitHub surface misleads, and the open-issue count is useless as a progress meter while a third of it is dead weight. +At analysis time, 14 of the 45 open issues (pre-seeding count, 2026-07-02) were items the plan has already decided to close: 12 de-scoped trackers (#531/#532/#537/#540/#544/#546/#548/#550/#1167/#655/#219/#217), #1137 ("effectively satisfied… pending close"), and #1194 (planned wontfix — SQLite-only forever). None of the 12 carries an on-issue pivot marker; six still carry Priority II labels; #531's body still says "multi-platform product." The authoritative docs *are* honest about the de-scope, so this is staleness rather than dishonesty — but the raw GitHub surface misleads, and the open-issue count is useless as a progress meter while a third of it is dead weight. **Remediation:** #1270 (ARCHIVE-02) — about an hour of closures, maintainer sign-off is the gate. From 135cc27903abc52ec3ed2f4f993c4096abc3982f Mon Sep 17 00:00:00 2001 From: Chris0Jeky Date: Thu, 2 Jul 2026 22:56:09 +0100 Subject: [PATCH 8/9] docs: OUTSTANDING_TASKS - convert completed re-scope record from open checkbox to plain note (review MEDIUM-3) --- OUTSTANDING_TASKS.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/OUTSTANDING_TASKS.md b/OUTSTANDING_TASKS.md index d8a392f1c..de4dfb926 100644 --- a/OUTSTANDING_TASKS.md +++ b/OUTSTANDING_TASKS.md @@ -65,7 +65,7 @@ Analysis docs: `docs/PROJECT_TRAJECTORY.md` (strengths + path) and `docs/COURSE_ - [ ] **#1276** — ARCHIVE-08: dead-surface removal — ink-bleed decision, orphaned Paper code, cohorts stub, voice capture, Ollama marking. - [ ] **#1277** — ARCHIVE-09: final archive pass — README banner, final doc entries, tag decision, exit-criteria done-check. - [ ] **#1235** (re-scoped) — top engineering priority: revision-aware proposal diff (preview must equal what Apply executes). -- [ ] Re-scope comments posted on: #996, #1123/#1139, #1128, #1134 (+#1154 decision), #1135, #1138, #1173, #1175 (+#1174), #1210, #1215, #1222 (+#1227), #1228 — each carries updated finish-or-close ACs. +- *(Record, already done 2026-07-02:)* re-scope comments posted on #996, #1123/#1139, #1128, #1134 (+#1154 decision), #1135, #1138, #1173, #1175 (+#1174), #1210, #1215, #1222 (+#1227), #1228 — each carries updated finish-or-close ACs. --- From 3d99a02fbe0125e8ea789f862aae0085fbb85f35 Mon Sep 17 00:00:00 2001 From: Chris0Jeky Date: Fri, 3 Jul 2026 20:06:29 +0100 Subject: [PATCH 9/9] docs: use #NNNN shorthand for tracker refs (Gemini review) Replace hardcoded absolute GitHub issue URLs with #1278 shorthand in COURSE_CORRECTION.md (x2) and PROJECT_TRAJECTORY.md (x1) so links stay robust across repo rename/move and match the shorthand convention used throughout the docs. Addresses gemini-code-assist inline suggestions. --- docs/COURSE_CORRECTION.md | 4 ++-- docs/PROJECT_TRAJECTORY.md | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/docs/COURSE_CORRECTION.md b/docs/COURSE_CORRECTION.md index 045765fc8..29f95e116 100644 --- a/docs/COURSE_CORRECTION.md +++ b/docs/COURSE_CORRECTION.md @@ -4,7 +4,7 @@ Last Updated: 2026-07-02 **Audience:** the maintainer. This is the unflattering half of the 2026-07-02 whole-project analysis; the sibling [`PROJECT_TRAJECTORY.md`](PROJECT_TRAJECTORY.md) covers what the project does well and the effective path forward. The engineering quality is real — that is established there and not re-argued here. -**The one-paragraph version:** nineteen days after deciding to "finish for personal use, then archive," the project has no mechanism that can ever conclude it is finished, is generating work at the rate it retires it, and has never once been used for the purpose it is being finished for. The process is excellent at executing whatever is in front of it — so what is in front of it must become a finite, tracked, ratified list. Everything below is ranked by how much it delays the archive goal, and every remediation is now a tracked issue (wave tracker: [#1278](https://github.com/Chris0Jeky/Taskdeck/issues/1278)). +**The one-paragraph version:** nineteen days after deciding to "finish for personal use, then archive," the project has no mechanism that can ever conclude it is finished, is generating work at the rate it retires it, and has never once been used for the purpose it is being finished for. The process is excellent at executing whatever is in front of it — so what is in front of it must become a finite, tracked, ratified list. Everything below is ranked by how much it delays the archive goal, and every remediation is now a tracked issue (wave tracker: #1278). **Provenance:** six parallel dimension assessments over the repo, tracker, CI history, and local databases; all 15 critical/high claims adversarially verified by independent agents (5 confirmed, 10 adjusted — the corrected forms are what appear below; 0 refuted). Overstated claims that did not survive verification are called out explicitly rather than silently dropped. @@ -134,4 +134,4 @@ Status: **Proposed** — the maintainer ratifies (with edits) and commits as `do - [`PROJECT_TRAJECTORY.md`](PROJECT_TRAJECTORY.md) — strengths, goal scoring, and the sequencing rationale. - [`IMPLEMENTATION_MASTERPLAN.md`](IMPLEMENTATION_MASTERPLAN.md) — Direction section (the pivot this document serves). -- GitHub tracker [#1278](https://github.com/Chris0Jeky/Taskdeck/issues/1278) — ARCHIVE-00: exit criteria ratification and the closeout wave (#1269–#1277 plus re-scoped #1235, #996, #1123, #1128, #1134, #1135, #1138, #1139, #1173, #1175, #1210, #1215, #1222, #1227, #1228). +- GitHub tracker #1278 — ARCHIVE-00: exit criteria ratification and the closeout wave (#1269–#1277 plus re-scoped #1235, #996, #1123, #1128, #1134, #1135, #1138, #1139, #1173, #1175, #1210, #1215, #1222, #1227, #1228). diff --git a/docs/PROJECT_TRAJECTORY.md b/docs/PROJECT_TRAJECTORY.md index 533e1cd56..426d7dc3b 100644 --- a/docs/PROJECT_TRAJECTORY.md +++ b/docs/PROJECT_TRAJECTORY.md @@ -90,4 +90,4 @@ At the velocity the Paper arc demonstrated, this is roughly **4–6 weeks of ses - [`COURSE_CORRECTION.md`](COURSE_CORRECTION.md) — the problems, the fix-vs-write-off calls, and the ordered plan with completion conditions. - [`IMPLEMENTATION_MASTERPLAN.md`](IMPLEMENTATION_MASTERPLAN.md) — Direction section (the pivot itself). - [`STATUS.md`](STATUS.md) — current shipped reality. -- GitHub tracker [#1278](https://github.com/Chris0Jeky/Taskdeck/issues/1278) — ARCHIVE-00, the closeout wave and exit criteria. +- GitHub tracker #1278 — ARCHIVE-00, the closeout wave and exit criteria.