Commit c0d6ed0
committed
Another deep audit and production-hardening pass is complete. 104 tests, smoke, operator smoke, and production audit all pass.
Always-on per-project digest
The biggest change: project_steering_digest is now attached on every steering surface, not only when bootstrap placeholders remain.
New attach_steering_digest_fields() builds a compact identity card from project_fingerprint whenever a workspace resolves. attach_bootstrap_steering_fields() now:
Returns fill plan + preview + digest when bootstrap is incomplete
Returns digest only when bootstrap is complete (no empty {})
Wired through:
Surface Behavior
enrich_payload_with_steering
Digest on all tool payloads; fill plan when bootstrap incomplete
session_brief
Digest always; fill plan when needed
build_progress_snapshot
Digest always
build_live_steering_brief
Always via unified attach
validate_roadmap
Digest when schema passes and bootstrap complete
explain_gate
Digest always; bootstrap suffix only when placeholders remain
Agents get per-project identity on guide, validate, progress, session start, and explain-gate — not just during bootstrap fill.
Fingerprint — CI & hooks (industry standard)
Signal Source
ci_workflow_names
.github/workflows/*.yml / *.yaml stems
has_pre_commit
.pre-commit-config.yaml
Cache invalidation now includes workflow file mtimes so CI changes refresh the fingerprint.
Digest and live steering lines include Workflows and Hooks: pre-commit configured when present.
Production cleanup
Removed “manual edits” language from autofill operator summary
Progress telemetry (roadmap_hooks) records steering_brief, project_archetype, and verification_commands on tool events
Audit expansion
Verifies:
validate always includes project_steering_digest
progress and explain_gate always include digest with steering_brief
GitHub workflow name detection (ci from .github/workflows/ci.yml)
Architecture
project_fingerprint (always)
→ project_steering_digest (always on every surface)
→ bootstrap_fill_plan (only when placeholders remain)
→ apply_bootstrap_fill → validate → recommended_next_action
Per-project steering is now a persistent identity layer across the full roadmap lifecycle, with bootstrap autofill as a targeted phase rather than the only time project context appears.1 parent 5cf0302 commit c0d6ed0
11 files changed
Lines changed: 154 additions & 11 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
60 | 60 | | |
61 | 61 | | |
62 | 62 | | |
| 63 | + | |
| 64 | + | |
| 65 | + | |
| 66 | + | |
| 67 | + | |
| 68 | + | |
| 69 | + | |
63 | 70 | | |
64 | 71 | | |
65 | 72 | | |
| |||
185 | 192 | | |
186 | 193 | | |
187 | 194 | | |
188 | | - | |
189 | | - | |
| 195 | + | |
190 | 196 | | |
191 | | - | |
| 197 | + | |
192 | 198 | | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
2 | 2 | | |
3 | 3 | | |
4 | 4 | | |
| 5 | + | |
5 | 6 | | |
6 | 7 | | |
7 | 8 | | |
| |||
493 | 494 | | |
494 | 495 | | |
495 | 496 | | |
496 | | - | |
| 497 | + | |
497 | 498 | | |
498 | 499 | | |
499 | 500 | | |
| |||
526 | 527 | | |
527 | 528 | | |
528 | 529 | | |
| 530 | + | |
| 531 | + | |
529 | 532 | | |
530 | 533 | | |
531 | 534 | | |
| |||
564 | 567 | | |
565 | 568 | | |
566 | 569 | | |
| 570 | + | |
| 571 | + | |
| 572 | + | |
| 573 | + | |
| 574 | + | |
| 575 | + | |
| 576 | + | |
| 577 | + | |
| 578 | + | |
| 579 | + | |
| 580 | + | |
| 581 | + | |
| 582 | + | |
| 583 | + | |
| 584 | + | |
| 585 | + | |
| 586 | + | |
| 587 | + | |
| 588 | + | |
| 589 | + | |
| 590 | + | |
| 591 | + | |
| 592 | + | |
| 593 | + | |
| 594 | + | |
| 595 | + | |
| 596 | + | |
| 597 | + | |
| 598 | + | |
| 599 | + | |
| 600 | + | |
| 601 | + | |
| 602 | + | |
| 603 | + | |
| 604 | + | |
567 | 605 | | |
568 | 606 | | |
569 | 607 | | |
570 | 608 | | |
571 | 609 | | |
572 | 610 | | |
573 | | - | |
| 611 | + | |
574 | 612 | | |
575 | | - | |
| 613 | + | |
576 | 614 | | |
577 | 615 | | |
578 | 616 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
64 | 64 | | |
65 | 65 | | |
66 | 66 | | |
67 | | - | |
68 | | - | |
| 67 | + | |
69 | 68 | | |
70 | | - | |
| 69 | + | |
| 70 | + | |
| 71 | + | |
71 | 72 | | |
72 | 73 | | |
73 | 74 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
190 | 190 | | |
191 | 191 | | |
192 | 192 | | |
| 193 | + | |
| 194 | + | |
| 195 | + | |
| 196 | + | |
193 | 197 | | |
194 | 198 | | |
195 | 199 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
103 | 103 | | |
104 | 104 | | |
105 | 105 | | |
| 106 | + | |
| 107 | + | |
106 | 108 | | |
107 | 109 | | |
108 | 110 | | |
109 | 111 | | |
110 | 112 | | |
111 | 113 | | |
112 | 114 | | |
| 115 | + | |
| 116 | + | |
| 117 | + | |
| 118 | + | |
| 119 | + | |
| 120 | + | |
| 121 | + | |
| 122 | + | |
| 123 | + | |
| 124 | + | |
| 125 | + | |
| 126 | + | |
113 | 127 | | |
114 | 128 | | |
115 | 129 | | |
| |||
460 | 474 | | |
461 | 475 | | |
462 | 476 | | |
| 477 | + | |
| 478 | + | |
| 479 | + | |
| 480 | + | |
| 481 | + | |
| 482 | + | |
| 483 | + | |
| 484 | + | |
| 485 | + | |
| 486 | + | |
| 487 | + | |
| 488 | + | |
| 489 | + | |
463 | 490 | | |
464 | 491 | | |
465 | 492 | | |
| |||
637 | 664 | | |
638 | 665 | | |
639 | 666 | | |
| 667 | + | |
| 668 | + | |
640 | 669 | | |
641 | 670 | | |
642 | 671 | | |
| |||
719 | 748 | | |
720 | 749 | | |
721 | 750 | | |
| 751 | + | |
| 752 | + | |
722 | 753 | | |
723 | 754 | | |
724 | 755 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
431 | 431 | | |
432 | 432 | | |
433 | 433 | | |
| 434 | + | |
| 435 | + | |
| 436 | + | |
| 437 | + | |
| 438 | + | |
434 | 439 | | |
435 | 440 | | |
436 | 441 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
84 | 84 | | |
85 | 85 | | |
86 | 86 | | |
| 87 | + | |
| 88 | + | |
| 89 | + | |
| 90 | + | |
87 | 91 | | |
88 | 92 | | |
89 | 93 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
173 | 173 | | |
174 | 174 | | |
175 | 175 | | |
| 176 | + | |
| 177 | + | |
176 | 178 | | |
177 | 179 | | |
178 | 180 | | |
| |||
199 | 201 | | |
200 | 202 | | |
201 | 203 | | |
| 204 | + | |
| 205 | + | |
| 206 | + | |
| 207 | + | |
202 | 208 | | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
215 | 215 | | |
216 | 216 | | |
217 | 217 | | |
| 218 | + | |
| 219 | + | |
| 220 | + | |
218 | 221 | | |
219 | 222 | | |
220 | 223 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
222 | 222 | | |
223 | 223 | | |
224 | 224 | | |
| 225 | + | |
| 226 | + | |
| 227 | + | |
| 228 | + | |
| 229 | + | |
| 230 | + | |
| 231 | + | |
| 232 | + | |
| 233 | + | |
225 | 234 | | |
226 | 235 | | |
227 | 236 | | |
| |||
359 | 368 | | |
360 | 369 | | |
361 | 370 | | |
| 371 | + | |
| 372 | + | |
362 | 373 | | |
363 | 374 | | |
364 | 375 | | |
| |||
446 | 457 | | |
447 | 458 | | |
448 | 459 | | |
449 | | - | |
450 | | - | |
| 460 | + | |
| 461 | + | |
| 462 | + | |
| 463 | + | |
| 464 | + | |
451 | 465 | | |
452 | 466 | | |
453 | 467 | | |
| |||
0 commit comments