Skip to Content
PlansPlans Log

Plans Log

Source: plans/PLANS-LOG.md · synced 2026-06-12

What this is. A live register of every plan document in the build, grouped by Step → Phase. Plans are written before code (design-first discipline). This log makes the decision trail auditable: what was planned, what shipped, what was superseded, and why.

Spine: the 12 Steps in SOURCE-OF-TRUTH.md §2 — Steps 1–9 are the pipeline a JD runs through; Steps 10–12 are non-pipeline build tracks (productisation, audit prep, infra).

Status legend: ✅ Shipped · 🟢 Approved (canonical) · 🟡 Active (build pending) · 📝 Draft (awaiting greenlight) · ⚠️ Superseded · 🗄️ Archived

Last updated: 2026-06-03.


1. Register — grouped by Step → Phase

Step 1 — JD ingested

PhasePlanStatusNotes
1.1 — JD upload + text extractionpipeline-1.1+2.1+3.2+6.1+7.1+7.2+8.1-matching-engine-design (shared §JD Parser)🟡 ActiveReuses CV extractor pattern.
1.1 — JD upload + text extractionpipeline-1.1+2.1+3.2+6.1+7.1+7.2+8.1-matching-engine-impl (Tasks 1–3)🟡 ActiveImplementation tasks shared with Step 2.

Step 2 — JD parsed

PhasePlanStatusNotes
2.1 — JD parser buildpipeline-1.1+2.1+3.2+6.1+7.1+7.2+8.1-matching-engine-design §“JD Parser — Output Schema”🟡 ActiveClaude tool-use → ParsedJD.
2.1 — JD parser buildpipeline-1.1+2.1+3.2+6.1+7.1+7.2+8.1-matching-engine-impl (Tasks 1–3)🟡 ActiveShared with Step 1.

Step 3 — JD normalised + tagged

PhasePlanStatusNotes
3.1 — Tag-vocab bootstrapstep-3.1-vocab-bootstrap-design🟢 ApprovedData-driven pilot (Stage 1–5). Output: config/tag-vocab.json. Unblocks the entire matching build.
3.1 — Tag-vocab bootstrapstep-3.1-vocab-bootstrap-impl🟢 Build complete · ⏳ Ratification pendingTasks 1–10 shipped via subagent-driven dev on calibre-app/feat/vocab-bootstrap (12 commits, 19 files, 47 tests). Remaining: Task 11 (live pipeline run, ~USD 5–10) → Task 12 (Calibre-team ratification session).
3.1 — Tag-vocab bootstrap (extended)amendment-3.1+5.3+6.1-bootstrap-rubric-extension📝 Draft 2026-06-11Extends the 3.1 mine to also emit Step 5.3 hard rules + 22 sub-vertical rubric configs in one live run. Combined ratification session. ~USD 20–40. Cross-references Steps 5.4 + 6.1.
3.2 — JD normaliser buildpipeline-1.1+2.1+3.2+6.1+7.1+7.2+8.1-matching-engine-design §“JD Normaliser — Output Schema”🟡 ActiveSchema overridden by amendment-3.2+5.2+6.1-taxonomy-3level.
3.2 — JD normaliser buildpipeline-1.1+2.1+3.2+6.1+7.1+7.2+8.1-matching-engine-impl (Tasks 4–6)🟡 ActiveBuild pending. Precondition: Step 3.1 vocab locked.
3.2 — JD normaliser buildamendment-3.2+5.2+6.1-taxonomy-3level🟢 ApprovedCanonical. Ripples 3-level taxonomy through NormalisedJD, NormalisedCV, Layer1Result, rubric loader, adjacency resolver.

Step 4 — Sourcing (candidate + employer scraping)

PhasePlanStatusNotes
4.1 — Apify candidate scrapingpipeline-4-sourcing-design⏸️ Deferred 2026-06-11Covers all 4 sub-steps. NormalisedJD → search query → 100 profiles/JD.
4.2 — Apollo enrichmentpipeline-4-sourcing-design⏸️ Deferred 2026-06-11Employer firmographics + decision-maker chain.
4.3 — Anymail Finderpipeline-4-sourcing-design⏸️ Deferred 2026-06-11Verified emails, confidence ≥ 0.8 threshold.
4.4 — Employer-side BD scrapingpipeline-4-sourcing-design⏸️ Deferred 2026-06-11Grant-required (AD1 employer-side). Lands in separate bd_leads table.

