Handbook
Adaptive Feedback Framework — PDCA cycle log
Summary of AFF implementation cycles completed 2026-07-16 on the Capablio Mock Lab gate (:8920). Each cycle follows Plan → Do → Check → Act; Check always runs against Mock Lab or its unit tests.
Updated
Related: implementation-status.md, ../capablio-ux-fixture.md (Mock Lab runbook).
Milestone cycles (Mock Lab)
| Cycle | Focus | Check | Status | Notes |
|---|---|---|---|---|
| M0 | Mock Lab foundation — durable SQLite, start-mock-lab.sh, AFF seed |
Playwright + /health on :8920 |
green | .forge360-local/mock-lab.db; mock_lab_serve.py |
| M1 | Mock Vertex + in-process worker/gateway stubs | test_mock_vertex.py, test_worker_stub.py |
green | No outbound Vertex or worker HTTPS |
| M2 | Full HTML website export | export-mock-website.sh smoke |
green | ../capablio-mock-website/ + optional zip |
AFF feature cycles
| Cycle | Focus | AFF IDs flipped | Check | Status |
|---|---|---|---|---|
| 0 | Bootstrap forge360/domain/aff/ + PDCA log scaffold |
— | Mock Lab boot + pytest smoke | green |
| 1 | Pack schema + linter | AFF-QA-01..03 |
test_aff_pack_lint.py, pack CLI |
green |
| 2 | Weekly / quarterly bridge / PDP follow-up JSON packs | AFF-QA-04 (subset), AFF-QA-05 (subset) |
Linter + pack load tests | green |
| 3 | Exposure ledger + skip-period cooldown | AFF-CD-01..02, AFF-CD-05, AFF-CD-08 |
test_aff_cooldown.py |
green |
| 4 | Program schedules (weekly–annual) | AFF-CD-07 (subset) |
Mock Lab seed programs | green |
| 5 | Deterministic assembly + conversation hook | AFF-AS-01..02, AFF-AS-05..06 |
test_aff_assembly.py, Mock Lab e2e |
green |
| 6 | Coverage feasibility simulator | AFF-AS-04 |
test_aff_coverage.py |
green |
| 7 | PDP force_next_once + safeguards |
AFF-PDP-01..02, AFF-PDP-04 |
Assembly + PDP override tests | green |
| 8 | Server-side entitlement gate stub | AFF-EN-03 |
Entitlement 403/allow tests on Mock Lab | green |
Act artifacts (2026-07-16)
- implementation-status.md —
AFF-*flags updated - ../feature-status.md — AFF summary counts
../../feedback360/render_html.py—_ROADMAP_AFFdual-wiki mirror../../scripts/run-mock-lab-acceptance.sh— pre-production gate../../scripts/deploy-forge360-capablio.sh— deploy invokes acceptance unlessFORGE360_SKIP_MOCK_LAB_GATE=1
Phase 2–3 cycles (2026-07-17)
| Cycle | Focus | AFF IDs flipped | Check | Status |
|---|---|---|---|---|
| M3 | Mock Lab gate hardening — free tenant, channel stub, AFF e2e | — | run-mock-lab-acceptance.sh + e2e/aff-programs.spec.mjs |
green |
| 10 | Complete core packs JSON | AFF-QA-04 |
test_aff_pack_lint.py, snapshot pack IDs |
green |
| 11 | Role packs engineering + customer | AFF-QA-05 |
Linter + assembly preview per pack | green |
| 12 | Immutable survey items | AFF-QA-06 |
Migration 310000000006; frozen rows |
green |
| 13 | Cooldown hardening | AFF-CD-03, AFF-CD-04 |
test_aff_cooldown.py extended |
green |
| 14 | Tenant calendar | AFF-CD-06 |
US vs EU tenant period codes | green |
| 15 | Daily and event programs | AFF-CD-07 |
Daily assembly + trigger API | green |
| 16 | Question bundles (atomic + splittable) | AFF-AS-03 |
Bundle never partial; feasibility cost | green |
| 17 | Qualitative prompt cap | AFF-AS-07 |
open_text_max never exceeded |
green |
| 18 | PDP follow-up rotation | AFF-PDP-03 |
Stage → family rotation across weeks | green |
| 19 | Tenant overlays | AFF-TN-01..03 |
Overlay disable/weight; no source mutation | green |
| 20 | Thomas compatibility | AFF-TH-01..05 |
External evidence lane; no native trend blend | green |
| 21 | PDP imported theme confirm | AFF-PDP-05 |
Unconfirmed proposal blocked | green |
| 22 | Analytics dashboards | AFF-OP-01, AFF-OP-02 |
Coverage + fatigue admin widgets | green |
| 23 | Anonymity thresholds | AFF-OP-03 |
Team size 2 suppressed | green |
| 24 | Channel delivery stub | AFF-OP-05 (stub) |
Mock Lab channels.log payload |
green |
| 25 | AFF webhooks | AFF-OP-06 |
Signed webhook sink events | green |
| 26 | Commercial entitlements | AFF-EN-01, AFF-EN-02 |
Free vs Team program gate | green |
| P2-GATE | Phase 2 drift gate | All Phase 2 AFF-* |
Acceptance + handbook + export | green |
| 27 | Parent/child tenants | AFF-TN-04 |
Child inherits global pack | green |
| 28 | Data retention + legal hold | AFF-OP-04 |
Hold blocks delete | green |
| 29 | SCIM + HRIS stub | AFF-OP-07 |
SCIM provision smoke | green |
| 30 | Warehouse export | AFF-OP-08 |
No PII columns in export | green |
| 31 | Advanced anonymity | AFF-OP-03 (enterprise) |
Difference-attack suppression | green |
| 32 | Real Slack/Teams connectors | AFF-OP-05 |
OAuth + signed webhooks | green |
| P3-GATE | Phase 3 enterprise drift gate | All Phase 3 AFF-* |
Enterprise acceptance + deploy gate | green |
Act artifacts (2026-07-17)
- implementation-status.md — Phase 2–3
AFF-*flags → Implemented - ../feature-status.md — AFF summary 46 Implemented
- Nine JSON packs in
forge360/data/packs/(core daily/monthly/quarterly/annual + engineering + customer)
Deferred (Phase 4+)
- Phase 4 validated intelligence — research charter only; no
AFF-*flip without psychometric sign-off