chore(M001/S01): auto-commit after rewrite-docs

This commit is contained in:
2026-03-24 12:11:32 +01:00
parent 00af8d58ca
commit 36f8b54e70
8 changed files with 85 additions and 53 deletions
+24 -24
View File
@@ -4,6 +4,17 @@ This file is the explicit capability and coverage contract for the project.
## Active
### R002 — Gmail connection, message retrieval, thread import, and linked-thread refresh must help the user pull real correspondence into the right job and keep it current with materially less manual cleanup.
- Class: integration
- Status: active
- Description: Gmail connection, message retrieval, single-message/thread import, and linked-thread refresh must help the user pull real correspondence into the right job, preserve full thread continuity, and automatically surface later inbound or user-sent replies without requiring manual re-import of the thread.
- Why it matters: Gmail import is one of the two clearest current weaknesses and a major trust surface for daily use; one-time import alone is not enough if the thread immediately goes stale.
- Source: user
- Primary owning slice: M001/S01
- Supporting slices: M001/S03, M001/S05
- Validation: remapped after override; previous S01 validation covered ranked import and persisted thread metadata, but the requirement now also includes full-thread continuity and automatic refresh of linked Gmail threads.
- Notes: This requirement was previously treated as validated for one-time import quality. The 2026-03-24 override re-opened it by raising the bar to include ongoing thread sync.
### R008 — The app may draft application, reply, and follow-up content, but it must not auto-send emails or auto-apply to jobs.
- Class: constraint
- Status: active
@@ -26,16 +37,16 @@ This file is the explicit capability and coverage contract for the project.
- Validation: mapped
- Notes: Shared/team workflows are not the current product target.
### R010 — The app must preserve a coherent history across manual status changes, imported Gmail correspondence, reminders, and follow-up work.
### R010 — The app must preserve a coherent history across manual status changes, imported Gmail correspondence, linked-thread updates, reminders, and follow-up work.
- Class: continuity
- Status: active
- Description: The app must preserve a coherent history across manual status changes, imported Gmail correspondence, reminders, and follow-up work.
- Why it matters: The product promise is to keep the thread of the job search intact over time.
- Description: The app must preserve a coherent history across manual status changes, imported Gmail correspondence, linked-thread updates, reminders, and follow-up work.
- Why it matters: The product promise is to keep the thread of the job search intact over time, including new Gmail replies that happen after the first import.
- Source: user
- Primary owning slice: M001/S04
- Supporting slices: M001/S01, M001/S03, M001/S05
- Validation: mapped
- Notes: This is part of what makes the app a tracker and follow-up system, not just a draft generator.
- Notes: This now explicitly includes automatic continuity for already-linked Gmail threads so the correspondence timeline does not become a stale snapshot.
## Validated
@@ -50,17 +61,6 @@ This file is the explicit capability and coverage contract for the project.
- Validation: S01 completed with a job-scoped Gmail import loop wired into the job workspace: backend `GET /api/gmail/job-candidates` uses the owned job as context, imports target that job directly, and focused UI verification passed in `job-tracker-ui/src/correspondence-gmail-import.test.tsx`.
- Notes: Validation is contract/UI-level plus workspace integration. Live user UAT of the broader milestone loop still remains for later slices.
### R002 — Gmail connection, message retrieval, and message/thread import must help the user pull real correspondence into the right job with materially less manual cleanup.
- Class: integration
- Status: validated
- Description: Gmail connection, message retrieval, and message/thread import must help the user pull real correspondence into the right job with materially less manual cleanup.
- Why it matters: Gmail import is one of the two clearest current weaknesses and a major trust surface for daily use.
- Source: user
- Primary owning slice: M001/S01
- Supporting slices: M001/S03, M001/S05
- Validation: S01 completed with backend-ranked job-aware Gmail candidates, explicit imported/skipped import payloads, persisted thread/sender/recipient metadata, and focused verification across isolated `GmailControllerTests` plus `CI=true npm --prefix job-tracker-ui test -- --watch=false --runTestsByPath src/correspondence-gmail-import.test.tsx`.
- Notes: The broader JobTrackerApi.Tests project still has unrelated compile drift, so Gmail backend coverage was isolated instead of run through the full test project. Live Gmail UAT is still needed to judge trust on a real inbox.
### R003 — Tailored CV and cover-letter drafts must feel specific, credible, and good enough that the user wants to start from them.
- Class: differentiator
- Status: validated
@@ -114,7 +114,7 @@ This file is the explicit capability and coverage contract for the project.
- Primary owning slice: M001/S03
- Supporting slices: M001/S02, M001/S04
- Validation: Validated by M001/S03 and M001/S04: the per-job workspace now supports imported correspondence review, package drafting, follow-up drafting, and routed entry from overview surfaces, with focused tests and browser verification covering package and follow-up loops.
- Notes: S01-S04 now make the individual job workspace the real execution surface for import, drafting, and follow-up work.
- Notes: S01-S04 now make the individual job workspace the real execution surface for import, drafting, and follow-up work. The reopened Gmail continuity work extends what that correspondence review surface must keep current over time.
## Deferred
@@ -129,16 +129,16 @@ This file is the explicit capability and coverage contract for the project.
- Validation: unmapped
- Notes: Deferred because Gmail import and draft quality are higher-value first fixes.
### R012 — The product may later add richer message understanding, smarter thread handling, and broader inbox-aware assistance after the first Gmail milestone.
### R012 — The app may later add richer message understanding, smarter thread handling, and broader inbox-aware assistance after the first Gmail milestone.
- Class: integration
- Status: deferred
- Description: The product may later add richer message understanding, smarter thread handling, and broader inbox-aware assistance after the first Gmail milestone.
- Description: The app may later add richer message understanding, smarter thread handling, and broader inbox-aware assistance after the first Gmail milestone.
- Why it matters: This extends the correspondence workflow, but it depends on getting the initial import/matching loop right first.
- Source: inferred
- Primary owning slice: M003/S01
- Supporting slices: none
- Validation: unmapped
- Notes: This is the natural next step after M001 proves the core Gmail path.
- Notes: This is the natural next step after M001 proves the core Gmail path, including linked-thread continuity.
### R013 — The app may later add broader strategic coaching and more advanced guidance beyond application package and follow-up/reply drafting.
- Class: differentiator
@@ -173,7 +173,7 @@ This file is the explicit capability and coverage contract for the project.
- Primary owning slice: none
- Supporting slices: none
- Validation: n/a
- Notes: Drafting is allowed; autonomous sending is not.
- Notes: Drafting is allowed; autonomous sending is not. Automatic thread refresh/import of already-sent Gmail replies is allowed because it reflects history after the user sends manually.
### R016 — The product will not optimize for shared pipelines, recruiter operations, or multi-user coaching workflows right now.
- Class: out-of-scope
@@ -202,7 +202,7 @@ This file is the explicit capability and coverage contract for the project.
| ID | Class | Status | Primary owner | Supporting | Proof |
|---|---|---|---|---|---|
| R001 | primary-user-loop | validated | M001/S01 | M001/S05 | S01 completed with a job-scoped Gmail import loop wired into the job workspace: backend `GET /api/gmail/job-candidates` uses the owned job as context, imports target that job directly, and focused UI verification passed in `job-tracker-ui/src/correspondence-gmail-import.test.tsx`. |
| R002 | integration | validated | M001/S01 | M001/S03, M001/S05 | S01 completed with backend-ranked job-aware Gmail candidates, explicit imported/skipped import payloads, persisted thread/sender/recipient metadata, and focused verification across isolated `GmailControllerTests` plus `CI=true npm --prefix job-tracker-ui test -- --watch=false --runTestsByPath src/correspondence-gmail-import.test.tsx`. |
| R002 | integration | active | M001/S01 | M001/S03, M001/S05 | Remapped after the 2026-03-24 override: ranked import and metadata persistence exist, but the requirement now also includes full-thread continuity and automatic refresh of linked Gmail threads so later inbound/user-sent replies appear without manual re-import. |
| R003 | differentiator | validated | M001/S02 | M001/S05 | Validated by M001/S02: backend application-package generation now uses recruiter/job/profile/attachment/imported-correspondence context, focused backend tests pass in an isolated harness, and the Tailored CV workspace test proves generation, editing, save, and saved-state redisplay behavior. |
| R004 | primary-user-loop | validated | M001/S03 | M001/S01, M001/S02, M001/S05 | Validated by M001/S03: follow-up draft generation now consumes imported correspondence plus saved application package material, focused backend follow-up tests pass in an isolated harness, the focused React follow-up test passes, and browser verification on the built branch UI proved the grounded follow-up draft plus manual send/log flow back into correspondence. |
| R005 | continuity | validated | M001/S04 | M001/S05 | Validated by M001/S04: the job table now exposes actionable urgency chips that route directly into the relevant job workspace tab, focused daily-loop UI tests pass, and browser verification confirmed the table/dashboard/reminders flow routes into the same workspace model. |
@@ -221,7 +221,7 @@ This file is the explicit capability and coverage contract for the project.
## Coverage Summary
- Active requirements: 3
- Mapped to slices: 3
- Validated: 7 (R001, R002, R003, R004, R005, R006, R007)
- Active requirements: 4
- Mapped to slices: 4
- Validated: 6 (R001, R003, R004, R005, R006, R007)
- Unmapped active requirements: 0