Step 5 — CV parsed + normalised + matched 1:1

PhasePlanStatusNotes
5.0 — Candidate-record mergestep-5.0-candidate-merge-design📝 Draft 2026-06-11Bridge between Step 4 sourcing and Step 5.1.1 parsing. Defines CandidateRecord schema + merge algorithm. Impl plan pending greenlight.
5.1.1 — CV parser corestep-5.1.1-cv-parser-design✅ ShippedApproved by Ben. Code: calibre-app/src/lib/cv-parser/.
5.1.1 — CV parser corestep-5.1.1-cv-parser-impl✅ Shipped7 tasks. 66+ CVs batch-tested. Retained for audit traceability.
5.1.2 — CV parser hardeningstep-5.1.2-cv-parser-hardening-design✅ ShippedOn feat/parser-hardening. Closed earlier-flagged unreadable-file issues.
5.1.2 — CV parser hardeningstep-5.1.2-cv-parser-hardening-impl✅ ShippedOn feat/parser-hardening.
5.2 — CV normaliserstep-5-phase-2-cv-normaliser-design (archived)🗄️ Archived 2026-06-11Flat 2-level tag vocab replaced by 3-level amendment. Moved to _archive/2026-06-11-superseded-plans/. Schema authoritative source is now amendment-3.2+5.2+6.1-taxonomy-3level.
5.2 — CV normaliseramendment-3.2+5.2+6.1-taxonomy-3level🟢 ApprovedCanonical schema source for NormalisedCV.
5.4 — Industry-expert filterstep-5.3-industry-filter-design📝 DraftAwaiting greenlight + Calibre team scaffold-review session. ExpertRule schema, recruiter heuristics as config. Runtime order: fires between Step 6 and Step 7 (confirmed 2026-06-11).
5.4 — Industry-expert filter (content source)amendment-3.1+5.3+6.1-bootstrap-rubric-extension📝 Draft 2026-06-11Bootstrap mine emits the hard-rules content (split into 5.4a hard gates + 5.4b boost/penalty per session D1 rec).

Step 6 — Layer 1 hard-fit filter

PhasePlanStatusNotes
6.1 — Rubric loader + composite scorerpipeline-1.1+2.1+3.2+6.1+7.1+7.2+8.1-matching-engine-design §“Layer 1 — Hard Fit”🟡 Active
6.1 — Rubric loader + composite scorerpipeline-1.1+2.1+3.2+6.1+7.1+7.2+8.1-matching-engine-impl (Tasks 9–10)🟡 ActiveRubric loader needs re-key to (sub_function, sub_vertical).
6.1 — Rubric content sourceamendment-3.1+5.3+6.1-bootstrap-rubric-extension📝 Draft 2026-06-11Bootstrap mine emits 22 per-sub-vertical rubric configs. Replaces the 4 archived grant-vertical stubs.

Step 7 — Layer 2 deep assessment

PhasePlanStatusNotes
7.1 — Adjacency resolverpipeline-1.1+2.1+3.2+6.1+7.1+7.2+8.1-matching-engine-design §“Adjacency Resolver”🟡 Active
7.2 — Evidence-grounded LLMpipeline-1.1+2.1+3.2+6.1+7.1+7.2+8.1-matching-engine-design §“Layer 2 — Deep Assessment”🟡 Active
7.1 + 7.2pipeline-1.1+2.1+3.2+6.1+7.1+7.2+8.1-matching-engine-impl (Tasks 11–13)🟡 Active

Step 8 — Shortlist (4 fit groups)

PhasePlanStatusNotes
8.1 — Layer 3 verdict synthesispipeline-1.1+2.1+3.2+6.1+7.1+7.2+8.1-matching-engine-design §“Layer 3 — Verdict Synthesis”🟡 Active
8.1 — Layer 3 verdict synthesispipeline-1.1+2.1+3.2+6.1+7.1+7.2+8.1-matching-engine-impl (Task 14)🟡 Active

Step 9 — Personalised outreach

