Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
200 commits
Select commit Hold shift + click to select a range
5c45d54
Bound heavy AI workload concurrency (#7)
daniele21 Aug 30, 2026
a92495a
Bound native capture event retention (#9)
daniele21 Aug 30, 2026
25a7c71
Upgrade to source-pinned local LLM runtime (#8)
daniele21 Aug 30, 2026
6d318a6
Bound browser recording upload backlog (#10)
daniele21 Aug 30, 2026
f1ab946
Expose bounded runtime resource telemetry (#11)
daniele21 Aug 30, 2026
33b28b2
Align baseline revision with documentation governance
daniele21 Aug 30, 2026
3dced32
Add documentation freshness to preflight
daniele21 Aug 30, 2026
35942fc
Align workstream finalization with durable docs
daniele21 Aug 30, 2026
be3cef4
Define documentation impact ownership
daniele21 Aug 30, 2026
6f2b578
Require feature docs to track durable behavior
daniele21 Aug 30, 2026
29d1534
Route documentation freshness through agent workflow
daniele21 Aug 30, 2026
0f757fa
Expose documentation impact in pull requests
daniele21 Aug 30, 2026
6c14cd5
Merge pull request #12 from daniele21/chore/template-doc-governance
daniele21 Aug 31, 2026
13d0c7b
runtime: enforce phase-scoped model residency
daniele21 Aug 31, 2026
b79cf23
Merge pull request #13 from daniele21/runtime/adaptive-model-residency
daniele21 Aug 31, 2026
a7fdd7c
refactor(ui): establish UX simplification workstream
daniele21 Aug 31, 2026
5ec43fc
feat(ui): add simplified new meeting surface
daniele21 Aug 31, 2026
c8771b7
refactor(ui): route new meetings through simplified recorder
daniele21 Aug 31, 2026
9f712ec
fix(ui): harden simplified recording readiness
daniele21 Aug 31, 2026
d386918
refactor(ui): separate preferences from runtime diagnostics
daniele21 Aug 31, 2026
c69023d
refactor(ui): harden dashboard interaction semantics
daniele21 Aug 31, 2026
e90e2ba
fix(a11y): localize shared dialog close label
daniele21 Aug 31, 2026
dc3c110
fix(a11y): add keyboard navigation to meeting composites
daniele21 Aug 31, 2026
a0a2509
fix(a11y): complete app menu keyboard behavior
daniele21 Aug 31, 2026
1ec7774
fix(a11y): preserve button semantics in dashboard search
daniele21 Aug 31, 2026
31358a5
docs: update ux simplification workstream state
daniele21 Aug 31, 2026
ab86e46
test: add automated macOS real-environment smoke
daniele21 Aug 31, 2026
cda0286
test: cover real-environment smoke helpers
daniele21 Aug 31, 2026
8d9d82d
test: isolate real-environment smoke data
daniele21 Aug 31, 2026
73de817
docs: declare automated real macOS evidence runner
daniele21 Aug 31, 2026
bdc4ecd
fix: preserve e2e contract version
daniele21 Aug 31, 2026
d0a496c
docs: document real-environment smoke runner
daniele21 Aug 31, 2026
60a2fa1
docs: route UX evidence through real macOS runner
daniele21 Aug 31, 2026
21f07b0
fix: preserve dot paths in validation selector
daniele21 Aug 31, 2026
08dba87
test: cover dot paths in validation selector
daniele21 Aug 31, 2026
588b32d
fix: correct validation selector syntax
daniele21 Aug 31, 2026
ce66121
Merge PR #15: automate real-environment smoke
daniele21 Aug 31, 2026
a1d9c8e
Add screenshot and video evidence for ClosedRoom UI journey
daniele21 Aug 31, 2026
027c180
docs: sync real environment UI evidence state
daniele21 Sep 1, 2026
bbf688b
docs: align UX workstream with UI media evidence
daniele21 Sep 1, 2026
0451f35
docs: keep current state within budget
daniele21 Sep 1, 2026
fbaf577
docs: keep UX workstream within budget
daniele21 Sep 1, 2026
3a3f154
Merge PR #17: sync target-Mac UI evidence docs
daniele21 Sep 1, 2026
30c3147
chore: adopt repo-template-sw 0.9.1 development velocity
daniele21 Sep 3, 2026
1fcd8c1
fix: rebase real-Mac AX evidence on 0.9.1
daniele21 Sep 4, 2026
ddd1976
test: report dirty checkout entries
daniele21 Sep 4, 2026
f7e67dd
test: cover dirty checkout diagnostics
daniele21 Sep 4, 2026
b1b33c5
docs: align target-Mac state with 0.9.1
daniele21 Sep 4, 2026
ffae911
docs: harden UX-9 target-Mac evidence contract
daniele21 Sep 4, 2026
7b95d71
Merge PR #21: harden real-Mac UI evidence on 0.9.1
daniele21 Sep 4, 2026
341448e
fix: reuse exact target-Mac artifact across TCC reruns
daniele21 Sep 4, 2026
ff80a61
fix: preserve target-Mac artifact identity across reruns
daniele21 Sep 4, 2026
50eb228
test: cover exact target-Mac artifact reuse
daniele21 Sep 4, 2026
fa7ddba
refactor: keep artifact reuse in canonical UI evidence owner
daniele21 Sep 4, 2026
6967ed1
refactor: remove duplicate real-environment artifact owner
daniele21 Sep 4, 2026
a6041ab
refactor: move artifact reuse coverage to canonical wrapper tests
daniele21 Sep 4, 2026
6c58e7b
test: cover target-Mac artifact reuse in canonical wrapper
daniele21 Sep 4, 2026
1daa98f
docs: make target-Mac artifact reuse part of E2E contract
daniele21 Sep 4, 2026
87a6c0a
docs: document stable target-Mac artifact reuse
daniele21 Sep 4, 2026
3b55084
docs: align UX-9 with reusable target-Mac artifact
daniele21 Sep 4, 2026
9940e83
Merge PR #22: reuse exact target-Mac artifact
daniele21 Sep 4, 2026
4adc63a
fix: align target-Mac smoke with real UI state
daniele21 Sep 4, 2026
586df84
fix: bind UI media to smoke-owned app process
daniele21 Sep 4, 2026
455ccb6
test: cover real-environment artifact identity and search focus
daniele21 Sep 4, 2026
5f8b5a7
test: bind media capture to smoke-owned ClosedRoom process
daniele21 Sep 4, 2026
ee13a4d
Merge pull request #23 from daniele21/fix/real-env-artifact-attribution
daniele21 Sep 4, 2026
33801e4
Plan product and runtime simplification workstream
daniele21 Sep 4, 2026
d886907
Define meeting-first product simplification contract
daniele21 Sep 4, 2026
3c45761
Bound recording UI update frequency
daniele21 Sep 4, 2026
f9ce117
Cover bounded recording UI cadence
daniele21 Sep 4, 2026
820ad82
Make new meeting outcome-first
daniele21 Sep 4, 2026
8d9eb9d
Cover outcome-first new meeting contract
daniele21 Sep 4, 2026
0362e58
Add capture-priority resource policy
daniele21 Sep 4, 2026
98f36ea
Enforce resource policy at heavy-work admission
daniele21 Sep 4, 2026
527e025
Report policy-rejected transcription jobs
daniele21 Sep 4, 2026
791f7df
Report policy-rejected analysis jobs
daniele21 Sep 4, 2026
8809857
Cover capture-priority workload admission
daniele21 Sep 4, 2026
0bd8355
Cover capture-priority resource policy
daniele21 Sep 4, 2026
7b7a0dd
Make heavy AI capture-aware and LLM on-demand
daniele21 Sep 4, 2026
f69dd1b
Use canonical recording activity owner in resource policy
daniele21 Sep 4, 2026
976d14a
Cover canonical capture-state policy callback
daniele21 Sep 4, 2026
9a623d3
Wire resource policy to recording store
daniele21 Sep 4, 2026
16e54f4
Cover cold startup and capture-priority wiring
daniele21 Sep 4, 2026
c01504d
Separate preferences from advanced runtime settings
daniele21 Sep 4, 2026
90a8481
Cover simplified settings hierarchy
daniele21 Sep 4, 2026
8bfeaa0
Record Wave 1 simplification checkpoint
daniele21 Sep 4, 2026
58c5fc4
Track product-runtime simplification workstream
daniele21 Sep 4, 2026
4414a65
Compact product-runtime workstream to repository budget
daniele21 Sep 4, 2026
2875462
Compact current state within documentation budget
daniele21 Sep 4, 2026
b9cc0a7
Sync feature registry with Wave 1 simplification
daniele21 Sep 4, 2026
25ca38b
Document capture-priority runtime ownership
daniele21 Sep 4, 2026
445f6d0
Refine active capture admission signal
daniele21 Sep 5, 2026
691b91c
Use actual capture signal for heavy admission
daniele21 Sep 5, 2026
42aaafc
Align resource policy wiring contract
daniele21 Sep 5, 2026
18ee0db
Cover prepared versus active capture policy
daniele21 Sep 5, 2026
3fa29fb
Merge pull request #25 from daniele21/feature/product-runtime-simplif…
daniele21 Sep 5, 2026
11e93cb
Start product runtime simplification Wave 2
daniele21 Sep 5, 2026
6945bd1
Sync current state after Wave 1 integration
daniele21 Sep 5, 2026
3dea6b9
Resolve recording transcription defaults in service
daniele21 Sep 5, 2026
b4ba984
Cover persisted recording transcription defaults
daniele21 Sep 5, 2026
35902f1
Make meeting processing one action
daniele21 Sep 5, 2026
fc75dcf
Cover one-action meeting processing
daniele21 Sep 5, 2026
7fae81c
Bound managed LLM cold idle lifetime
daniele21 Sep 5, 2026
33035af
Serialize managed LLM idle transitions
daniele21 Sep 5, 2026
3e87440
Cover managed LLM idle shutdown lifecycle
daniele21 Sep 5, 2026
cf2c88f
Ignore stale managed LLM idle callbacks
daniele21 Sep 5, 2026
7c015ab
Cover stale managed LLM idle callbacks
daniele21 Sep 5, 2026
c62882b
Merge pull request #26 from daniele21/feature/product-runtime-simplif…
daniele21 Sep 5, 2026
7e80f26
Merge current dev into PRS-7 cold AI lifecycle
daniele21 Sep 5, 2026
77d99a4
Serialize managed LLM release with idle lifecycle
daniele21 Sep 5, 2026
d5e6334
Cover release and reuse race in idle lifecycle
daniele21 Sep 5, 2026
b0bab71
Add explicit optional screen-context capture
daniele21 Sep 5, 2026
6fcef1d
Cover optional screen-context disclosure
daniele21 Sep 5, 2026
eb1b153
Define bounded visual inference work budget
daniele21 Sep 5, 2026
9277a8c
Bound task-aware visual candidate work
daniele21 Sep 5, 2026
55d2872
Test deterministic visual work budget
daniele21 Sep 5, 2026
c6e053a
Allow per-run visual routing override
daniele21 Sep 5, 2026
46b2ecc
Define visual intelligence job type
daniele21 Sep 5, 2026
5ac5193
Persist visual transcript enrichment in place
daniele21 Sep 5, 2026
566a4fb
Make visual inference cooperatively cancellable
daniele21 Sep 5, 2026
b75c1a1
Add on-demand visual enrichment job endpoint
daniele21 Sep 5, 2026
8249c39
Register visual enrichment jobs router
daniele21 Sep 5, 2026
c7161a0
Merge pull request #27 from daniele21/runtime/cold-ai-idle-shutdown
daniele21 Sep 5, 2026
62f3d77
Merge dev into visual intelligence on-demand
daniele21 Sep 5, 2026
ebdbfb7
Add visual job cancellation endpoint
daniele21 Sep 5, 2026
b89d7b5
Add visual job frontend client
daniele21 Sep 5, 2026
8621776
Expose screen context as on-demand meeting action
daniele21 Sep 5, 2026
633e4e3
Restore server comments around visual router registration
daniele21 Sep 5, 2026
511adba
Fail closed for explicit bounded visual routing
daniele21 Sep 5, 2026
ea1bf1b
Keep visual job metadata out of transcript persistence
daniele21 Sep 5, 2026
0217c8b
Test on-demand visual enrichment vertical
daniele21 Sep 5, 2026
f153ad6
Test screen context remains on-demand in meeting UX
daniele21 Sep 5, 2026
6a87a0b
Align visual UX contract test with implementation names
daniele21 Sep 5, 2026
2cce690
Update Wave 2 simplification status
daniele21 Sep 5, 2026
b405b23
Record Wave 2 integrated and visual candidate state
daniele21 Sep 5, 2026
0a15a5b
docs: record PRS-6 automated preflight evidence
daniele21 Sep 5, 2026
a15746b
docs: align Wave 2 convergence state
daniele21 Sep 5, 2026
5024990
docs: describe visual on-demand and cold runtime lifecycle
daniele21 Sep 5, 2026
ee0b4f7
docs: align architecture with on-demand visual flow
daniele21 Sep 5, 2026
5a9013c
test: remove polling race from transcription job contract
daniele21 Sep 5, 2026
bf4e359
Merge pull request #28 from daniele21/feature/visual-intelligence-on-…
daniele21 Sep 5, 2026
50a1625
docs: record PRS-6 integration state
daniele21 Sep 5, 2026
072d3e2
docs: mark PRS-6 integrated
daniele21 Sep 5, 2026
285a726
Merge pull request #29 from daniele21/docs/record-prs6-integration
daniele21 Sep 5, 2026
e74fb61
bound persisted job event history
daniele21 Sep 5, 2026
beae7c3
test bounded job event retention
daniele21 Sep 5, 2026
f33ac06
add event-driven job follower
daniele21 Sep 5, 2026
2421d78
follow meeting jobs through bounded events
daniele21 Sep 5, 2026
a97100b
replace meeting polling with job events
daniele21 Sep 5, 2026
941f512
remove unrelated job store fixture churn
daniele21 Sep 5, 2026
9fedede
test event-driven meeting progress contract
daniele21 Sep 5, 2026
3ae7795
stabilize meeting job event subscriptions
daniele21 Sep 5, 2026
d274bee
avoid duplicate in-memory event retention
daniele21 Sep 5, 2026
d6d1a83
test persisted jobs avoid duplicate event queues
daniele21 Sep 5, 2026
aaf6377
record PRS-8 integration candidate
daniele21 Sep 5, 2026
77ae413
activate PRS-8 event progress slice
daniele21 Sep 5, 2026
01ae9db
document event-driven meeting job progress
daniele21 Sep 5, 2026
9ef49d0
document bounded event-driven job progress
daniele21 Sep 5, 2026
cb722c6
fix Meeting history JSX closure
daniele21 Sep 5, 2026
c3377ab
Merge pull request #30 from daniele21/feature/event-driven-job-progress
daniele21 Sep 5, 2026
1d584be
add privacy-safe audio strategy benchmark metrics
daniele21 Sep 5, 2026
b7ba387
add dual-track versus mixed ASR benchmark CLI
daniele21 Sep 5, 2026
7e24231
test audio strategy benchmark evidence metrics
daniele21 Sep 5, 2026
02a1e76
record PRS-8 integration and activate audio benchmark
daniele21 Sep 5, 2026
ba4f948
advance simplification workstream to PRS-9 benchmark
daniele21 Sep 5, 2026
c66348d
keep active simplification workstream within context budget
daniele21 Sep 5, 2026
c4d0252
Merge pull request #31 from daniele21/feature/audio-strategy-benchmark
daniele21 Sep 5, 2026
d3780e2
Adopt repo-template-sw 0.9.2 (#33)
daniele21 Sep 5, 2026
f3e01ec
Replay multi-window AX helper fix
daniele21 Sep 5, 2026
4ba13b3
Cover multi-window AX helper semantics
daniele21 Sep 5, 2026
f9597c1
Handle ClosedRoom multi-window AX automation (#24)
daniele21 Sep 5, 2026
c4a33b5
Plan incremental ClosedRoom UX and efficiency improvements (#34)
daniele21 Sep 5, 2026
0d5d3fa
PRS-11: open saved meeting without accessory waits (#35)
daniele21 Sep 5, 2026
8075b36
PRS-12: prepare meeting notes as one durable workflow
daniele21 Sep 5, 2026
90c4e31
PRS-13: shared structured meeting notes
daniele21 Sep 5, 2026
a3902f3
PRS-14: verifiable editable meeting notes
daniele21 Sep 6, 2026
dcb9111
chore: align engineering standard to repo-template-sw 0.10.0
daniele21 Sep 6, 2026
3604ffb
PRS-15: complete bounded meeting archive search
daniele21 Sep 6, 2026
9772a08
fix: keep contract context owner-focused
daniele21 Sep 6, 2026
c634a1f
fix: keep ClosedRoom UI iteration context focused
daniele21 Sep 6, 2026
b092231
Merge pull request #40 from daniele21/chore/repo-template-sw-0.10.0
daniele21 Sep 6, 2026
eb92df6
PRS-16: record safely while AI is busy (#41)
daniele21 Sep 6, 2026
d0ab939
docs: mark PRS-16 integrated (#42)
daniele21 Sep 6, 2026
57ee8ce
docs: redesign README as public product landing (#44)
daniele21 Sep 7, 2026
4fa212f
docs: add ClosedRoom brand imagery
daniele21 Sep 7, 2026
580fe6a
docs: sharpen ClosedRoom product-first README
daniele21 Sep 7, 2026
19b15b0
PRS-17: coherent adaptive macOS workspace
daniele21 Sep 8, 2026
1677764
docs: record PRS-17 integrated state
daniele21 Sep 8, 2026
b14e5cf
chore: restore MIT license on dev
daniele21 Sep 8, 2026
37f46af
docs: finalize integrated pre-release workstreams
daniele21 Sep 8, 2026
94fa3d3
PRS-18: add production release evidence tooling (#48)
daniele21 Sep 8, 2026
f223ecd
docs: align PRS-18 release state (#50)
daniele21 Sep 8, 2026
15438cb
fix: require browser E2E for canonical journey harness changes (#52)
daniele21 Sep 8, 2026
885634c
test: stabilize meeting preparation reconnect evidence (#51)
daniele21 Sep 8, 2026
4122216
test: aggregate PRS-18 REAL_ENVIRONMENT release evidence (#53)
daniele21 Sep 9, 2026
6452d60
test: add LOCAL REAL_ENVIRONMENT path without Apple Developer authori…
daniele21 Sep 10, 2026
3471ace
fix: surface nested target-Mac UI diagnostics (#55)
daniele21 Sep 10, 2026
991d0e9
test: align REAL_ENVIRONMENT workspace checkpoint with current UI (#56)
daniele21 Sep 11, 2026
1db33c6
fix: stabilize target-Mac Accessibility helper identity (#57)
daniele21 Sep 11, 2026
23dafeb
fix: target REAL_ENVIRONMENT key events to ClosedRoom (#58)
daniele21 Sep 11, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
32 changes: 12 additions & 20 deletions .engineering/baseline.json
Original file line number Diff line number Diff line change
@@ -1,29 +1,21 @@
{
"schema_version": 1,
"standard": {
"source": "daniele21/repo-template-sw",
"version": "0.8.0"
},
"standard": {"source": "daniele21/repo-template-sw", "version": "0.10.0", "revision": "f392e4ded5cd3ec5efbf806934789c6cb9f10ded"},
"target_level": "L2",
"profiles": [
"python",
"typescript",
"macos",
"local-ai",
"product-ui"
],
"profiles": ["python", "typescript", "macos", "local-ai", "product-ui"],
"skills": {
"plan-workstream": {"source_version": "0.1.0", "customized": false},
"structured-change": {"source_version": "0.6.0", "customized": false},
"plan-workstream": {"source_version": "0.10.0", "customized": true},
"structured-change": {"source_version": "0.10.0", "customized": true},
"design-product-experience": {"source_version": "0.5.0", "customized": false},
"validate-change": {"source_version": "0.8.0", "customized": false},
"preflight-change": {"source_version": "0.8.0", "customized": false},
"remote-preflight": {"source_version": "0.2.0", "customized": false},
"finalize-workstream": {"source_version": "0.1.0", "customized": false},
"validate-change": {"source_version": "0.10.0", "customized": true},
"preflight-change": {"source_version": "0.10.0", "customized": true},
"remote-preflight": {"source_version": "0.10.0", "customized": true},
"finalize-workstream": {"source_version": "0.10.0", "customized": true},
"review-reference-quality": {"source_version": "0.4.0", "customized": false}
},
"documentation": {
"completed_workstreams": "delete-by-default",
"historical_archive": "exception-only"
"documentation": {"completed_workstreams": "delete-by-default", "historical_archive": "exception-only"},
"adoption": {
"development_velocity_0_9_2": {"staged_delivery": "adopted", "risk_to_gate_selection": "adopted", "exact_head_evidence_reuse": "adopted", "post_merge_tree_equivalent_reuse": "adopted-on-dev", "risk_based_ui_evidence": "adopted", "affected_automated_e2e_before_dev": "adopted", "integration_real_environment_deferred_to_release": "adopted", "release_real_environment_blocking": "adopted", "target_mac_real_environment_boundary": "preserved"},
"development_velocity_0_10_0": {"bounded_agent_reporting": "adopted", "schema2_context_routes": "adopted", "two-failed-repair_diagnostic_pivot": "adopted", "resume_checkpoint": "adopted", "template_revision": "f392e4ded5cd3ec5efbf806934789c6cb9f10ded"}
}
}
130 changes: 25 additions & 105 deletions .engineering/commands.json
Original file line number Diff line number Diff line change
@@ -1,119 +1,39 @@
{
"schema_version": 1,
"contract_version": "0.5.0",
"contract_version": "0.7.0",
"commands": {
"setup": {"status": "required", "run": "./setup.sh && (cd frontend && pnpm install --frozen-lockfile)"},
"doctor": {"status": "recommended", "run": "UV_CACHE_DIR=.cache/uv uv run local-asr doctor"},
"dev": {"status": "recommended", "run": "./run.sh"},
"check": {"status": "required", "run": "python3 scripts/verify_repository.py && python3 scripts/verify_operations.py && python3 scripts/verify_e2e.py && python3 scripts/verify_product_experience.py && python3 scripts/verify_docs.py && python3 scripts/verify_agent_context.py && python3 -m unittest test.test_validation_profile_selector test.test_build_artifact_metadata -v && (cd frontend && pnpm run lint && pnpm exec tsc --noEmit)"},
"check": {"status": "required", "run": "python3 scripts/verify_repository.py && python3 scripts/verify_operations.py && python3 scripts/verify_e2e.py && python3 scripts/verify_stage_environment_policy.py && python3 scripts/verify_product_experience.py && python3 scripts/verify_docs.py && python3 scripts/verify_agent_context.py && python3 -m unittest test.test_validation_profile_selector test.test_build_artifact_metadata -v && (cd frontend && pnpm run lint && pnpm exec tsc --noEmit)"},
"test": {"status": "required", "run": "UV_CACHE_DIR=.cache/uv uv run python -m unittest discover -s test -v"},
"e2e": {"status": "recommended", "run": "UV_CACHE_DIR=.cache/uv uv run python -m unittest test.test_frontend_transcription_workflow test.test_recording_api test.test_native_capture -v"},
"build": {"status": "required", "run": "bash scripts/build_artifact.sh --no-dmg"},
"smoke": {"status": "recommended", "run": "python3 scripts/smoke_packaged_app.py"},
"package": {"status": "optional", "run": "bash scripts/build_artifact.sh --dmg"},
"stop": {"status": "n/a", "run": ""},
"local_real_environment": {"status": "recommended", "run": "python3 scripts/run_local_real_environment_suite.py"},
"release_build": {"status": "required", "run": "python3 scripts/build_production_artifact.py"},
"release_evidence": {"status": "required", "run": "python3 scripts/measured_release_target_mac.py --app <exact-production-app> && python3 scripts/record_while_ai_busy_target_mac.py --app <exact-production-app>"},
"stop": {"status": "n/a", "run": "n/a"},
"clean": {"status": "required", "run": "python3 scripts/clean_build_state.py"}
},
"publication_gate": {
"agent_preflight_required": true,
"target_base_freshness_required": true,
"full_diff_review_required": true,
"material_ambiguity_must_be_resolved": true,
"failure_root_cause_required": true,
"execution_capability_classification_required": true,
"blast_radius_profile_selection_required": true,
"automatable_gates_must_not_be_delegated_to_user": true,
"remote_automated_fallback_required_when_agent_local_unavailable": true,
"deterministic_ci_command_parity_required": true,
"non_automated_evidence_must_be_declared": true,
"exact_head_evidence_required": true
},
"validation_execution": {
"classes": ["agent_local", "remote_automated", "real_environment"],
"no_human_runner_for_automatable_gates": true,
"remote_automation_required_when_agent_local_unavailable": true
},
"validation_profiles": {
"default": "auto",
"profiles": ["lean", "scoped", "strong", "full"],
"selector": "python3 scripts/select_validation_profile.py --base <base-revision> --head <head-revision>",
"unknown_executable_paths_fail_safe": true,
"selector_changes_force_full": true,
"promotion_validation_full": true,
"automatic_escalation_allowed": true,
"silent_downgrade_below_auto_forbidden": true,
"report_selected_profile_and_reason": true
},
"remote_preflight": {
"status": "required",
"trigger": ".github/workflows/preflight.yml on pull_request; checks out and validates the exact PR head SHA with read-only contents permission",
"default_profile": "auto",
"stronger_profile_override_allowed": true,
"weaker_profile_override_requires_explicit_justification": true,
"exact_head_required": true,
"trusted_requesters_only": true,
"same_repository_prs_only_by_default": true,
"execution_job_write_credentials": false,
"report_result_to_pr": true
},
"end_to_end": {
"recommended_when_full_workflow_boundary_exists": true,
"critical_journeys_prioritized": true,
"lower_level_tests_remain_primary": true,
"use_stack_native_tooling": true,
"run_against_built_artifact_when_material": true,
"failure_evidence_bounded": true,
"zero_residue_required": true
},
"build_identity": {
"unique_per_build": true,
"source_revision_required": true,
"dirty_state_required": true,
"lineage_fields": ["project", "platform", "architecture", "channel", "variant"],
"artifact_name_fields": ["product", "product_version", "build_id", "source_revision"]
},
"artifact_lifecycle": {
"immutable_successful_artifacts": true,
"promote_only_after_success": true,
"manifest_required": true,
"manifest_name": "build-manifest.json",
"checksum_algorithm": "sha256",
"local_keep_successful_per_lineage": 2,
"ci_store": "github-actions-or-equivalent",
"ci_retention_days": 7,
"release_store": "github-releases-or-equivalent",
"release_artifacts_immutable": true
},
"build_delta": {
"required": true,
"compare_to": "previous-successful-comparable-build",
"output": "BUILD_CHANGELOG.md",
"bundle_with_artifact": true,
"dimensions": [
"source",
"dependencies",
"toolchain",
"configuration",
"compatibility_migrations",
"artifact_metrics",
"validation"
]
},
"local_runtime": {
"applicable": true,
"bind_default": "loopback",
"port_strategy": "configurable-with-collision-check",
"foreground_default": true,
"readiness_required": true,
"graceful_shutdown_required": true,
"verify_no_project_listener_after_stop": true
},
"ephemeral_resources": {
"run_identity": true,
"isolated_workspace": true,
"cleanup_paths": ["success", "failure", "timeout", "cancellation", "interrupt", "partial-initialization"],
"stale_resource_recovery": true,
"ownership_required_before_cleanup": true,
"post_cleanup_verification": true
}
"development_velocity": {
"default_stage": "iteration", "stages": ["iteration", "integration", "release"],
"iteration": {"target_feedback_minutes": 3, "exact_head_required": false, "full_diff_review_required": false, "durable_documentation_current_required": false, "remote_preflight_required": false, "e2e_default": "risk_only"},
"integration": {"target_feedback_minutes": 8, "exact_head_required": true, "full_diff_review_required": true, "durable_documentation_current_required": true, "remote_preflight_when_required_gates_unavailable_local": true, "e2e_default": "affected_critical_journeys", "automated_e2e_required_when_affected": true, "real_environment_blocking": false, "real_environment_deferred_to_release": true},
"release": {"exact_head_required": true, "full_diff_review_required": true, "durable_documentation_current_required": true, "full_validation_required": true, "e2e_default": "release_critical_journeys", "required_real_environment_blocking": true},
"parallel_development_prefers_early_convergence": true, "stacked_publication_exception_only": true
},
"publication_gate": {"applies_from_stage": "integration", "agent_preflight_required": true, "target_base_freshness_required": true, "full_diff_review_required": true, "material_ambiguity_must_be_resolved": true, "failure_root_cause_required": true, "execution_capability_classification_required": true, "blast_radius_profile_selection_required": true, "automatable_gates_must_not_be_delegated_to_user": true, "remote_automated_fallback_required_when_agent_local_unavailable": true, "deterministic_ci_command_parity_required": true, "non_automated_evidence_must_be_declared": true, "exact_head_evidence_required": true},
"validation_execution": {"classes": ["agent_local", "remote_automated", "real_environment"], "no_human_runner_for_automatable_gates": true, "remote_automation_required_when_agent_local_unavailable": true},
"validation_profiles": {"default": "auto", "profiles": ["lean", "scoped", "strong", "full"], "selector": "python3 scripts/select_validation_profile.py --base <base-revision> --head <head-revision> --stage <iteration|integration|release>", "selector_output": "risk_dimensions_and_required_gates", "profiles_are_shorthand": true, "gate_selection_preferred_over_suite_selection": true, "unknown_executable_paths_fail_safe": true, "selector_changes_force_full": true, "promotion_validation_full": true, "automatic_escalation_allowed": true, "silent_downgrade_below_auto_forbidden": true, "report_selected_profile_and_reason": true},
"remote_preflight": {"status": "required", "trigger": ".github/workflows/preflight.yml validates pull requests and integrated pushes using exact-head or safe tree-equivalent evidence", "default_profile": "auto", "stronger_profile_override_allowed": true, "weaker_profile_override_requires_explicit_justification": true, "exact_head_required": true, "reuse_successful_equivalent_evidence": true, "rerun_only_when_missing_stale_or_insufficient": true, "evidence_identity_fields": ["head", "source_tree", "target_base", "required_gates", "profile", "e2e_environment"], "post_merge_tree_equivalent_reuse_allowed": true, "post_merge_tree_reuse_requires_same_target_base": true, "direct_push_without_equivalent_evidence_must_validate": true, "trusted_requesters_only": true, "same_repository_prs_only_by_default": true, "execution_job_write_credentials": false, "report_result_to_pr": true},
"end_to_end": {"recommended_when_full_workflow_boundary_exists": true, "critical_journeys_prioritized": true, "lower_level_tests_remain_primary": true, "use_stack_native_tooling": true, "run_against_built_artifact_when_material": true, "failure_evidence_bounded": true, "zero_residue_required": true, "ui_evidence_modes": ["assertions", "screenshots", "full_media"], "ui_evidence_selection": "risk_based", "incidental_ui_does_not_force_full_media": true, "full_media_for_motion_timing_sequence_or_release_claims": true},
"validation_economics": {"status": "recommended", "optimize_for": "sufficient-confidence-per-feedback-time", "dimensions": ["duration", "flake_rate", "unique_regression_signal", "overlap"], "periodic_review": true},
"build_identity": {"unique_per_build": true, "source_revision_required": true, "dirty_state_required": true, "lineage_fields": ["project", "platform", "architecture", "channel", "variant"], "artifact_name_fields": ["product", "product_version", "build_id", "source_revision"]},
"artifact_lifecycle": {"immutable_successful_artifacts": true, "promote_only_after_success": true, "manifest_required": true, "manifest_name": "build-manifest.json", "checksum_algorithm": "sha256", "local_keep_successful_per_lineage": 2, "ci_store": "github-actions-or-equivalent", "ci_retention_days": 7, "release_store": "github-releases-or-equivalent", "release_artifacts_immutable": true},
"build_delta": {"required": true, "compare_to": "previous-successful-comparable-build", "output": "BUILD_CHANGELOG.md", "bundle_with_artifact": true, "dimensions": ["source", "dependencies", "toolchain", "configuration", "compatibility_migrations", "artifact_metrics", "validation"]},
"local_runtime": {"applicable": true, "bind_default": "loopback", "port_strategy": "configurable-with-collision-check", "foreground_default": true, "readiness_required": true, "graceful_shutdown_required": true, "verify_no_project_listener_after_stop": true},
"ephemeral_resources": {"run_identity": true, "isolated_workspace": true, "cleanup_paths": ["success", "failure", "timeout", "cancellation", "interrupt", "partial-initialization"], "stale_resource_recovery": true, "ownership_required_before_cleanup": true, "post_cleanup_verification": true},
"agent_reporting": {"schema_version": 1, "format": "summary_with_evidence_references", "required_summary_fields": ["stage", "source_identity", "risks", "profile", "required_gates", "evidence", "remaining_gaps", "next_action"], "gate_fields": ["id", "reason", "executor", "status"], "source_identity_fields": ["head", "source_tree", "target_base", "dirty"], "bounded_output": true, "full_report_on_demand": true, "preserve_failed_pending_gates": true, "summary_is_not_evidence_verification": true}
}
32 changes: 14 additions & 18 deletions .engineering/documentation-policy.json
Original file line number Diff line number Diff line change
@@ -1,22 +1,18 @@
{
"schema_version": 1,
"schema_version": 2,
"estimated_token_characters": 4,
"budgets": {
"root_agents": {"max_lines": 180, "max_estimated_tokens": 2500},
"scoped_agents": {"max_lines": 150, "max_estimated_tokens": 2000},
"current_state": {"max_lines": 120, "max_estimated_tokens": 1500},
"active_workstream": {"max_lines": 220, "max_estimated_tokens": 3000},
"architecture": {"max_lines": 1000, "max_estimated_tokens": 12000},
"feature_doc": {"max_lines": 400, "max_estimated_tokens": 5500}
},
"context_targets": {
"bootstrap_max_estimated_tokens": 2500,
"root_scoped_workstream_max_estimated_tokens": 6000
},
"budgets": {"root_agents": {"max_lines": 120, "max_estimated_tokens": 1200}, "scoped_agents": {"max_lines": 150, "max_estimated_tokens": 2000}, "current_state": {"max_lines": 120, "max_estimated_tokens": 1500}, "active_workstream": {"max_lines": 220, "max_estimated_tokens": 3000}, "architecture": {"max_lines": 1000, "max_estimated_tokens": 12000}, "feature_doc": {"max_lines": 400, "max_estimated_tokens": 5500}},
"context_targets": {"bootstrap_max_estimated_tokens": 1200, "root_scoped_workstream_max_estimated_tokens": 6000},
"duplicate_min_characters": 240,
"completed_workstream_markers": [
"Status: complete",
"Status: completed",
"Status: done"
]
"completed_workstream_markers": ["Status: complete", "Status: completed", "Status: done"],
"context_exclude_directories": [".git", "node_modules", ".venv", "venv", ".gradle", ".build", "build", "dist", "frontend/node_modules", "__pycache__"],
"context_routes": {
"docs": {"read_when": "Pure documentation/copy without executable or policy changes.", "files": ["AGENTS.md", "docs/README.md"], "include_scoped_guides": true, "include_workstream": false, "max_estimated_tokens": 5000},
"bug": {"read_when": "Meaningful owner-local bug during iteration.", "files": ["AGENTS.md", ".engineering/commands.json", "skills/structured-change/SKILL.md", "skills/validate-change/SKILL.md"], "include_scoped_guides": true, "include_workstream": false, "max_estimated_tokens": 7000},
"contract": {"read_when": "Shared API/persistence/runtime/native-audio boundary change; add docs/architecture.md only when system ownership/topology itself is material.", "files": ["AGENTS.md", ".engineering/commands.json", "skills/structured-change/SKILL.md", "skills/validate-change/SKILL.md"], "include_scoped_guides": true, "include_workstream": false, "max_estimated_tokens": 10000},
"ui": {"read_when": "Material ClosedRoom frontend/WKWebView UI iteration; add brand-kit for visual identity and use the integration route when preparing E2E evidence.", "files": ["AGENTS.md", ".engineering/commands.json", "skills/structured-change/SKILL.md", "skills/validate-change/SKILL.md", "skills/design-product-experience/SKILL.md", "design/ux-contract.json"], "include_scoped_guides": true, "include_workstream": false, "max_estimated_tokens": 12000, "requires_profile": "product-ui"},
"integration": {"read_when": "Candidate readiness including remote deterministic preflight.", "files": ["AGENTS.md", ".engineering/commands.json", "skills/preflight-change/SKILL.md", ".engineering/e2e.json", "skills/remote-preflight/SKILL.md", "docs/README.md"], "include_scoped_guides": true, "include_workstream": false, "max_estimated_tokens": 10000},
"release": {"read_when": "Release readiness including target-Mac evidence.", "files": ["AGENTS.md", ".engineering/commands.json", "skills/preflight-change/SKILL.md", ".engineering/e2e.json", "skills/remote-preflight/SKILL.md", "docs/README.md"], "include_scoped_guides": true, "include_workstream": false, "max_estimated_tokens": 10000},
"resume": {"read_when": "Resume a multi-session bug/implementation workstream.", "files": ["AGENTS.md", ".engineering/commands.json", "skills/structured-change/SKILL.md", "skills/validate-change/SKILL.md"], "include_scoped_guides": true, "include_workstream": true, "max_estimated_tokens": 9500}
}
}
Loading
Loading