Commit Graph

6 Commits

Author SHA1 Message Date
jx12n
be37c72b12 chore(sdlc): rebuild state.yaml after rebase (canonical ordering) 2026-09-03 05:17:00 -06:00
jordan
0634d2f4dc p0: specify Beachhead Validation, advancing all three features to specified
P0 was the only milestone gating the product track and all three of its features
sat in `draft` with no spec, while M9/M10/P1/PG1 are released. Engine work was
running ahead of the validation that decides whether any of it is wanted.

- p0-target-segment-recruitment: screening criteria per beachhead persona, a
  funnel sized to yield the 20-50 pilot cohort, outreach limits (no accuracy or
  onboarding promise the prototype cannot meet), consent and data handling,
  opaque participant ids only, segment balance, and a pre-pilot baseline-feed
  question so the readout has a control.
- p0-concierge-pilot-loop: the 14-day daily loop with the manual source-QA gate
  the ROADMAP permits, the briefing card contract, the normative session
  boundary, instrumentation bound to existing pg1 surfaces (signal-type
  counters, feedback-loop histogram, /diagnostics snapshots) rather than a new
  counting path, weekly interviews on the fixed beachhead question set, an
  intervention ledger so concierge help cannot silently inflate quality, abort
  conditions, and the frozen handoff dataset.
- p0-validation-readout: pre-registered GO/NO-GO/EXTEND rule over five gates
  with an explicit dropout/missed-day/partial-observation policy, double-coded
  interviews against the beachhead required answers, a sensitivity re-run that
  downgrades GO to EXTEND if the verdict flips, a falsification section, and a
  named reviewer who must argue the NO-GO case before publication.

Every threshold traces to a ROADMAP P0 acceptance criterion or the beachhead
doc; the three that neither document fixes (D2 retention floor, value-confirmed
fraction, noise kill-frame ceiling) are marked TBD (owner: product) instead of
being invented.

Next directive for all three is create_design.
2026-08-16 12:39:39 -06:00
jordan
cc0b894480 sdlc: accept the schema_version 3 -> 4 migration
`sdlc` 0.5.1 rewrites every feature manifest on read - `sdlc state` alone did
this - so the migration cannot be avoided, only recorded. It is idempotent:
repeated reads produce no further churn (verified by checksum).

What schema 4 drops, so it is findable later:
- feature-level `id` (now derived from `slug`) and `updated_at`.
- per-task history: `created_at` is re-stamped with the migration instant and
  `completed_at` is nulled, so task timing before 2026-08-16 is not recoverable
  from these files.
- m9-community-profile-sync additionally loses 18 phase-history and artifact
  timestamps (`entered`/`exited`/`approved_at`, 2026-03-04).

The pre-migration record is this commit's parent:
  git show HEAD~1:.sdlc/features/m9-community-profile-sync/manifest.yaml

Committed separately from any state transition so the loss is one reviewable
diff rather than noise inside a feature change. `.sdlc/` is CLI-owned; nothing
here was hand-edited.
2026-08-16 12:39:22 -06:00
jordan
d8e408350c feat(m9/m10/p1): community policy engine, signal revocation, agent capability boundaries, feedback loop, metrics instrumentation 2026-03-16 05:59:42 -06:00
jordan
6f26d03c77 feat(m9): implement purge re-materialization engine
Adds the M9 purge re-materialization feature: a WAL-replay background
engine that rebuilds community cohort aggregates for a (user, community)
pair after retroactive signal purge, restoring ranking correctness without
modifying the immutable WAL.

Key additions:
- cohort::rematerialization module: PurgeJobQueue, RematerializationEngine,
  WAL replay, atomic CohortSignalLedger swap, BLAKE3 audit log, metrics counters
- TidalDb::{submit_purge_job, purge_job_status, rematerialization_metrics}
  public API (db/rematerialization.rs)
- Engine auto-starts in persistent mode; clean shutdown before WAL teardown
- 6 integration tests in tests/m9_purge_remat.rs covering ephemeral and
  persistent modes, job lifecycle, and multi-job independence
- Split oversized files to comply with 600-line limit: db/mod.rs →
  db/from_parts.rs, entities/revocation.rs → revocation/{mod,tests}.rs,
  schema/validation/builders.rs → builders/{mod,tests}.rs,
  signals/warm.rs → warm/{mod,tests,proptests}.rs
- Fix pre-existing bootstrap errors: export AuditKind from session module,
  add overrides_rejected to SessionSnapshot deserialization
2026-03-03 19:18:16 -07:00
jordan
5ceef74f3b chore: bootstrap SDLC state machine for tidalDB
- Initialize .sdlc/ with config, guidance, and state machine
- Register M0-M8 as released milestones (full engine track history)
- Seed M9 (Community Sync & Revocation) and M10 (Governance & Agent Rights) with features
- Seed product milestones P0-P4 and PG1 gate with features from existing planning docs
- Add Team section to AGENTS.md (tidal-engineer, tidal-visionary, tidal-researcher, tidal-storyteller)
- Add knowledge-librarian agent for .sdlc/knowledge/ curation
- Gitignore .sdlc/telemetry.redb (volatile binary state)
- Add .ai/ scaffold (project knowledge index)
2026-03-03 00:41:41 -07:00