PhasePlanStatusNotes
9.1 — Personalisation enginepipeline-9-outreach-design📝 Draft 2026-06-11Covers all 4 sub-steps. Evidence-grounded LLM personalisation using Step 7.2 quotes + per-vertical tone guide.
9.2 — Email sendpipeline-9-outreach-design📝 Draft 2026-06-11Tool decision pending: Instantly vs Smartlead.
9.3 — LinkedIn sequencingpipeline-9-outreach-design📝 Draft 2026-06-11Connect → InMail → follow-up. Tool TBD. 48h gap after email.
9.4 — Response handlingpipeline-9-outreach-design📝 Draft 2026-06-115-signal taxonomy. Re-pool deferred candidates after 90d.

Step 10 — Productisation surface

🔴 No plans yet. Architecture sketch lives in grant/architecture.md. Opens after Steps 7–8 prove the matching engine.

Step 11 — Audit prep

🔴 No plans yet. Deliverable checklist in grant/deliverable-checklist.md. Opens Oct 2026.

Step 12 — Infra

PhasePlanStatusNotes
12.4 — Documentation governancemeta-2026-06-03-nomenclature-reorg🟢 ApprovedLocks the 2-vocabulary system (Step + Phase / Sub-step). Retires Phases A–E, Stages A.1–A.5, Sprints 1a..4, sub-step letters (3a/3b/5a/5b).

2. Decision trail — changes to decisions

Where a plan was reversed or restructured, the reasoning is recorded here so the build’s evolution is legible.

DateDecisionChangeWhy
2026-05-25Taxonomy depth2-level → 3-level (sub_function → sub_vertical → tag)Rubrics must fire at sub-vertical granularity — an LNG operator and a fertilizer operator both sit under cargo-ops but score on different criteria. Superseded the flat vocab in title-normaliser-design (now step-5-phase-2-cv-normaliser-design.md).
2026-05-25Tag vocabularyPre-defined by design → bootstrapped from dataTags emerge from a lean CV↔JD pilot match, not design-by-committee. Step 3 split into Step 3.1 (bootstrap) + Step 3.2 (normaliser build).
2026-05-25Step 5 structureSingle match step → Step 5.3 (LLM inference) + Step 5.3 (industry-expert filter)Separates the model’s view from the Calibre team’s ratified recruiter heuristics — the latter is the proprietary domain layer defending AD2.
2026-05-24 → 2026-05-25Dual-surface scopeLogged as a “scope cut” → reframed as scope phasingThe dual-surface architecture is grant-mandated, not optional. Now lives as Step 10 (productisation) in the 12-step spine.
2026-06-03Nomenclature unification5 overlapping vocabularies → 2 (Step + Phase / Sub-step)Phases A–E, Stages A.1–A.5, Sprints 1a..4, and sub-step letters (3a/3b/5a/5b) were all interchangeably used in SOT §2/§4/§5/§7. Even the operator and client could not tell which “phase” a piece of work was in. Locked to one spine (12 Steps) + one build hierarchy (Phase / Sub-step). Reorg plan: meta-2026-06-03-nomenclature-reorg.

3. What’s stale / needs attention

  • step-5-phase-2-cv-normaliser-design (was 2026-05-19-title-normaliser-design) — superseded at the schema level. Keep for audit, but do not build from its tag vocab; use the 3-level amendment.
  • pipeline-1.1+2.1+3.2+6.1+7.1+7.2+8.1-matching-engine-design + impl (was 2026-05-23-jd-cv-matching-*) — approved but pre-date the 3-level taxonomy. Both need an amendment pass (rubric loader re-key, schema alignment) before code starts.
  • step-3.1-vocab-bootstrap-design + step-5.3-industry-filter-design — drafts blocking the matching build. Step 3.1 must run to lock the vocab; Step 5.3 needs a Calibre team review session.
  • Missing plans: Step 4 (sourcing), Step 9 (outreach), Step 10 (productisation), Step 11 (audit prep). Flag when each opens.
  • Superseded reference asset (not a plan): the original 6-phase workflow diagram (reference/3d73b3a…png) is replaced by the canonical 12-step in §2 of SOURCE-OF-TRUTH. De-listed from the site.
Last updated on