project-loop-harness 0.3.3__tar.gz → 0.4.0__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {project_loop_harness-0.3.3/src/project_loop_harness.egg-info → project_loop_harness-0.4.0}/PKG-INFO +1 -1
- project_loop_harness-0.4.0/agent-tasks/0134-completion-packet-v1-contract.md +77 -0
- project_loop_harness-0.4.0/agent-tasks/0135-finish-emits-completion-packet.md +81 -0
- project_loop_harness-0.4.0/agent-tasks/0136-lite-pcl-start.md +75 -0
- project_loop_harness-0.4.0/agent-tasks/0137-handoff-packet-pcl-resume.md +78 -0
- project_loop_harness-0.4.0/agent-tasks/0138-kpi-report-surface.md +101 -0
- project_loop_harness-0.4.0/agent-tasks/0139-executable-resume-context.md +130 -0
- project_loop_harness-0.4.0/agent-tasks/0140-kpi-post-integration-sources.md +57 -0
- project_loop_harness-0.4.0/agent-tasks/0140a-skill-cli-contract-parity.md +64 -0
- project_loop_harness-0.4.0/agent-tasks/0140b-lifecycle-integrity-gate.md +91 -0
- project_loop_harness-0.4.0/agent-tasks/0140c-fail-open-check-guard.md +56 -0
- {project_loop_harness-0.3.3 → project_loop_harness-0.4.0}/agent-tasks/README.md +14 -2
- {project_loop_harness-0.3.3 → project_loop_harness-0.4.0}/docs/architecture.md +8 -0
- project_loop_harness-0.4.0/docs/completion-packet-v1.md +140 -0
- {project_loop_harness-0.3.3 → project_loop_harness-0.4.0}/docs/context-pack.md +8 -0
- {project_loop_harness-0.3.3 → project_loop_harness-0.4.0}/docs/data-model.md +7 -0
- project_loop_harness-0.4.0/docs/dogfood-report-v0.4.md +109 -0
- project_loop_harness-0.4.0/docs/evidence/0136-pcl-start-demo.md +99 -0
- project_loop_harness-0.4.0/docs/finish.md +157 -0
- {project_loop_harness-0.3.3 → project_loop_harness-0.4.0}/docs/growth-plan-v0.2.4-v0.5.md +21 -0
- project_loop_harness-0.4.0/docs/handoff-packet-v1.md +105 -0
- {project_loop_harness-0.3.3 → project_loop_harness-0.4.0}/docs/implementation-plan.md +21 -0
- project_loop_harness-0.4.0/docs/pcl-start.md +80 -0
- project_loop_harness-0.4.0/docs/plan-v0.4.0.md +131 -0
- project_loop_harness-0.4.0/docs/release-notes/v0.4.0.md +145 -0
- {project_loop_harness-0.3.3 → project_loop_harness-0.4.0}/docs/roadmap/integrated/00-executive-roadmap.md +4 -3
- {project_loop_harness-0.3.3 → project_loop_harness-0.4.0}/docs/roadmap/integrated/03-implementation-plan.md +9 -0
- {project_loop_harness-0.3.3 → project_loop_harness-0.4.0}/docs/roadmap/integrated/ADOPTION.md +24 -0
- {project_loop_harness-0.3.3 → project_loop_harness-0.4.0}/pyproject.toml +3 -2
- project_loop_harness-0.4.0/src/pcl/__init__.py +1 -0
- {project_loop_harness-0.3.3 → project_loop_harness-0.4.0}/src/pcl/audit.py +12 -0
- {project_loop_harness-0.3.3 → project_loop_harness-0.4.0}/src/pcl/cli.py +299 -5
- {project_loop_harness-0.3.3 → project_loop_harness-0.4.0}/src/pcl/commands.py +100 -17
- project_loop_harness-0.4.0/src/pcl/context_usage.py +50 -0
- project_loop_harness-0.4.0/src/pcl/contracts/__init__.py +41 -0
- project_loop_harness-0.4.0/src/pcl/contracts/completion_packet.py +469 -0
- project_loop_harness-0.4.0/src/pcl/contracts/handoff_packet.py +451 -0
- project_loop_harness-0.4.0/src/pcl/contracts/schemas/completion-packet-v1.schema.json +196 -0
- project_loop_harness-0.4.0/src/pcl/contracts/schemas/handoff-packet-v1.schema.json +160 -0
- {project_loop_harness-0.3.3 → project_loop_harness-0.4.0}/src/pcl/evidence.py +47 -0
- project_loop_harness-0.4.0/src/pcl/evidence_show.py +127 -0
- project_loop_harness-0.4.0/src/pcl/finish_execution.py +594 -0
- project_loop_harness-0.4.0/src/pcl/kpi_report.py +241 -0
- {project_loop_harness-0.3.3 → project_loop_harness-0.4.0}/src/pcl/lifecycle.py +141 -6
- {project_loop_harness-0.3.3 → project_loop_harness-0.4.0}/src/pcl/renderer.py +29 -9
- {project_loop_harness-0.3.3 → project_loop_harness-0.4.0}/src/pcl/reports.py +21 -0
- project_loop_harness-0.4.0/src/pcl/resume.py +982 -0
- project_loop_harness-0.4.0/src/pcl/start.py +252 -0
- {project_loop_harness-0.3.3 → project_loop_harness-0.4.0}/src/pcl/stories.py +87 -20
- {project_loop_harness-0.3.3 → project_loop_harness-0.4.0}/src/pcl/templates/project/pcl.yaml +3 -0
- {project_loop_harness-0.3.3 → project_loop_harness-0.4.0}/src/pcl/templates/skills/project-control-loop/SKILL.md +102 -11
- {project_loop_harness-0.3.3 → project_loop_harness-0.4.0}/src/pcl/validators.py +137 -5
- {project_loop_harness-0.3.3 → project_loop_harness-0.4.0}/src/pcl/verification_feedback.py +24 -14
- {project_loop_harness-0.3.3 → project_loop_harness-0.4.0}/src/pcl/workflow_sandbox.py +54 -0
- {project_loop_harness-0.3.3 → project_loop_harness-0.4.0/src/project_loop_harness.egg-info}/PKG-INFO +1 -1
- {project_loop_harness-0.3.3 → project_loop_harness-0.4.0}/src/project_loop_harness.egg-info/SOURCES.txt +47 -0
- project_loop_harness-0.4.0/tests/fixtures/completion_packet/full.json +90 -0
- project_loop_harness-0.4.0/tests/fixtures/completion_packet/minimal.json +29 -0
- project_loop_harness-0.4.0/tests/fixtures/completion_packet/negative-budget-next-action.json +21 -0
- project_loop_harness-0.4.0/tests/fixtures/completion_packet/negative-cases.json +17 -0
- project_loop_harness-0.4.0/tests/fixtures/completion_packet/negative-critical-proof.json +21 -0
- project_loop_harness-0.4.0/tests/fixtures/completion_packet/negative-passed-result.json +21 -0
- project_loop_harness-0.4.0/tests/fixtures/handoff_packet/minimal.json +57 -0
- project_loop_harness-0.4.0/tests/fixtures/kpi_report_empty_v1.json +85 -0
- project_loop_harness-0.4.0/tests/fixtures/start_initialized_v1.json +49 -0
- project_loop_harness-0.4.0/tests/fixtures/v0.3.1-baseline/snapshots/pcl-help.json +9 -0
- {project_loop_harness-0.3.3 → project_loop_harness-0.4.0}/tests/fixtures/v0.3.1-baseline/snapshots/pcl-version.json +1 -1
- {project_loop_harness-0.3.3 → project_loop_harness-0.4.0}/tests/mcp/fixtures/wire-transcript.json +1 -1
- {project_loop_harness-0.3.3 → project_loop_harness-0.4.0}/tests/test_audit_commands.py +5 -0
- {project_loop_harness-0.3.3 → project_loop_harness-0.4.0}/tests/test_checkpoints.py +29 -2
- {project_loop_harness-0.3.3 → project_loop_harness-0.4.0}/tests/test_codex_plugin.py +8 -6
- project_loop_harness-0.4.0/tests/test_completion_packet_contract.py +115 -0
- project_loop_harness-0.4.0/tests/test_completion_packet_package.py +102 -0
- {project_loop_harness-0.3.3 → project_loop_harness-0.4.0}/tests/test_context.py +127 -0
- project_loop_harness-0.4.0/tests/test_contract_cli.py +111 -0
- {project_loop_harness-0.3.3 → project_loop_harness-0.4.0}/tests/test_distribution.py +3 -1
- project_loop_harness-0.4.0/tests/test_evidence_show.py +96 -0
- {project_loop_harness-0.3.3 → project_loop_harness-0.4.0}/tests/test_features.py +18 -3
- project_loop_harness-0.4.0/tests/test_finish.py +535 -0
- project_loop_harness-0.4.0/tests/test_handoff_packet_contract.py +78 -0
- project_loop_harness-0.4.0/tests/test_kpi_report.py +296 -0
- {project_loop_harness-0.3.3 → project_loop_harness-0.4.0}/tests/test_lifecycle.py +10 -2
- project_loop_harness-0.4.0/tests/test_lifecycle_integrity.py +393 -0
- {project_loop_harness-0.3.3 → project_loop_harness-0.4.0}/tests/test_next_actions.py +38 -46
- project_loop_harness-0.4.0/tests/test_resume.py +503 -0
- project_loop_harness-0.4.0/tests/test_skill_command_examples.py +96 -0
- project_loop_harness-0.4.0/tests/test_start.py +236 -0
- {project_loop_harness-0.3.3 → project_loop_harness-0.4.0}/tests/test_stories.py +18 -2
- {project_loop_harness-0.3.3 → project_loop_harness-0.4.0}/tests/test_validation.py +31 -0
- {project_loop_harness-0.3.3 → project_loop_harness-0.4.0}/tests/test_workflow_sandbox.py +54 -0
- project_loop_harness-0.3.3/docs/finish.md +0 -75
- project_loop_harness-0.3.3/src/pcl/__init__.py +0 -1
- project_loop_harness-0.3.3/tests/fixtures/v0.3.1-baseline/snapshots/pcl-help.json +0 -9
- project_loop_harness-0.3.3/tests/test_finish.py +0 -222
- {project_loop_harness-0.3.3 → project_loop_harness-0.4.0}/LICENSE +0 -0
- {project_loop_harness-0.3.3 → project_loop_harness-0.4.0}/MANIFEST.in +0 -0
- {project_loop_harness-0.3.3 → project_loop_harness-0.4.0}/Makefile +0 -0
- {project_loop_harness-0.3.3 → project_loop_harness-0.4.0}/README.md +0 -0
- {project_loop_harness-0.3.3 → project_loop_harness-0.4.0}/agent-tasks/0001-hardening-cli.md +0 -0
- {project_loop_harness-0.3.3 → project_loop_harness-0.4.0}/agent-tasks/0002-db-migrations.md +0 -0
- {project_loop_harness-0.3.3 → project_loop_harness-0.4.0}/agent-tasks/0003-workflow-runner.md +0 -0
- {project_loop_harness-0.3.3 → project_loop_harness-0.4.0}/agent-tasks/0004-dashboard-renderer.md +0 -0
- {project_loop_harness-0.3.3 → project_loop_harness-0.4.0}/agent-tasks/0005-agent-integration.md +0 -0
- {project_loop_harness-0.3.3 → project_loop_harness-0.4.0}/agent-tasks/0006-codex-plugin.md +0 -0
- {project_loop_harness-0.3.3 → project_loop_harness-0.4.0}/agent-tasks/0007-mcp-server.md +0 -0
- {project_loop_harness-0.3.3 → project_loop_harness-0.4.0}/agent-tasks/0008-loop-lifecycle.md +0 -0
- {project_loop_harness-0.3.3 → project_loop_harness-0.4.0}/agent-tasks/0009-defect-lifecycle.md +0 -0
- {project_loop_harness-0.3.3 → project_loop_harness-0.4.0}/agent-tasks/0010-reporting-evidence.md +0 -0
- {project_loop_harness-0.3.3 → project_loop_harness-0.4.0}/agent-tasks/0011-validation-invariants.md +0 -0
- {project_loop_harness-0.3.3 → project_loop_harness-0.4.0}/agent-tasks/0012-audit-log-integrity.md +0 -0
- {project_loop_harness-0.3.3 → project_loop_harness-0.4.0}/agent-tasks/0013-validation-diagnostics.md +0 -0
- {project_loop_harness-0.3.3 → project_loop_harness-0.4.0}/agent-tasks/0014-escalation-lifecycle.md +0 -0
- {project_loop_harness-0.3.3 → project_loop_harness-0.4.0}/agent-tasks/0015-decision-lifecycle.md +0 -0
- {project_loop_harness-0.3.3 → project_loop_harness-0.4.0}/agent-tasks/0016-escalation-decision-linkage.md +0 -0
- {project_loop_harness-0.3.3 → project_loop_harness-0.4.0}/agent-tasks/0017-next-action-guided-loop.md +0 -0
- {project_loop_harness-0.3.3 → project_loop_harness-0.4.0}/agent-tasks/0018-readme-golden-path.md +0 -0
- {project_loop_harness-0.3.3 → project_loop_harness-0.4.0}/agent-tasks/0019-recovery-playbook.md +0 -0
- {project_loop_harness-0.3.3 → project_loop_harness-0.4.0}/agent-tasks/0020-example-project-refresh.md +0 -0
- {project_loop_harness-0.3.3 → project_loop_harness-0.4.0}/agent-tasks/0021-agent-adapter-contract.md +0 -0
- {project_loop_harness-0.3.3 → project_loop_harness-0.4.0}/agent-tasks/0022-agent-output-validation.md +0 -0
- {project_loop_harness-0.3.3 → project_loop_harness-0.4.0}/agent-tasks/0023-codex-exec-adapter-hardening.md +0 -0
- {project_loop_harness-0.3.3 → project_loop_harness-0.4.0}/agent-tasks/0024-claude-manual-adapter-hardening.md +0 -0
- {project_loop_harness-0.3.3 → project_loop_harness-0.4.0}/agent-tasks/0025-generic-shell-adapter.md +0 -0
- {project_loop_harness-0.3.3 → project_loop_harness-0.4.0}/agent-tasks/0026-agent-job-evidence-ingestion.md +0 -0
- {project_loop_harness-0.3.3 → project_loop_harness-0.4.0}/agent-tasks/0027-dashboard-data-contract.md +0 -0
- {project_loop_harness-0.3.3 → project_loop_harness-0.4.0}/agent-tasks/0028-dashboard-evidence-navigation.md +0 -0
- {project_loop_harness-0.3.3 → project_loop_harness-0.4.0}/agent-tasks/0029-dashboard-risk-and-blockers.md +0 -0
- {project_loop_harness-0.3.3 → project_loop_harness-0.4.0}/agent-tasks/0030-distribution-readiness.md +0 -0
- {project_loop_harness-0.3.3 → project_loop_harness-0.4.0}/agent-tasks/0031-workflow-proposal-mode.md +0 -0
- {project_loop_harness-0.3.3 → project_loop_harness-0.4.0}/agent-tasks/0032-workflow-proposal-review.md +0 -0
- {project_loop_harness-0.3.3 → project_loop_harness-0.4.0}/agent-tasks/0033-workflow-verifier.md +0 -0
- {project_loop_harness-0.3.3 → project_loop_harness-0.4.0}/agent-tasks/0034-limited-execution-sandbox.md +0 -0
- {project_loop_harness-0.3.3 → project_loop_harness-0.4.0}/agent-tasks/0035-automatic-workflow-executor.md +0 -0
- {project_loop_harness-0.3.3 → project_loop_harness-0.4.0}/agent-tasks/0036-executor-dogfood-workflow.md +0 -0
- {project_loop_harness-0.3.3 → project_loop_harness-0.4.0}/agent-tasks/0037-executor-retry-resume.md +0 -0
- {project_loop_harness-0.3.3 → project_loop_harness-0.4.0}/agent-tasks/0038-story-test-lifecycle.md +0 -0
- {project_loop_harness-0.3.3 → project_loop_harness-0.4.0}/agent-tasks/0039-workflow-yaml-rule-expressions.md +0 -0
- {project_loop_harness-0.3.3 → project_loop_harness-0.4.0}/agent-tasks/0040-test-case-evidence-validation.md +0 -0
- {project_loop_harness-0.3.3 → project_loop_harness-0.4.0}/agent-tasks/0041-feature-inspection-commands.md +0 -0
- {project_loop_harness-0.3.3 → project_loop_harness-0.4.0}/agent-tasks/0042-report-coverage-context.md +0 -0
- {project_loop_harness-0.3.3 → project_loop_harness-0.4.0}/agent-tasks/0043-feature-report.md +0 -0
- {project_loop_harness-0.3.3 → project_loop_harness-0.4.0}/agent-tasks/0044-complete-csv-export.md +0 -0
- {project_loop_harness-0.3.3 → project_loop_harness-0.4.0}/agent-tasks/0045-filtered-job-inspection.md +0 -0
- {project_loop_harness-0.3.3 → project_loop_harness-0.4.0}/agent-tasks/0046-feature-status-lifecycle.md +0 -0
- {project_loop_harness-0.3.3 → project_loop_harness-0.4.0}/agent-tasks/0047-feature-coverage-next-action.md +0 -0
- {project_loop_harness-0.3.3 → project_loop_harness-0.4.0}/agent-tasks/0048-migration-status-command.md +0 -0
- {project_loop_harness-0.3.3 → project_loop_harness-0.4.0}/agent-tasks/0049-render-json-artifact-paths.md +0 -0
- {project_loop_harness-0.3.3 → project_loop_harness-0.4.0}/agent-tasks/0050-codex-plugin-package-inventory.md +0 -0
- {project_loop_harness-0.3.3 → project_loop_harness-0.4.0}/agent-tasks/0051-mcp-render-artifact-paths.md +0 -0
- {project_loop_harness-0.3.3 → project_loop_harness-0.4.0}/agent-tasks/0052-lifecycle-failure-job-cleanup.md +0 -0
- {project_loop_harness-0.3.3 → project_loop_harness-0.4.0}/agent-tasks/0053-prompt-job-json-handoff.md +0 -0
- {project_loop_harness-0.3.3 → project_loop_harness-0.4.0}/agent-tasks/0054-human-queue-linkage-cli.md +0 -0
- {project_loop_harness-0.3.3 → project_loop_harness-0.4.0}/agent-tasks/0055-workflow-proposal-list-filter.md +0 -0
- {project_loop_harness-0.3.3 → project_loop_harness-0.4.0}/agent-tasks/0056-sandbox-noop-execution-guard.md +0 -0
- {project_loop_harness-0.3.3 → project_loop_harness-0.4.0}/agent-tasks/0057-executor-no-executable-step-guard.md +0 -0
- {project_loop_harness-0.3.3 → project_loop_harness-0.4.0}/agent-tasks/0058-dogfood-usability-hardening.md +0 -0
- {project_loop_harness-0.3.3 → project_loop_harness-0.4.0}/agent-tasks/0059-checkpoint-review-guidance.md +0 -0
- {project_loop_harness-0.3.3 → project_loop_harness-0.4.0}/agent-tasks/0060-pypi-trusted-publishing.md +0 -0
- {project_loop_harness-0.3.3 → project_loop_harness-0.4.0}/agent-tasks/0061-context-pack-v1.md +0 -0
- {project_loop_harness-0.3.3 → project_loop_harness-0.4.0}/agent-tasks/0062-task-backlog-entity.md +0 -0
- {project_loop_harness-0.3.3 → project_loop_harness-0.4.0}/agent-tasks/0063-structured-verification-rubric.md +0 -0
- {project_loop_harness-0.3.3 → project_loop_harness-0.4.0}/agent-tasks/0064-task-loop-integration.md +0 -0
- {project_loop_harness-0.3.3 → project_loop_harness-0.4.0}/agent-tasks/0065-dashboard-human-decisions.md +0 -0
- {project_loop_harness-0.3.3 → project_loop_harness-0.4.0}/agent-tasks/0066-agent-registry-lease.md +0 -0
- {project_loop_harness-0.3.3 → project_loop_harness-0.4.0}/agent-tasks/0067-context-pack-improvements.md +0 -0
- {project_loop_harness-0.3.3 → project_loop_harness-0.4.0}/agent-tasks/0068-trust-hardening.md +0 -0
- {project_loop_harness-0.3.3 → project_loop_harness-0.4.0}/agent-tasks/0069-explainable-code-context-v0.md +0 -0
- {project_loop_harness-0.3.3 → project_loop_harness-0.4.0}/agent-tasks/0070-human-decision-cockpit.md +0 -0
- {project_loop_harness-0.3.3 → project_loop_harness-0.4.0}/agent-tasks/0071-dogfood-impact-precision.md +0 -0
- {project_loop_harness-0.3.3 → project_loop_harness-0.4.0}/agent-tasks/0072-sensitive-omission.md +0 -0
- {project_loop_harness-0.3.3 → project_loop_harness-0.4.0}/agent-tasks/0073-code-context-module-split.md +0 -0
- {project_loop_harness-0.3.3 → project_loop_harness-0.4.0}/agent-tasks/0074-search-snapshot-consistency.md +0 -0
- {project_loop_harness-0.3.3 → project_loop_harness-0.4.0}/agent-tasks/0075-diff-source-modes.md +0 -0
- {project_loop_harness-0.3.3 → project_loop_harness-0.4.0}/agent-tasks/0076-schema-version-integrity.md +0 -0
- {project_loop_harness-0.3.3 → project_loop_harness-0.4.0}/agent-tasks/0077-index-output-budget-and-impact-noise.md +0 -0
- {project_loop_harness-0.3.3 → project_loop_harness-0.4.0}/agent-tasks/0078-context-pack-code-context-bridge.md +0 -0
- {project_loop_harness-0.3.3 → project_loop_harness-0.4.0}/agent-tasks/0079-receipt-human-summary.md +0 -0
- {project_loop_harness-0.3.3 → project_loop_harness-0.4.0}/agent-tasks/0080-retrieval-eval-gate.md +0 -0
- {project_loop_harness-0.3.3 → project_loop_harness-0.4.0}/agent-tasks/0081-diff-modes-completion.md +0 -0
- {project_loop_harness-0.3.3 → project_loop_harness-0.4.0}/agent-tasks/0082-receipt-relevance-and-age.md +0 -0
- {project_loop_harness-0.3.3 → project_loop_harness-0.4.0}/agent-tasks/0083-required-section-invariant.md +0 -0
- {project_loop_harness-0.3.3 → project_loop_harness-0.4.0}/agent-tasks/0084-source-commands-honesty.md +0 -0
- {project_loop_harness-0.3.3 → project_loop_harness-0.4.0}/agent-tasks/0085-distribution-source-completeness.md +0 -0
- {project_loop_harness-0.3.3 → project_loop_harness-0.4.0}/agent-tasks/0086-command-surface-alignment.md +0 -0
- {project_loop_harness-0.3.3 → project_loop_harness-0.4.0}/agent-tasks/0087-verification-suggestion-ids.md +0 -0
- {project_loop_harness-0.3.3 → project_loop_harness-0.4.0}/agent-tasks/0088-verification-feedback.md +0 -0
- {project_loop_harness-0.3.3 → project_loop_harness-0.4.0}/agent-tasks/0089-dogfood-fixture-propose.md +0 -0
- {project_loop_harness-0.3.3 → project_loop_harness-0.4.0}/agent-tasks/0090-eval-baseline-record-compare.md +0 -0
- {project_loop_harness-0.3.3 → project_loop_harness-0.4.0}/agent-tasks/0091-refresh-command-scope-fidelity.md +0 -0
- {project_loop_harness-0.3.3 → project_loop_harness-0.4.0}/agent-tasks/0092-idempotent-status-transitions.md +0 -0
- {project_loop_harness-0.3.3 → project_loop_harness-0.4.0}/agent-tasks/0093-evidence-add-command.md +0 -0
- {project_loop_harness-0.3.3 → project_loop_harness-0.4.0}/agent-tasks/0094-job-completion-evidence.md +0 -0
- {project_loop_harness-0.3.3 → project_loop_harness-0.4.0}/agent-tasks/0095-supporting-evidence-health.md +0 -0
- {project_loop_harness-0.3.3 → project_loop_harness-0.4.0}/agent-tasks/0096-evidence-add-path-guards.md +0 -0
- {project_loop_harness-0.3.3 → project_loop_harness-0.4.0}/agent-tasks/0097-evidence-durability-design.md +0 -0
- {project_loop_harness-0.3.3 → project_loop_harness-0.4.0}/agent-tasks/0098-field-feedback-next-weight-and-run-report-scope.md +0 -0
- {project_loop_harness-0.3.3 → project_loop_harness-0.4.0}/agent-tasks/0099-evidence-copy-mode.md +0 -0
- {project_loop_harness-0.3.3 → project_loop_harness-0.4.0}/agent-tasks/0100-evidence-task-linking.md +0 -0
- {project_loop_harness-0.3.3 → project_loop_harness-0.4.0}/agent-tasks/0101-evidence-id-allocation-race.md +0 -0
- {project_loop_harness-0.3.3 → project_loop_harness-0.4.0}/agent-tasks/0102-source-drift-health-warning.md +0 -0
- {project_loop_harness-0.3.3 → project_loop_harness-0.4.0}/agent-tasks/0103-security-policy-v02x.md +0 -0
- {project_loop_harness-0.3.3 → project_loop_harness-0.4.0}/agent-tasks/0104-python-ci-matrix.md +0 -0
- {project_loop_harness-0.3.3 → project_loop_harness-0.4.0}/agent-tasks/0105-evidence-copy-observability.md +0 -0
- {project_loop_harness-0.3.3 → project_loop_harness-0.4.0}/agent-tasks/0106-release-checklist.md +0 -0
- {project_loop_harness-0.3.3 → project_loop_harness-0.4.0}/agent-tasks/0107-agent-tasks-backlog-index.md +0 -0
- {project_loop_harness-0.3.3 → project_loop_harness-0.4.0}/agent-tasks/0108-target-bound-code-context-receipts.md +0 -0
- {project_loop_harness-0.3.3 → project_loop_harness-0.4.0}/agent-tasks/0113-evidence-links-table.md +0 -0
- {project_loop_harness-0.3.3 → project_loop_harness-0.4.0}/agent-tasks/0114-source-hash-drift.md +0 -0
- {project_loop_harness-0.3.3 → project_loop_harness-0.4.0}/agent-tasks/0115-context-pack-contract-fixtures.md +0 -0
- {project_loop_harness-0.3.3 → project_loop_harness-0.4.0}/agent-tasks/0116-receipt-link-agreement-validation.md +0 -0
- {project_loop_harness-0.3.3 → project_loop_harness-0.4.0}/agent-tasks/0117-markdown-target-refresh-command.md +0 -0
- {project_loop_harness-0.3.3 → project_loop_harness-0.4.0}/agent-tasks/0118-canonical-target-bound-handoff-docs.md +0 -0
- {project_loop_harness-0.3.3 → project_loop_harness-0.4.0}/agent-tasks/0119-context-check-preflight.md +0 -0
- {project_loop_harness-0.3.3 → project_loop_harness-0.4.0}/agent-tasks/0120-pcl-finish-terminal-closeout.md +0 -0
- {project_loop_harness-0.3.3 → project_loop_harness-0.4.0}/agent-tasks/0121-human-gate-japanese-guidance.md +0 -0
- {project_loop_harness-0.3.3 → project_loop_harness-0.4.0}/agent-tasks/0122-feature-coverage-noop.md +0 -0
- {project_loop_harness-0.3.3 → project_loop_harness-0.4.0}/agent-tasks/0123-master-trace-intent-index-contract.md +0 -0
- {project_loop_harness-0.3.3 → project_loop_harness-0.4.0}/agent-tasks/0124-baseline-fixtures-v0-3-1.md +0 -0
- {project_loop_harness-0.3.3 → project_loop_harness-0.4.0}/agent-tasks/0125-mcp-stdio-framing-negotiation.md +0 -0
- {project_loop_harness-0.3.3 → project_loop_harness-0.4.0}/agent-tasks/0126-mcp-external-conformance.md +0 -0
- {project_loop_harness-0.3.3 → project_loop_harness-0.4.0}/agent-tasks/0127-transactional-audit-outbox-design.md +0 -0
- {project_loop_harness-0.3.3 → project_loop_harness-0.4.0}/agent-tasks/0128-event-outbox-jsonl-projector.md +0 -0
- {project_loop_harness-0.3.3 → project_loop_harness-0.4.0}/agent-tasks/0129-audit-check-repair-rebuild.md +0 -0
- {project_loop_harness-0.3.3 → project_loop_harness-0.4.0}/agent-tasks/0130-crash-concurrency-test-suite.md +0 -0
- {project_loop_harness-0.3.3 → project_loop_harness-0.4.0}/agent-tasks/0131-guarded-executor-hardening.md +0 -0
- {project_loop_harness-0.3.3 → project_loop_harness-0.4.0}/agent-tasks/0132-master-trace-context-pack-section.md +0 -0
- {project_loop_harness-0.3.3 → project_loop_harness-0.4.0}/agent-tasks/0133-windows-lock-fallback.md +0 -0
- {project_loop_harness-0.3.3 → project_loop_harness-0.4.0}/docs/adoption-guide.md +0 -0
- {project_loop_harness-0.3.3 → project_loop_harness-0.4.0}/docs/adr/0001-hybrid-state.md +0 -0
- {project_loop_harness-0.3.3 → project_loop_harness-0.4.0}/docs/adr/0002-cli-is-the-runtime.md +0 -0
- {project_loop_harness-0.3.3 → project_loop_harness-0.4.0}/docs/adr/0003-static-workflows-before-dynamic-workflows.md +0 -0
- {project_loop_harness-0.3.3 → project_loop_harness-0.4.0}/docs/adr/ADR-002-transactional-audit-outbox.md +0 -0
- {project_loop_harness-0.3.3 → project_loop_harness-0.4.0}/docs/agent-adapter-contract.md +0 -0
- {project_loop_harness-0.3.3 → project_loop_harness-0.4.0}/docs/agent-output-template.md +0 -0
- {project_loop_harness-0.3.3 → project_loop_harness-0.4.0}/docs/agent-roles.md +0 -0
- {project_loop_harness-0.3.3 → project_loop_harness-0.4.0}/docs/code-context.md +0 -0
- {project_loop_harness-0.3.3 → project_loop_harness-0.4.0}/docs/context-check.md +0 -0
- {project_loop_harness-0.3.3 → project_loop_harness-0.4.0}/docs/crash-concurrency-reliability.md +0 -0
- {project_loop_harness-0.3.3 → project_loop_harness-0.4.0}/docs/dashboard-data-contract.md +0 -0
- {project_loop_harness-0.3.3 → project_loop_harness-0.4.0}/docs/dashboard-design.md +0 -0
- {project_loop_harness-0.3.3 → project_loop_harness-0.4.0}/docs/distribution.md +0 -0
- {project_loop_harness-0.3.3 → project_loop_harness-0.4.0}/docs/event-outbox-compatibility.md +0 -0
- {project_loop_harness-0.3.3 → project_loop_harness-0.4.0}/docs/evidence-durability-design.md +0 -0
- {project_loop_harness-0.3.3 → project_loop_harness-0.4.0}/docs/evidence-entry-paths-design.md +0 -0
- {project_loop_harness-0.3.3 → project_loop_harness-0.4.0}/docs/feedback/2026-07-06-ax1-moc1-agent-feedback.md +0 -0
- {project_loop_harness-0.3.3 → project_loop_harness-0.4.0}/docs/golden-path.md +0 -0
- {project_loop_harness-0.3.3 → project_loop_harness-0.4.0}/docs/master-trace-handoff.md +0 -0
- {project_loop_harness-0.3.3 → project_loop_harness-0.4.0}/docs/master-trace-intent-index.md +0 -0
- {project_loop_harness-0.3.3 → project_loop_harness-0.4.0}/docs/mcp-compatibility.md +0 -0
- {project_loop_harness-0.3.3 → project_loop_harness-0.4.0}/docs/mcp-manual-smoke-runbook.md +0 -0
- {project_loop_harness-0.3.3 → project_loop_harness-0.4.0}/docs/plh_v0_1_11_review_agenda.md +0 -0
- {project_loop_harness-0.3.3 → project_loop_harness-0.4.0}/docs/plh_v0_1_12_review_agenda.md +0 -0
- {project_loop_harness-0.3.3 → project_loop_harness-0.4.0}/docs/pypi-publishing.md +0 -0
- {project_loop_harness-0.3.3 → project_loop_harness-0.4.0}/docs/recovery-playbook.md +0 -0
- {project_loop_harness-0.3.3 → project_loop_harness-0.4.0}/docs/release-checklist.md +0 -0
- {project_loop_harness-0.3.3 → project_loop_harness-0.4.0}/docs/release-notes/v0.2.4.md +0 -0
- {project_loop_harness-0.3.3 → project_loop_harness-0.4.0}/docs/release-notes/v0.3.0.md +0 -0
- {project_loop_harness-0.3.3 → project_loop_harness-0.4.0}/docs/release-notes/v0.3.1.md +0 -0
- {project_loop_harness-0.3.3 → project_loop_harness-0.4.0}/docs/release-notes/v0.3.3.md +0 -0
- {project_loop_harness-0.3.3 → project_loop_harness-0.4.0}/docs/releases/v0.3.1-baseline.md +0 -0
- {project_loop_harness-0.3.3 → project_loop_harness-0.4.0}/docs/releases/v0.3.3-mcp-stdio.md +0 -0
- {project_loop_harness-0.3.3 → project_loop_harness-0.4.0}/docs/roadmap/integrated/01-adaptive-loop-architecture.md +0 -0
- {project_loop_harness-0.3.3 → project_loop_harness-0.4.0}/docs/roadmap/integrated/02-contracts-and-data-model.md +0 -0
- {project_loop_harness-0.3.3 → project_loop_harness-0.4.0}/docs/roadmap/integrated/04-evaluation-and-rollout.md +0 -0
- {project_loop_harness-0.3.3 → project_loop_harness-0.4.0}/docs/roadmap/integrated/05-pdm-discussion-guide.md +0 -0
- {project_loop_harness-0.3.3 → project_loop_harness-0.4.0}/docs/roadmap/integrated/06-cli-contract-draft.md +0 -0
- {project_loop_harness-0.3.3 → project_loop_harness-0.4.0}/docs/roadmap/integrated/07-state-machines-and-events.md +0 -0
- {project_loop_harness-0.3.3 → project_loop_harness-0.4.0}/docs/roadmap/integrated/08-repository-integration.md +0 -0
- {project_loop_harness-0.3.3 → project_loop_harness-0.4.0}/docs/roadmap/integrated/09-ai-plc-integration-mapping.md +0 -0
- {project_loop_harness-0.3.3 → project_loop_harness-0.4.0}/docs/roadmap/integrated/README.md +0 -0
- {project_loop_harness-0.3.3 → project_loop_harness-0.4.0}/docs/roadmap/integrated/SOURCE_BASIS.md +0 -0
- {project_loop_harness-0.3.3 → project_loop_harness-0.4.0}/docs/roadmap/integrated/VALIDATION_REPORT.md +0 -0
- {project_loop_harness-0.3.3 → project_loop_harness-0.4.0}/docs/roadmap/integrated/adr/ADR-001-profile-not-entity.md +0 -0
- {project_loop_harness-0.3.3 → project_loop_harness-0.4.0}/docs/roadmap/integrated/adr/ADR-002-transactional-audit-outbox.md +0 -0
- {project_loop_harness-0.3.3 → project_loop_harness-0.4.0}/docs/roadmap/integrated/adr/ADR-003-adaptive-policy-axes.md +0 -0
- {project_loop_harness-0.3.3 → project_loop_harness-0.4.0}/docs/roadmap/integrated/adr/ADR-004-contract-first-promotion.md +0 -0
- {project_loop_harness-0.3.3 → project_loop_harness-0.4.0}/docs/roadmap/integrated/agent-tasks-proposed/0123-release-v0-3-1-baseline.md +0 -0
- {project_loop_harness-0.3.3 → project_loop_harness-0.4.0}/docs/roadmap/integrated/agent-tasks-proposed/0124-mcp-stdio-framing-negotiation.md +0 -0
- {project_loop_harness-0.3.3 → project_loop_harness-0.4.0}/docs/roadmap/integrated/agent-tasks-proposed/0125-mcp-external-conformance.md +0 -0
- {project_loop_harness-0.3.3 → project_loop_harness-0.4.0}/docs/roadmap/integrated/agent-tasks-proposed/0126-transactional-audit-outbox-design.md +0 -0
- {project_loop_harness-0.3.3 → project_loop_harness-0.4.0}/docs/roadmap/integrated/agent-tasks-proposed/0127-event-outbox-jsonl-projector.md +0 -0
- {project_loop_harness-0.3.3 → project_loop_harness-0.4.0}/docs/roadmap/integrated/agent-tasks-proposed/0128-audit-check-repair-rebuild.md +0 -0
- {project_loop_harness-0.3.3 → project_loop_harness-0.4.0}/docs/roadmap/integrated/agent-tasks-proposed/0129-crash-concurrency-test-suite.md +0 -0
- {project_loop_harness-0.3.3 → project_loop_harness-0.4.0}/docs/roadmap/integrated/agent-tasks-proposed/0130-guarded-executor-hardening.md +0 -0
- {project_loop_harness-0.3.3 → project_loop_harness-0.4.0}/docs/roadmap/integrated/agent-tasks-proposed/0131-completion-packet-v1-contract.md +0 -0
- {project_loop_harness-0.3.3 → project_loop_harness-0.4.0}/docs/roadmap/integrated/agent-tasks-proposed/0132-finish-emits-completion-packet.md +0 -0
- {project_loop_harness-0.3.3 → project_loop_harness-0.4.0}/docs/roadmap/integrated/agent-tasks-proposed/0133-lite-pcl-start.md +0 -0
- {project_loop_harness-0.3.3 → project_loop_harness-0.4.0}/docs/roadmap/integrated/agent-tasks-proposed/0134-handoff-packet-pcl-resume.md +0 -0
- {project_loop_harness-0.3.3 → project_loop_harness-0.4.0}/docs/roadmap/integrated/agent-tasks-proposed/0135-work-brief-v1-evidence.md +0 -0
- {project_loop_harness-0.3.3 → project_loop_harness-0.4.0}/docs/roadmap/integrated/agent-tasks-proposed/0136-deterministic-route-recommendation.md +0 -0
- {project_loop_harness-0.3.3 → project_loop_harness-0.4.0}/docs/roadmap/integrated/agent-tasks-proposed/0137-adaptive-policy-explain-override.md +0 -0
- {project_loop_harness-0.3.3 → project_loop_harness-0.4.0}/docs/roadmap/integrated/agent-tasks-proposed/0138-work-brief-revision-replan.md +0 -0
- {project_loop_harness-0.3.3 → project_loop_harness-0.4.0}/docs/roadmap/integrated/agent-tasks-proposed/0139-stale-invalidation-propagation.md +0 -0
- {project_loop_harness-0.3.3 → project_loop_harness-0.4.0}/docs/roadmap/integrated/agent-tasks-proposed/0140-verifier-provenance-separation.md +0 -0
- {project_loop_harness-0.3.3 → project_loop_harness-0.4.0}/docs/roadmap/integrated/agent-tasks-proposed/0141-risk-based-verification-policy.md +0 -0
- {project_loop_harness-0.3.3 → project_loop_harness-0.4.0}/docs/roadmap/integrated/agent-tasks-proposed/0142-profile-contract-boundary.md +0 -0
- {project_loop_harness-0.3.3 → project_loop_harness-0.4.0}/docs/roadmap/integrated/agent-tasks-proposed/0143-discovery-reference-profile.md +0 -0
- {project_loop_harness-0.3.3 → project_loop_harness-0.4.0}/docs/roadmap/integrated/agent-tasks-proposed/0144-decision-proposal-human-selection.md +0 -0
- {project_loop_harness-0.3.3 → project_loop_harness-0.4.0}/docs/roadmap/integrated/agent-tasks-proposed/0145-master-trace-handoff-integration.md +0 -0
- {project_loop_harness-0.3.3 → project_loop_harness-0.4.0}/docs/roadmap/integrated/agent-tasks-proposed/0146-capability-profile-v0.md +0 -0
- {project_loop_harness-0.3.3 → project_loop_harness-0.4.0}/docs/roadmap/integrated/agent-tasks-proposed/0147-budget-profile-incomplete-packet.md +0 -0
- {project_loop_harness-0.3.3 → project_loop_harness-0.4.0}/docs/roadmap/integrated/agent-tasks-proposed/0148-context-cache-delta-handoff.md +0 -0
- {project_loop_harness-0.3.3 → project_loop_harness-0.4.0}/docs/roadmap/integrated/agent-tasks-proposed/0149-knowledge-proposal-experiment.md +0 -0
- {project_loop_harness-0.3.3 → project_loop_harness-0.4.0}/docs/roadmap/integrated/agent-tasks-proposed/0150-cross-model-evaluation-harness.md +0 -0
- {project_loop_harness-0.3.3 → project_loop_harness-0.4.0}/docs/roadmap/integrated/agent-tasks-proposed/0151-design-partner-operations.md +0 -0
- {project_loop_harness-0.3.3 → project_loop_harness-0.4.0}/docs/roadmap/integrated/agent-tasks-proposed/0152-adoption-stability-release.md +0 -0
- {project_loop_harness-0.3.3 → project_loop_harness-0.4.0}/docs/roadmap/integrated/agent-tasks-proposed/README.md +0 -0
- {project_loop_harness-0.3.3 → project_loop_harness-0.4.0}/docs/roadmap/integrated/handoff/ARCHITECTURE_REVIEW_PROMPT.md +0 -0
- {project_loop_harness-0.3.3 → project_loop_harness-0.4.0}/docs/roadmap/integrated/handoff/IMPLEMENTATION_AGENT_PROMPT.md +0 -0
- {project_loop_harness-0.3.3 → project_loop_harness-0.4.0}/docs/roadmap/integrated/handoff/PDM_REVIEW_PROMPT.md +0 -0
- {project_loop_harness-0.3.3 → project_loop_harness-0.4.0}/docs/safety-permissions.md +0 -0
- {project_loop_harness-0.3.3 → project_loop_harness-0.4.0}/docs/v0.2.0-plan.md +0 -0
- {project_loop_harness-0.3.3 → project_loop_harness-0.4.0}/docs/verification-feedback-design.md +0 -0
- {project_loop_harness-0.3.3 → project_loop_harness-0.4.0}/docs/verification-feedback.md +0 -0
- {project_loop_harness-0.3.3 → project_loop_harness-0.4.0}/docs/verification-rubric.md +0 -0
- {project_loop_harness-0.3.3 → project_loop_harness-0.4.0}/docs/workflow-contract.md +0 -0
- {project_loop_harness-0.3.3 → project_loop_harness-0.4.0}/scripts/run_advisory_retrieval_eval.py +0 -0
- {project_loop_harness-0.3.3 → project_loop_harness-0.4.0}/scripts/verify_sdist_contracts.py +0 -0
- {project_loop_harness-0.3.3 → project_loop_harness-0.4.0}/setup.cfg +0 -0
- {project_loop_harness-0.3.3 → project_loop_harness-0.4.0}/src/pcl/__main__.py +0 -0
- {project_loop_harness-0.3.3 → project_loop_harness-0.4.0}/src/pcl/agents.py +0 -0
- {project_loop_harness-0.3.3 → project_loop_harness-0.4.0}/src/pcl/checkpoints.py +0 -0
- {project_loop_harness-0.3.3 → project_loop_harness-0.4.0}/src/pcl/code_context/__init__.py +0 -0
- {project_loop_harness-0.3.3 → project_loop_harness-0.4.0}/src/pcl/code_context/diff.py +0 -0
- {project_loop_harness-0.3.3 → project_loop_harness-0.4.0}/src/pcl/code_context/eval.py +0 -0
- {project_loop_harness-0.3.3 → project_loop_harness-0.4.0}/src/pcl/code_context/impact.py +0 -0
- {project_loop_harness-0.3.3 → project_loop_harness-0.4.0}/src/pcl/code_context/receipts.py +0 -0
- {project_loop_harness-0.3.3 → project_loop_harness-0.4.0}/src/pcl/code_context/scan.py +0 -0
- {project_loop_harness-0.3.3 → project_loop_harness-0.4.0}/src/pcl/code_context/search.py +0 -0
- {project_loop_harness-0.3.3 → project_loop_harness-0.4.0}/src/pcl/code_context/store.py +0 -0
- {project_loop_harness-0.3.3 → project_loop_harness-0.4.0}/src/pcl/code_context/summary.py +0 -0
- {project_loop_harness-0.3.3 → project_loop_harness-0.4.0}/src/pcl/code_context/symbols.py +0 -0
- {project_loop_harness-0.3.3 → project_loop_harness-0.4.0}/src/pcl/code_context/test_hints.py +0 -0
- {project_loop_harness-0.3.3 → project_loop_harness-0.4.0}/src/pcl/code_index.py +0 -0
- {project_loop_harness-0.3.3 → project_loop_harness-0.4.0}/src/pcl/context.py +0 -0
- {project_loop_harness-0.3.3 → project_loop_harness-0.4.0}/src/pcl/context_binding.py +0 -0
- {project_loop_harness-0.3.3 → project_loop_harness-0.4.0}/src/pcl/db/migrations/001_initial.sql +0 -0
- {project_loop_harness-0.3.3 → project_loop_harness-0.4.0}/src/pcl/db/migrations/002_tasks.sql +0 -0
- {project_loop_harness-0.3.3 → project_loop_harness-0.4.0}/src/pcl/db/migrations/003_agent_registry.sql +0 -0
- {project_loop_harness-0.3.3 → project_loop_harness-0.4.0}/src/pcl/db/migrations/004_code_index.sql +0 -0
- {project_loop_harness-0.3.3 → project_loop_harness-0.4.0}/src/pcl/db/migrations/005_verification_feedback.sql +0 -0
- {project_loop_harness-0.3.3 → project_loop_harness-0.4.0}/src/pcl/db/migrations/006_evidence_task_link.sql +0 -0
- {project_loop_harness-0.3.3 → project_loop_harness-0.4.0}/src/pcl/db/migrations/007_evidence_links.sql +0 -0
- {project_loop_harness-0.3.3 → project_loop_harness-0.4.0}/src/pcl/db/migrations/008_event_outbox.sql +0 -0
- {project_loop_harness-0.3.3 → project_loop_harness-0.4.0}/src/pcl/db/schema.sql +0 -0
- {project_loop_harness-0.3.3 → project_loop_harness-0.4.0}/src/pcl/db.py +0 -0
- {project_loop_harness-0.3.3 → project_loop_harness-0.4.0}/src/pcl/decisions.py +0 -0
- {project_loop_harness-0.3.3 → project_loop_harness-0.4.0}/src/pcl/dispatch.py +0 -0
- {project_loop_harness-0.3.3 → project_loop_harness-0.4.0}/src/pcl/errors.py +0 -0
- {project_loop_harness-0.3.3 → project_loop_harness-0.4.0}/src/pcl/escalations.py +0 -0
- {project_loop_harness-0.3.3 → project_loop_harness-0.4.0}/src/pcl/events.py +0 -0
- {project_loop_harness-0.3.3 → project_loop_harness-0.4.0}/src/pcl/exporters.py +0 -0
- {project_loop_harness-0.3.3 → project_loop_harness-0.4.0}/src/pcl/guarded_process.py +0 -0
- {project_loop_harness-0.3.3 → project_loop_harness-0.4.0}/src/pcl/guards.py +0 -0
- {project_loop_harness-0.3.3 → project_loop_harness-0.4.0}/src/pcl/ids.py +0 -0
- {project_loop_harness-0.3.3 → project_loop_harness-0.4.0}/src/pcl/init_project.py +0 -0
- {project_loop_harness-0.3.3 → project_loop_harness-0.4.0}/src/pcl/links.py +0 -0
- {project_loop_harness-0.3.3 → project_loop_harness-0.4.0}/src/pcl/locales.py +0 -0
- {project_loop_harness-0.3.3 → project_loop_harness-0.4.0}/src/pcl/locks.py +0 -0
- {project_loop_harness-0.3.3 → project_loop_harness-0.4.0}/src/pcl/mcp_server.py +0 -0
- {project_loop_harness-0.3.3 → project_loop_harness-0.4.0}/src/pcl/migrations.py +0 -0
- {project_loop_harness-0.3.3 → project_loop_harness-0.4.0}/src/pcl/outbox.py +0 -0
- {project_loop_harness-0.3.3 → project_loop_harness-0.4.0}/src/pcl/paths.py +0 -0
- {project_loop_harness-0.3.3 → project_loop_harness-0.4.0}/src/pcl/receipt_show.py +0 -0
- {project_loop_harness-0.3.3 → project_loop_harness-0.4.0}/src/pcl/redaction.py +0 -0
- {project_loop_harness-0.3.3 → project_loop_harness-0.4.0}/src/pcl/registry.py +0 -0
- {project_loop_harness-0.3.3 → project_loop_harness-0.4.0}/src/pcl/resources.py +0 -0
- {project_loop_harness-0.3.3 → project_loop_harness-0.4.0}/src/pcl/rubric.py +0 -0
- {project_loop_harness-0.3.3 → project_loop_harness-0.4.0}/src/pcl/tasks.py +0 -0
- {project_loop_harness-0.3.3 → project_loop_harness-0.4.0}/src/pcl/templates/dashboard/dashboard.html +0 -0
- {project_loop_harness-0.3.3 → project_loop_harness-0.4.0}/src/pcl/templates/project/AGENTS.block.md +0 -0
- {project_loop_harness-0.3.3 → project_loop_harness-0.4.0}/src/pcl/templates/project/CLAUDE.block.md +0 -0
- {project_loop_harness-0.3.3 → project_loop_harness-0.4.0}/src/pcl/templates/project/gitignore.fragment +0 -0
- {project_loop_harness-0.3.3 → project_loop_harness-0.4.0}/src/pcl/templates/workflows/defect_repair.yaml +0 -0
- {project_loop_harness-0.3.3 → project_loop_harness-0.4.0}/src/pcl/templates/workflows/executor_smoke.yaml +0 -0
- {project_loop_harness-0.3.3 → project_loop_harness-0.4.0}/src/pcl/templates/workflows/feature_coverage.yaml +0 -0
- {project_loop_harness-0.3.3 → project_loop_harness-0.4.0}/src/pcl/templates/workflows/regression_loop.yaml +0 -0
- {project_loop_harness-0.3.3 → project_loop_harness-0.4.0}/src/pcl/test_faults.py +0 -0
- {project_loop_harness-0.3.3 → project_loop_harness-0.4.0}/src/pcl/timeutil.py +0 -0
- {project_loop_harness-0.3.3 → project_loop_harness-0.4.0}/src/pcl/token_estimation.py +0 -0
- {project_loop_harness-0.3.3 → project_loop_harness-0.4.0}/src/pcl/update_check.py +0 -0
- {project_loop_harness-0.3.3 → project_loop_harness-0.4.0}/src/pcl/verifications.py +0 -0
- {project_loop_harness-0.3.3 → project_loop_harness-0.4.0}/src/pcl/workflow_executor.py +0 -0
- {project_loop_harness-0.3.3 → project_loop_harness-0.4.0}/src/pcl/workflow_proposal_validation.py +0 -0
- {project_loop_harness-0.3.3 → project_loop_harness-0.4.0}/src/pcl/workflow_proposals.py +0 -0
- {project_loop_harness-0.3.3 → project_loop_harness-0.4.0}/src/pcl/workflow_verifier.py +0 -0
- {project_loop_harness-0.3.3 → project_loop_harness-0.4.0}/src/pcl/workflow_yaml.py +0 -0
- {project_loop_harness-0.3.3 → project_loop_harness-0.4.0}/src/pcl/workflows.py +0 -0
- {project_loop_harness-0.3.3 → project_loop_harness-0.4.0}/src/project_loop_harness.egg-info/dependency_links.txt +0 -0
- {project_loop_harness-0.3.3 → project_loop_harness-0.4.0}/src/project_loop_harness.egg-info/entry_points.txt +0 -0
- {project_loop_harness-0.3.3 → project_loop_harness-0.4.0}/src/project_loop_harness.egg-info/requires.txt +0 -0
- {project_loop_harness-0.3.3 → project_loop_harness-0.4.0}/src/project_loop_harness.egg-info/top_level.txt +0 -0
- {project_loop_harness-0.3.3 → project_loop_harness-0.4.0}/tests/baseline_fixture_tools.py +0 -0
- {project_loop_harness-0.3.3 → project_loop_harness-0.4.0}/tests/fixtures/code_context_summary_v0.json +0 -0
- {project_loop_harness-0.3.3 → project_loop_harness-0.4.0}/tests/fixtures/context_pack_code_context_contract_v0.json +0 -0
- {project_loop_harness-0.3.3 → project_loop_harness-0.4.0}/tests/fixtures/context_receipt_v0.json +0 -0
- {project_loop_harness-0.3.3 → project_loop_harness-0.4.0}/tests/fixtures/context_receipt_v0_legacy_string_suggestions.json +0 -0
- {project_loop_harness-0.3.3 → project_loop_harness-0.4.0}/tests/fixtures/master_trace_context_contract_v0.json +0 -0
- {project_loop_harness-0.3.3 → project_loop_harness-0.4.0}/tests/fixtures/retrieval_adversarial_v0.json +0 -0
- {project_loop_harness-0.3.3 → project_loop_harness-0.4.0}/tests/fixtures/retrieval_real_history_v0.json +0 -0
- {project_loop_harness-0.3.3 → project_loop_harness-0.4.0}/tests/fixtures/retrieval_v0.json +0 -0
- {project_loop_harness-0.3.3 → project_loop_harness-0.4.0}/tests/fixtures/v0.3.1-baseline/snapshots/context-check-help.json +0 -0
- {project_loop_harness-0.3.3 → project_loop_harness-0.4.0}/tests/fixtures/v0.3.1-baseline/snapshots/empty-context-check-json.json +0 -0
- {project_loop_harness-0.3.3 → project_loop_harness-0.4.0}/tests/fixtures/v0.3.1-baseline/snapshots/empty-next-json.json +0 -0
- {project_loop_harness-0.3.3 → project_loop_harness-0.4.0}/tests/fixtures/v0.3.1-baseline/snapshots/empty-render-json.json +0 -0
- {project_loop_harness-0.3.3 → project_loop_harness-0.4.0}/tests/fixtures/v0.3.1-baseline/snapshots/empty-validate-strict-json.json +0 -0
- {project_loop_harness-0.3.3 → project_loop_harness-0.4.0}/tests/fixtures/v0.3.1-baseline/snapshots/next-help.json +0 -0
- {project_loop_harness-0.3.3 → project_loop_harness-0.4.0}/tests/fixtures/v0.3.1-baseline/snapshots/render-help.json +0 -0
- {project_loop_harness-0.3.3 → project_loop_harness-0.4.0}/tests/fixtures/v0.3.1-baseline/snapshots/representative-context-check-json.json +0 -0
- {project_loop_harness-0.3.3 → project_loop_harness-0.4.0}/tests/fixtures/v0.3.1-baseline/snapshots/representative-next-json.json +0 -0
- {project_loop_harness-0.3.3 → project_loop_harness-0.4.0}/tests/fixtures/v0.3.1-baseline/snapshots/representative-render-json.json +0 -0
- {project_loop_harness-0.3.3 → project_loop_harness-0.4.0}/tests/fixtures/v0.3.1-baseline/snapshots/representative-validate-strict-json.json +0 -0
- {project_loop_harness-0.3.3 → project_loop_harness-0.4.0}/tests/fixtures/v0.3.1-baseline/snapshots/validate-help.json +0 -0
- {project_loop_harness-0.3.3 → project_loop_harness-0.4.0}/tests/mcp/conftest.py +0 -0
- {project_loop_harness-0.3.3 → project_loop_harness-0.4.0}/tests/mcp/fixtures/negative-matrix.json +0 -0
- {project_loop_harness-0.3.3 → project_loop_harness-0.4.0}/tests/mcp/test_external_conformance.py +0 -0
- {project_loop_harness-0.3.3 → project_loop_harness-0.4.0}/tests/test_advisory_retrieval_eval_script.py +0 -0
- {project_loop_harness-0.3.3 → project_loop_harness-0.4.0}/tests/test_agent_adapter_contract.py +0 -0
- {project_loop_harness-0.3.3 → project_loop_harness-0.4.0}/tests/test_agent_output_validation.py +0 -0
- {project_loop_harness-0.3.3 → project_loop_harness-0.4.0}/tests/test_agents.py +0 -0
- {project_loop_harness-0.3.3 → project_loop_harness-0.4.0}/tests/test_audit_log_integrity.py +0 -0
- {project_loop_harness-0.3.3 → project_loop_harness-0.4.0}/tests/test_baseline_fixtures.py +0 -0
- {project_loop_harness-0.3.3 → project_loop_harness-0.4.0}/tests/test_claude_manual_adapter.py +0 -0
- {project_loop_harness-0.3.3 → project_loop_harness-0.4.0}/tests/test_cli_init.py +0 -0
- {project_loop_harness-0.3.3 → project_loop_harness-0.4.0}/tests/test_code_context_summary.py +0 -0
- {project_loop_harness-0.3.3 → project_loop_harness-0.4.0}/tests/test_code_index.py +0 -0
- {project_loop_harness-0.3.3 → project_loop_harness-0.4.0}/tests/test_codex_exec_adapter.py +0 -0
- {project_loop_harness-0.3.3 → project_loop_harness-0.4.0}/tests/test_context_check.py +0 -0
- {project_loop_harness-0.3.3 → project_loop_harness-0.4.0}/tests/test_crash_concurrency.py +0 -0
- {project_loop_harness-0.3.3 → project_loop_harness-0.4.0}/tests/test_dashboard.py +0 -0
- {project_loop_harness-0.3.3 → project_loop_harness-0.4.0}/tests/test_dashboard_data_contract.py +0 -0
- {project_loop_harness-0.3.3 → project_loop_harness-0.4.0}/tests/test_decisions.py +0 -0
- {project_loop_harness-0.3.3 → project_loop_harness-0.4.0}/tests/test_defects.py +0 -0
- {project_loop_harness-0.3.3 → project_loop_harness-0.4.0}/tests/test_dispatch.py +0 -0
- {project_loop_harness-0.3.3 → project_loop_harness-0.4.0}/tests/test_escalations.py +0 -0
- {project_loop_harness-0.3.3 → project_loop_harness-0.4.0}/tests/test_event_outbox.py +0 -0
- {project_loop_harness-0.3.3 → project_loop_harness-0.4.0}/tests/test_evidence_add.py +0 -0
- {project_loop_harness-0.3.3 → project_loop_harness-0.4.0}/tests/test_examples.py +0 -0
- {project_loop_harness-0.3.3 → project_loop_harness-0.4.0}/tests/test_generic_shell_adapter.py +0 -0
- {project_loop_harness-0.3.3 → project_loop_harness-0.4.0}/tests/test_golden_path.py +0 -0
- {project_loop_harness-0.3.3 → project_loop_harness-0.4.0}/tests/test_guarded_process.py +0 -0
- {project_loop_harness-0.3.3 → project_loop_harness-0.4.0}/tests/test_locks.py +0 -0
- {project_loop_harness-0.3.3 → project_loop_harness-0.4.0}/tests/test_mcp_server.py +0 -0
- {project_loop_harness-0.3.3 → project_loop_harness-0.4.0}/tests/test_migrations.py +0 -0
- {project_loop_harness-0.3.3 → project_loop_harness-0.4.0}/tests/test_pypi_publishing.py +0 -0
- {project_loop_harness-0.3.3 → project_loop_harness-0.4.0}/tests/test_receipt_show.py +0 -0
- {project_loop_harness-0.3.3 → project_loop_harness-0.4.0}/tests/test_recovery_playbook.py +0 -0
- {project_loop_harness-0.3.3 → project_loop_harness-0.4.0}/tests/test_registry.py +0 -0
- {project_loop_harness-0.3.3 → project_loop_harness-0.4.0}/tests/test_reports.py +0 -0
- {project_loop_harness-0.3.3 → project_loop_harness-0.4.0}/tests/test_rubric.py +0 -0
- {project_loop_harness-0.3.3 → project_loop_harness-0.4.0}/tests/test_tasks.py +0 -0
- {project_loop_harness-0.3.3 → project_loop_harness-0.4.0}/tests/test_update_check.py +0 -0
- {project_loop_harness-0.3.3 → project_loop_harness-0.4.0}/tests/test_validation_diagnostics.py +0 -0
- {project_loop_harness-0.3.3 → project_loop_harness-0.4.0}/tests/test_verification_feedback.py +0 -0
- {project_loop_harness-0.3.3 → project_loop_harness-0.4.0}/tests/test_workflow_executor.py +0 -0
- {project_loop_harness-0.3.3 → project_loop_harness-0.4.0}/tests/test_workflow_proposals.py +0 -0
- {project_loop_harness-0.3.3 → project_loop_harness-0.4.0}/tests/test_workflow_verifier.py +0 -0
- {project_loop_harness-0.3.3 → project_loop_harness-0.4.0}/tests/test_workflows.py +0 -0
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
# 0134: completion-packet/v1 contract + validator + fixtures
|
|
2
|
+
|
|
3
|
+
- **Status:** Approved(Wave B activation、DEC-0003 / `docs/plan-v0.4.0.md`)
|
|
4
|
+
- **Milestone:** v0.4.0 Dogfood Operations + Three-command Wedge
|
|
5
|
+
- **Priority:** P0
|
|
6
|
+
- **Estimated size:** M
|
|
7
|
+
- **Dependencies:** 0123 (merged — master-trace/v0 契約と同じ claims-not-facts 方針)
|
|
8
|
+
- **Origin:** integrated roadmap bundle 0131(`docs/roadmap/integrated/agent-tasks-proposed/0131-completion-packet-v1-contract.md`)の repo 再採番。bundle の `schemas/completion-packet-v1.schema.json` と `examples/completion-packet-*.json` は**参照素材(planning proposal 権威)**であり、本 spec と実装レビューが契約の正。
|
|
9
|
+
|
|
10
|
+
## Problem
|
|
11
|
+
|
|
12
|
+
`pcl finish`(0120、plan-only)は close-out plan を作れるが、agent/runtime を
|
|
13
|
+
またいで利用できる安定した完了 artifact がない。内部 DB row をそのまま公開
|
|
14
|
+
すると schema migration と外部互換性が結合する。
|
|
15
|
+
|
|
16
|
+
## Goal
|
|
17
|
+
|
|
18
|
+
claim / check / diff / risk / outcome を表現する versioned completion packet
|
|
19
|
+
contract、canonical serializer、validator、fixtures を実装する。runtime
|
|
20
|
+
統合(finish からの emit)は 0135 で行い、本タスクは契約層のみ。
|
|
21
|
+
|
|
22
|
+
## Scope
|
|
23
|
+
|
|
24
|
+
1. `completion-packet/v1` JSON Schema を package data として追加する
|
|
25
|
+
(`pyproject.toml` の `[tool.setuptools.package-data]` に登録し、wheel から
|
|
26
|
+
読めることをテストする)。bundle schema の top-level fields
|
|
27
|
+
(contract_version / packet_id / producer / generated_at / outcome / target
|
|
28
|
+
/ repository / changes / checks / claims / unverified_claims / risks /
|
|
29
|
+
human_decisions / next_action / verifier_provenance(optional))を出発点に、
|
|
30
|
+
現行 PLH の entity model(Goal/Task/Evidence ID 形式)へ合わせて確定する。
|
|
31
|
+
2. positive(minimal / full)+ negative fixtures。negative は期待 reason 付き。
|
|
32
|
+
3. canonical serializer(deterministic ordering)+ schema validator。JSON
|
|
33
|
+
Schema library を新規依存に入れる場合は最小構成にし、入れない場合は既存
|
|
34
|
+
validation 方針(手書き validator)に合わせる — どちらを選んだか根拠を返す。
|
|
35
|
+
4. claim-scoped proof level の決定論的計算 rule を pure module として定義する。
|
|
36
|
+
5. packet ID / timestamp / diff hash の canonicalization を決める
|
|
37
|
+
(packet ID は content hash か random ID か — 選択と根拠を返す)。
|
|
38
|
+
6. read-only 検証 surface: `pcl contract validate --type completion-packet/v1
|
|
39
|
+
<file>`(`--json` あり、stdout purity 維持、exit code contract 明記)。
|
|
40
|
+
7. contract docs(versioning / field semantics / non-guarantees /
|
|
41
|
+
compatibility policy)。`docs/master-trace-intent-index.md` と同じ
|
|
42
|
+
claims-not-facts の trust model を明記する。
|
|
43
|
+
|
|
44
|
+
## Invariants
|
|
45
|
+
|
|
46
|
+
- 別モデル review だけで proof level L2 以上にしない。
|
|
47
|
+
- 実行していない check を passed にしない(passed/failed/skipped/not_run/
|
|
48
|
+
timed_out を区別)。
|
|
49
|
+
- budget exhaustion を completed outcome にしない。
|
|
50
|
+
- packet generation はモデル(LLM)を呼ばない。
|
|
51
|
+
- Evidence は本文でなく ref を既定にする。内部 DB primary key や private path
|
|
52
|
+
を必須 field にしない。
|
|
53
|
+
- 既存 CLI / schema / migration に破壊的変更なし(本タスクは純追加)。
|
|
54
|
+
|
|
55
|
+
## Non-goals
|
|
56
|
+
|
|
57
|
+
- `pcl finish` runtime 統合(0135)。handoff packet(0137)。remote upload。
|
|
58
|
+
UI rendering。
|
|
59
|
+
|
|
60
|
+
## Acceptance criteria
|
|
61
|
+
|
|
62
|
+
- minimal/full fixtures が validator を通り、各 negative fixture が期待
|
|
63
|
+
reason で失敗する。
|
|
64
|
+
- wheel を build し、install した環境から schema package data を読める。
|
|
65
|
+
- proof calculator が claim/Evidence class から決定論的に同じ level を返す
|
|
66
|
+
(table test)。
|
|
67
|
+
- outcome と critical claim proof の整合性 validator が negative を弾く。
|
|
68
|
+
- `pcl contract validate` の stdout/exit code contract test がある。
|
|
69
|
+
- ruff + full pytest green。
|
|
70
|
+
|
|
71
|
+
## Agent execution protocol
|
|
72
|
+
|
|
73
|
+
開始前: 対象 commit SHA、変更予定 path、既存 contract 群(context-pack/v1、
|
|
74
|
+
master-trace/v0)の characterization 結果、scope 外事項。
|
|
75
|
+
完了時: 変更概要と設計判断(schema library 採否、packet ID 方式、bundle
|
|
76
|
+
schema からの差分)、全 test command と exit code、Acceptance 別根拠、
|
|
77
|
+
未確認事項。「テストは通るはず」では close しない。
|
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
# 0135: 既存 pcl finish を completion packet 生成へ拡張(後方互換)
|
|
2
|
+
|
|
3
|
+
- **Status:** Approved(Wave B activation、DEC-0003 / `docs/plan-v0.4.0.md`)
|
|
4
|
+
- **Milestone:** v0.4.0 Dogfood Operations + Three-command Wedge
|
|
5
|
+
- **Priority:** P0
|
|
6
|
+
- **Estimated size:** XL — 必要なら contract 層 / 実行層の 2 PR に分割してよい
|
|
7
|
+
- **Dependencies:** 0134 (contract merged 前提)、0128/0131 (merged)
|
|
8
|
+
- **Origin:** bundle 0132 の repo 再採番。ADOPTION.md 最小合意 4「既存
|
|
9
|
+
`pcl finish`(0120)を置き換えず拡張する」を前提とする。
|
|
10
|
+
|
|
11
|
+
## Problem
|
|
12
|
+
|
|
13
|
+
現行 `pcl finish` は plan-only(`finish_plan`、`src/pcl/commands.py:721`)+
|
|
14
|
+
`--execute`(残 step なしのときだけ validate/render を実行する tail、
|
|
15
|
+
`src/pcl/cli.py:1059`)。外部利用可能な packet、diff 固定、check Evidence、
|
|
16
|
+
terminal outcome を一つの冪等 use case で生成する surface がない。
|
|
17
|
+
|
|
18
|
+
## Goal
|
|
19
|
+
|
|
20
|
+
既存 finish contract(help / JSON / exit code)を後方互換に保ちながら、
|
|
21
|
+
safe plan → check 実行 → validation → completion packet 生成 → state commit
|
|
22
|
+
までを opt-in で実行できるよう拡張する。
|
|
23
|
+
|
|
24
|
+
## Scope
|
|
25
|
+
|
|
26
|
+
1. **最初に現行 `pcl finish` を characterize する**(help / JSON / exit code /
|
|
27
|
+
既存 tests)。既定挙動は plan-only のまま変えない。
|
|
28
|
+
2. 実行 mode は明示 opt-in(例: `--apply` / `--emit-packet`。`--execute` の
|
|
29
|
+
既存意味は維持し、migration 設計を返す)。`--dry-run` / `--json` /
|
|
30
|
+
non-interactive 確認 semantics を定義する。
|
|
31
|
+
3. active target、base/head revision、dirty state、changed paths を解決する。
|
|
32
|
+
git diff hash は packet 生成時 snapshot と一致させ、finish 実行中の repo
|
|
33
|
+
変更を検出する。
|
|
34
|
+
4. check plan は project config / policy から作り、実行前に表示する。
|
|
35
|
+
preconfigured check 以外の任意 command を暗黙実行しない。
|
|
36
|
+
5. check 実行は guarded executor(0131 の `workflow guard` 実行基盤 /
|
|
37
|
+
`guarded_process.py`)を再利用し、stdout/stderr/exit code を Evidence 化
|
|
38
|
+
する(出力上限・redaction は 0131 contract に従う)。
|
|
39
|
+
6. claim–Evidence binding、strict validation、human gate、budget 状態を確認
|
|
40
|
+
し、`completion-packet/v1`(0134)を content-addressed artifact として
|
|
41
|
+
Evidence store に保存する。
|
|
42
|
+
7. packet ref / terminal state / event を**同一 transaction**で commit する
|
|
43
|
+
(0128 outbox 経由。raw SQL 禁止)。packet 生成後に state commit が失敗
|
|
44
|
+
した場合、orphan artifact を `pcl audit check` で検出可能にする(0129 の
|
|
45
|
+
anomaly 分類へ additive 追加)。
|
|
46
|
+
8. 冪等性: 同一 state での再実行は既存 packet を返すか明示的 no-op。
|
|
47
|
+
NO_CHANGES / check 失敗(INCOMPLETE_VALIDATION)/ budget・human gate
|
|
48
|
+
block の各 outcome semantics を定義する。
|
|
49
|
+
|
|
50
|
+
## Invariants
|
|
51
|
+
|
|
52
|
+
- check 未実行を passed にしない。critical blocker を黙って override しない。
|
|
53
|
+
- 同じ packet を重複して別完了として数えない。
|
|
54
|
+
- 既存 finish の plan-only 既定・JSON contract・exit code を壊さない
|
|
55
|
+
(characterization test が証拠)。
|
|
56
|
+
- LLM 呼び出しなし。自動 PR 作成なし。
|
|
57
|
+
|
|
58
|
+
## Non-goals
|
|
59
|
+
|
|
60
|
+
- handoff packet / resume(0137)。profile discovery(Wave C+)。cloud upload。
|
|
61
|
+
|
|
62
|
+
## Acceptance criteria
|
|
63
|
+
|
|
64
|
+
- clean success: checks + packet が Evidence 化され terminal outcome が
|
|
65
|
+
COMPLETED_VERIFIED になる。
|
|
66
|
+
- check failure: INCOMPLETE_VALIDATION packet が残り、task/goal を completed
|
|
67
|
+
にしない。
|
|
68
|
+
- budget / human gate block: 対応する incomplete outcome と next action。
|
|
69
|
+
- no changes: NO_CHANGES を説明し、acceptance Evidence 不足なら active 維持。
|
|
70
|
+
- unchanged completed state の再実行が重複完了を作らない(idempotency test)。
|
|
71
|
+
- finish 実行中の repo 変更 race test。outbox/projector 失敗 path test。
|
|
72
|
+
- 既存 finish regression suite green + ruff + full pytest green。
|
|
73
|
+
|
|
74
|
+
## Agent execution protocol
|
|
75
|
+
|
|
76
|
+
開始前: 対象 commit SHA と 0134 merge 済みの証拠、変更予定 path、現行 finish
|
|
77
|
+
の characterization 結果、scope 外事項。
|
|
78
|
+
完了時: 変更概要と設計判断(opt-in flag 設計、outcome semantics)、全 test
|
|
79
|
+
command と exit code、各 outcome の example packet(Evidence ref)、CLI 互換
|
|
80
|
+
性への影響、Acceptance 別根拠、未確認事項と rollback 方法。
|
|
81
|
+
「テストは通るはず」では close しない。
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
# 0136: Lite `pcl start` entry point
|
|
2
|
+
|
|
3
|
+
- **Status:** Approved(Wave B activation、DEC-0003 / `docs/plan-v0.4.0.md`)
|
|
4
|
+
- **Milestone:** v0.4.0 Dogfood Operations + Three-command Wedge
|
|
5
|
+
- **Priority:** P0
|
|
6
|
+
- **Estimated size:** L
|
|
7
|
+
- **Dependencies:** 0134 (merged — start receipt が packet 語彙と整合するため)
|
|
8
|
+
- **Origin:** bundle 0133 の repo 再採番。
|
|
9
|
+
|
|
10
|
+
## Problem
|
|
11
|
+
|
|
12
|
+
初回利用者が Goal / Feature / Story / Task / Workflow の ontology を理解して
|
|
13
|
+
から価値へ到達する構造は重い。明確な仕事を一つ始めるだけの集約 command が
|
|
14
|
+
必要(M2 exit: 10 分以内・3 操作で有用 packet)。
|
|
15
|
+
|
|
16
|
+
## Goal
|
|
17
|
+
|
|
18
|
+
一つの自然言語 intent から、必要最小の project state と active work target
|
|
19
|
+
を作り、次の agent action を返す `pcl start` を提供する。
|
|
20
|
+
|
|
21
|
+
## Scope
|
|
22
|
+
|
|
23
|
+
1. contract 設計: `pcl start "<intent>"`、`--dry-run`、`--json`、`--no-init`、
|
|
24
|
+
`--new`。`--profile` は Wave C(route/policy)導入前なので**受け付けない**
|
|
25
|
+
(将来 additive に追加できる extension point だけ設計する)。
|
|
26
|
+
2. 未初期化 directory では、明示的な start 操作として最小 project 初期化を
|
|
27
|
+
行う(既存 `init_project`(`src/pcl/init_project.py:243`)を再利用)。
|
|
28
|
+
auto-init が作る files を dry-run で完全列挙する。
|
|
29
|
+
3. 既存 project では最小 target を作る。作る entity は **Goal + Task**
|
|
30
|
+
(現行 model で task が goal に紐づくため)を推奨とするが、Task のみ案との
|
|
31
|
+
比較根拠を返して確定する。既存 creation service(`create_goal`
|
|
32
|
+
`src/pcl/commands.py:43`、`create_task` `src/pcl/tasks.py:37`)を再利用し、
|
|
33
|
+
raw DB write を増やさない。
|
|
34
|
+
4. active work が既にある場合、重複作成せず resume / 明示 `--new` を案内する
|
|
35
|
+
(`pcl next` / `loop_status` の active 判定を再利用)。
|
|
36
|
+
5. intent text / actor / repository revision / created IDs を start receipt
|
|
37
|
+
として Evidence + event に残す(0128 outbox 経由)。
|
|
38
|
+
6. `--json` は confirmation 待ちをせず、created IDs / next action を stable
|
|
39
|
+
schema で返す(stdout purity)。最初の next action は agent-neutral な
|
|
40
|
+
text/JSON にする。
|
|
41
|
+
|
|
42
|
+
## Invariants
|
|
43
|
+
|
|
44
|
+
- 一回の start で重複 active work を作らない。
|
|
45
|
+
- LLM 呼び出しなし。意味的な acceptance criteria を勝手に生成しない。
|
|
46
|
+
- 既存 project files を暗黙上書きしない。dry-run は zero mutation
|
|
47
|
+
(DB/event count 不変を test で証明)。
|
|
48
|
+
- 細かい既存 commands を廃止・変更しない(純追加)。
|
|
49
|
+
- intent string を shell command や path として解釈しない
|
|
50
|
+
(escaping / unicode test 必須)。
|
|
51
|
+
|
|
52
|
+
## Non-goals
|
|
53
|
+
|
|
54
|
+
- Discovery questions / option 生成(Wave C+)。agent process 起動。
|
|
55
|
+
acceptance criteria 自動生成。README 導線の書き換え(v0.5.0)。
|
|
56
|
+
|
|
57
|
+
## Acceptance criteria
|
|
58
|
+
|
|
59
|
+
- empty repo: start dry-run が予定 files/state を列挙し mutation しない。
|
|
60
|
+
- empty repo: start apply 後、active target と next safe action が返る。
|
|
61
|
+
- 既存 active work で再 start すると duplicate を作らず resume 案内になる。
|
|
62
|
+
`--new` で明示的に追加できる。
|
|
63
|
+
- `--json` が created IDs / next action を stable schema で返す(fixture)。
|
|
64
|
+
- 3-command demo transcript(start → finish → resume の start 部分)と
|
|
65
|
+
time-to-first-value の手動計測 note を Evidence として残す。
|
|
66
|
+
- uninitialized / initialized / active-work の matrix test、idempotency、
|
|
67
|
+
Windows path、CLI help/JSON snapshot。ruff + full pytest green。
|
|
68
|
+
|
|
69
|
+
## Agent execution protocol
|
|
70
|
+
|
|
71
|
+
開始前: 対象 commit SHA と 0134 merge 済みの証拠、変更予定 path、既存 init /
|
|
72
|
+
goal / task creation service の characterization 結果、scope 外事項。
|
|
73
|
+
完了時: 変更概要と設計判断(最小 entity の選択根拠、auto-init 既定の判断)、
|
|
74
|
+
全 test command と exit code、created state/event audit、Acceptance 別根拠、
|
|
75
|
+
未確認事項。「テストは通るはず」では close しない。
|
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
# 0137: handoff-packet/v1 + read-only `pcl resume`
|
|
2
|
+
|
|
3
|
+
- **Status:** Approved(Wave B activation、DEC-0003 / `docs/plan-v0.4.0.md`)
|
|
4
|
+
- **Milestone:** v0.4.0 Dogfood Operations + Three-command Wedge
|
|
5
|
+
- **Priority:** P0
|
|
6
|
+
- **Estimated size:** L
|
|
7
|
+
- **Dependencies:** 0135 (merged — latest completion/incomplete packet を選択
|
|
8
|
+
対象に含むため)
|
|
9
|
+
- **Origin:** bundle 0134 の repo 再採番。bundle
|
|
10
|
+
`schemas/handoff-packet-v1.schema.json` / `examples/handoff-packet.json` は
|
|
11
|
+
参照素材、契約の正は本 spec と実装レビュー。
|
|
12
|
+
|
|
13
|
+
## Problem
|
|
14
|
+
|
|
15
|
+
session や model を変えると、利用者は会話履歴・diff・test 結果・decision を
|
|
16
|
+
再説明する。現行 context pack(target-bound、0115/0132)は有用だが、再開の
|
|
17
|
+
ための安定した外部 packet と単純な entry point がない。
|
|
18
|
+
|
|
19
|
+
## Goal
|
|
20
|
+
|
|
21
|
+
現在の work target を小さい handoff packet へ集約し、`pcl resume` で
|
|
22
|
+
read-only に取得できるようにする。
|
|
23
|
+
|
|
24
|
+
## Scope
|
|
25
|
+
|
|
26
|
+
1. `handoff-packet/v1` schema / fixtures / validator を 0134 と同じ方式で
|
|
27
|
+
package 化する(`pcl contract validate --type handoff-packet/v1` に追加)。
|
|
28
|
+
bundle top-level fields(target / current_state / summary / verified /
|
|
29
|
+
unverified / decisions / blockers / risks / next_safe_action / context_refs
|
|
30
|
+
/ intent_index_ref(optional) / budget_remaining(optional))を出発点にする。
|
|
31
|
+
2. `pcl resume [--target] [--format json|markdown] [--output]` を実装する。
|
|
32
|
+
3. 選択 logic: current Goal/Task、latest completion/incomplete packet(0135)、
|
|
33
|
+
Decision、Evidence、blocker、risk。deterministic ordering と target-bound
|
|
34
|
+
link(0113/0116 の links / binding agreement)を使い、superseded/stale
|
|
35
|
+
判定(0114 drift、receipt freshness)を考慮する。
|
|
36
|
+
4. **verified と unverified を分離する**。verified に入れられるのは Evidence
|
|
37
|
+
ref で裏づく claim のみ(claims-not-facts、DEC-0002 と同方針)。
|
|
38
|
+
5. context refs に freshness/hash を付け、本文全量は既定で inline しない
|
|
39
|
+
(`master_trace_context` 0132 と同じ ref 方式)。packet size と omitted
|
|
40
|
+
sections を記録する(`token_estimation.py` charclass/v1 を再利用)。
|
|
41
|
+
6. multiple active targets 時は勝手に選ばず candidate list を返す
|
|
42
|
+
(`context_pack_target_selection_required` の既存 pattern に合わせる)。
|
|
43
|
+
7. read-only 保証: export file 以外の state を変更しない(DB hash / event
|
|
44
|
+
count 不変 assertion を test に入れる)。Markdown renderer は JSON contract
|
|
45
|
+
の派生であり source of truth にしない。`--json` stdout purity。
|
|
46
|
+
|
|
47
|
+
## Invariants
|
|
48
|
+
|
|
49
|
+
- resume は state を変更しない。full transcript を既定で含めない。
|
|
50
|
+
- unverified claim を verified 欄へ入れない。
|
|
51
|
+
- 複数 target を曖昧に自動選択しない。
|
|
52
|
+
- LLM 呼び出しなし。agent 自動起動なし。
|
|
53
|
+
|
|
54
|
+
## Non-goals
|
|
55
|
+
|
|
56
|
+
- Master Trace の生成(既存 0123 契約の消費のみ。bundle 0145 相当の統合深化
|
|
57
|
+
は後続 wave)。remote sync。context embedding。agent-specific adapters。
|
|
58
|
+
|
|
59
|
+
## Acceptance criteria
|
|
60
|
+
|
|
61
|
+
- active / incomplete / completed target ごとに valid handoff packet を生成
|
|
62
|
+
できる(fixture matrix)。
|
|
63
|
+
- **cross-session replay**: 別 session の test agent が packet だけから
|
|
64
|
+
documented next check を再実行できる(integration test または dogfood
|
|
65
|
+
Evidence)。
|
|
66
|
+
- multiple target で exit/JSON が selection required を明示する。
|
|
67
|
+
- packet 生成前後で DB/event count が変わらない(read-only assertion)。
|
|
68
|
+
- Markdown と JSON が同じ verified/unverified semantics を持つ。
|
|
69
|
+
- packet size / omission の記録 test。ruff + full pytest green。
|
|
70
|
+
|
|
71
|
+
## Agent execution protocol
|
|
72
|
+
|
|
73
|
+
開始前: 対象 commit SHA と 0135 merge 済みの証拠、変更予定 path、context
|
|
74
|
+
pack / links / drift の characterization 結果、scope 外事項。
|
|
75
|
+
完了時: 変更概要と設計判断(default target selection の扱い、Markdown
|
|
76
|
+
renderer の安定性を contract に含めたか)、全 test command と exit code、
|
|
77
|
+
sample handoff packets、Acceptance 別根拠、未確認事項。
|
|
78
|
+
「テストは通るはず」では close しない。
|
|
@@ -0,0 +1,101 @@
|
|
|
1
|
+
# 0138: コスト KPI 集計 surface(`pcl report kpi`)
|
|
2
|
+
|
|
3
|
+
- **Status:** Approved(v0.4.0 Dogfood Operations / `docs/plan-v0.4.0.md` §2b)
|
|
4
|
+
- **Milestone:** v0.4.0 Dogfood Operations + Three-command Wedge
|
|
5
|
+
- **Priority:** P1
|
|
6
|
+
- **Estimated size:** M
|
|
7
|
+
- **Dependencies:** なし(0134–0137 と並行可。packet 系指標は「未計測」表示で
|
|
8
|
+
先行実装し、0135/0137 merge 後に additive に埋まる設計にする)
|
|
9
|
+
- **Origin:** growth plan v0.4.0(`docs/growth-plan-v0.2.4-v0.5.md` §3/§5)
|
|
10
|
+
由来。bundle 由来ではない。
|
|
11
|
+
|
|
12
|
+
## Problem
|
|
13
|
+
|
|
14
|
+
growth plan §5 のコスト KPI(テーゼ2 の証明)を dogfood report に書くための
|
|
15
|
+
集計 surface がない。verification feedback stats
|
|
16
|
+
(`src/pcl/verification_feedback.py:145` `verification_feedback_stats`、
|
|
17
|
+
migration 005)は CLI から取れるが、context pack の token 推定は生成時に
|
|
18
|
+
表示されるだけで**永続記録されない**(`src/pcl/context.py` は event を emit
|
|
19
|
+
しない read-only 設計)ため、average_context_pack_tokens を後から集計できない。
|
|
20
|
+
|
|
21
|
+
## Goal
|
|
22
|
+
|
|
23
|
+
既存記録データの read-only 集計 command `pcl report kpi --json` と、集計に
|
|
24
|
+
必要な最小の usage 記録を追加し、`docs/dogfood-report-v0.4.md` の実測値を
|
|
25
|
+
機械的に再現可能にする。
|
|
26
|
+
|
|
27
|
+
## Scope
|
|
28
|
+
|
|
29
|
+
1. `pcl report kpi [--json] [--since <ISO date>]`(read-only)。growth plan
|
|
30
|
+
§5 の指標を section 化して返す:
|
|
31
|
+
- `verification_spend_efficiency`: execution_rate / executed_pass_rate /
|
|
32
|
+
feedback_coverage_rate(既存 `verification_feedback_stats` の再利用 +
|
|
33
|
+
executed_pass_rate × execution_rate の合成値)
|
|
34
|
+
- `context_pack`: 生成回数 / average_context_pack_tokens /
|
|
35
|
+
bound_receipt_coverage(bound receipt 付き生成の割合)
|
|
36
|
+
- `finish`: finish 実行回数 / packet outcome 分布 /
|
|
37
|
+
finish_roundtrips_saved の算出材料(0135 未 merge の間は
|
|
38
|
+
`not_yet_measured` を明示)
|
|
39
|
+
- `handoff`: resume/packet 生成回数(0137 未 merge の間は同上)
|
|
40
|
+
- 各指標に `data_source`(event type / table)と `window` を明記する。
|
|
41
|
+
2. **context pack usage の明示 opt-in 記録**(DEC-0004、2026-07-10 設計確定。
|
|
42
|
+
characterization の結果、default-on の event 追加は既存 read-only 契約
|
|
43
|
+
— `tests/test_context.py::test_master_trace_context_contract_fixtures` が
|
|
44
|
+
pack 前後の events 件数 / `events.jsonl` bytes / outbox 完全一致を assert、
|
|
45
|
+
`docs/architecture.md` / `docs/context-pack.md` も明文化 — と両立せず、
|
|
46
|
+
さらに 0128 以降 event 書込みは write lock + outbox transaction を要する
|
|
47
|
+
ため read path の運用退行(Windows では mutation と直列化)になると判断):
|
|
48
|
+
- `pcl context pack` の**既定挙動は完全 read-only のまま変えない**
|
|
49
|
+
(既存 test / docs は無修正で green のこと)。
|
|
50
|
+
- 新 flag `--record-usage` 指定時のみ、`context_pack_generated` event
|
|
51
|
+
(estimated_token_count / token_estimator / target / bound_receipt 有無 /
|
|
52
|
+
truncated 有無)を 0128 outbox 経由の通常 mutation transaction で
|
|
53
|
+
**正確に 1 件** emit する。event 内容は pack の成果物 selection に影響
|
|
54
|
+
しない。
|
|
55
|
+
- `--record-usage` 指定時に記録へ失敗した場合は明示的に失敗する
|
|
56
|
+
(silent skip 禁止)。
|
|
57
|
+
- docs(`docs/context-pack.md` / `docs/architecture.md`)へ additive に
|
|
58
|
+
「既定 read-only、usage 記録は明示 opt-in」を追記する。
|
|
59
|
+
- dogfood report 雛形と KPI report の `context_pack` section に、記録
|
|
60
|
+
coverage は opt-in 実行分に限られる旨(計測手順として dogfood では
|
|
61
|
+
`--record-usage` を常用する旨)を明記する。
|
|
62
|
+
3. 未計測値の扱い: データが無い指標は `null` + `reason`(`not_yet_measured` /
|
|
63
|
+
`no_data_in_window`)を返す。**擬似精度禁止** — 推定値を実測値のように
|
|
64
|
+
出さない。master_brief_tokens_saved は transcript 比較の手動計測(dogfood
|
|
65
|
+
report 側)とし、この command では算出しない旨を docs に明記する。
|
|
66
|
+
4. `docs/dogfood-report-v0.4.md` の**雛形**を追加する(KPI 表、計測手順、
|
|
67
|
+
2 repo 分の記入欄。実測値の記入は運用作業であり本タスクの scope 外)。
|
|
68
|
+
|
|
69
|
+
## Invariants
|
|
70
|
+
|
|
71
|
+
- report は read-only(DB/event count 不変 assertion)。
|
|
72
|
+
- raw SQL を CLI 外へ公開しない。既存 stats API を再利用する。
|
|
73
|
+
- LLM 呼び出しなし。telemetry / 外部送信なし(計測はすべて local)。
|
|
74
|
+
- 既存 command の JSON contract を壊さない(event 追加は additive)。
|
|
75
|
+
|
|
76
|
+
## Non-goals
|
|
77
|
+
|
|
78
|
+
- master_brief_tokens_saved の自動算出。dashboards の過剰リッチ化。
|
|
79
|
+
KPI の閾値 gate 化(計測が先、判断は v0.4.0 exit review)。
|
|
80
|
+
|
|
81
|
+
## Acceptance criteria
|
|
82
|
+
|
|
83
|
+
- `pcl report kpi --json` が上記 section を stable schema で返す(fixture)。
|
|
84
|
+
- verification 指標が `verification_feedback_stats` と一致する(同一 DB での
|
|
85
|
+
equality test)。
|
|
86
|
+
- `--record-usage` 付き pack 成功時に `context_pack_generated` event が
|
|
87
|
+
正確に 1 件記録され、平均 token 集計が event から再現できる(統合 test)。
|
|
88
|
+
flag なしの pack は従来どおり zero mutation(既存 read-only test が無修正で
|
|
89
|
+
green)。`--record-usage` の記録失敗が明示的エラーになる test。
|
|
90
|
+
- 未計測指標が null + reason で返る(0135/0137 前の状態を fixture 化)。
|
|
91
|
+
- dogfood report 雛形が存在し、KPI 表の各行に計測手段が書かれている。
|
|
92
|
+
- ruff + full pytest green。baseline fixture への影響があれば Intended
|
|
93
|
+
changes 節へ記録されている。
|
|
94
|
+
|
|
95
|
+
## Agent execution protocol
|
|
96
|
+
|
|
97
|
+
開始前: 対象 commit SHA、変更予定 path、context pack read-only test と
|
|
98
|
+
verification stats の characterization 結果、scope 外事項。
|
|
99
|
+
完了時: 変更概要と設計判断(event 追加の契約影響評価を含む)、全 test
|
|
100
|
+
command と exit code、Acceptance 別根拠、未確認事項。
|
|
101
|
+
「テストは通るはず」では close しない。
|
|
@@ -0,0 +1,130 @@
|
|
|
1
|
+
# 0139: executable restart context for `pcl resume`
|
|
2
|
+
|
|
3
|
+
- **Status:** Approved repair for `D-0001` / `F-0006`
|
|
4
|
+
- **Milestone:** v0.4.0 Three-command Wedge exit repair
|
|
5
|
+
- **Priority:** P0
|
|
6
|
+
- **Estimated size:** M
|
|
7
|
+
- **Dependencies:** 0135 and 0137 merged
|
|
8
|
+
- **Evidence:** `E-0050` (Yohaku Dorobo real-task blind replay)
|
|
9
|
+
|
|
10
|
+
## Problem
|
|
11
|
+
|
|
12
|
+
The first real `start -> finish --emit-packet -> resume` dogfood produced a
|
|
13
|
+
valid handoff packet quickly, but a fresh Codex reviewer judged it **NOT
|
|
14
|
+
USEFUL** as a standalone restart packet. It exposed `DONE`, the completion
|
|
15
|
+
outcome, revision, claims, and Evidence IDs, but did not expose a public way to
|
|
16
|
+
resolve those IDs or the concrete commands behind the verified finish checks.
|
|
17
|
+
For terminal targets, `next_safe_action.command` was `null` even though the
|
|
18
|
+
completion packet already contained reproducible passed commands.
|
|
19
|
+
|
|
20
|
+
The reviewer consequently had to inspect package scripts and explore the CLI.
|
|
21
|
+
This fails the cross-session replay acceptance criterion in 0137 and blocks
|
|
22
|
+
G-0007.
|
|
23
|
+
|
|
24
|
+
## Goal
|
|
25
|
+
|
|
26
|
+
Make a generated `handoff-packet/v1` executable enough for a fresh session to:
|
|
27
|
+
|
|
28
|
+
1. identify the acceptance target without prior chat;
|
|
29
|
+
2. resolve every surfaced Evidence ref through a documented read-only command;
|
|
30
|
+
3. rerun at least one verified check directly from the packet;
|
|
31
|
+
4. find bounded project-documentation and changed-path context without inlining
|
|
32
|
+
evidence bodies or full transcripts.
|
|
33
|
+
|
|
34
|
+
## Scope
|
|
35
|
+
|
|
36
|
+
### 1. Read-only Evidence metadata command
|
|
37
|
+
|
|
38
|
+
Add:
|
|
39
|
+
|
|
40
|
+
```text
|
|
41
|
+
pcl evidence show E-XXXX [--json]
|
|
42
|
+
```
|
|
43
|
+
|
|
44
|
+
The command returns stable metadata already held by Project Loop: Evidence ID,
|
|
45
|
+
type, summary, claimed command, recorded path, creation time, and, for supported
|
|
46
|
+
manifest-backed Evidence, member/stored paths and hashes. It must not inline
|
|
47
|
+
artifact bodies, execute the claimed command, or mutate DB/events/outbox/files.
|
|
48
|
+
Unknown IDs return a typed input error.
|
|
49
|
+
|
|
50
|
+
### 2. Additive `handoff-packet/v1` restart context
|
|
51
|
+
|
|
52
|
+
Add an optional top-level `restart_context` object. Old valid v1 packets without
|
|
53
|
+
this field remain valid. Generated packets include it with deterministic,
|
|
54
|
+
bounded ordering:
|
|
55
|
+
|
|
56
|
+
- `target_intent`: factual task description/title or goal title;
|
|
57
|
+
- `acceptance_status`: `intent_only`, `work_brief_linked`, or `missing`;
|
|
58
|
+
- `acceptance_ref`: the target work brief ref when one is actually recorded;
|
|
59
|
+
- `target_review_command`: `pcl task read ... --json` or the corresponding goal
|
|
60
|
+
report command;
|
|
61
|
+
- `verification_commands`: deduplicated reproducible completion checks, keeping
|
|
62
|
+
command, previous status, Evidence refs, and proof source;
|
|
63
|
+
- `evidence_resolution_commands`: one `pcl evidence show ... --json` command per
|
|
64
|
+
referenced Evidence ID;
|
|
65
|
+
- `changed_paths`: bounded paths from the selected completion packet;
|
|
66
|
+
- `documentation_candidates`: bounded changed files whose basename is an
|
|
67
|
+
established project documentation shape such as `README*`, `CONTRIBUTING*`,
|
|
68
|
+
or files under `docs/`. These are navigation hints, not verified acceptance
|
|
69
|
+
facts.
|
|
70
|
+
|
|
71
|
+
The contract must distinguish missing acceptance detail from verified facts. It
|
|
72
|
+
must never infer a launch URL, claim a documentation candidate is authoritative,
|
|
73
|
+
or promote a generic Evidence summary into `verified`.
|
|
74
|
+
|
|
75
|
+
### 3. Executable next safe action
|
|
76
|
+
|
|
77
|
+
For a terminal target with a valid completion packet, use the first
|
|
78
|
+
deterministically ordered reproducible passed check as
|
|
79
|
+
`next_safe_action.command`. If none exists, fall back to the existing review-only
|
|
80
|
+
action with `command: null`. Open human decisions and explicit completion
|
|
81
|
+
`next_action` continue to take precedence.
|
|
82
|
+
|
|
83
|
+
### 4. Markdown and docs
|
|
84
|
+
|
|
85
|
+
Render the restart context from the JSON packet. JSON remains the source of
|
|
86
|
+
truth. Document Evidence metadata lookup and the trust boundary: commands are
|
|
87
|
+
replay instructions sourced from the completion packet, not newly executed
|
|
88
|
+
facts.
|
|
89
|
+
|
|
90
|
+
## Invariants
|
|
91
|
+
|
|
92
|
+
- `pcl resume` and `pcl evidence show` are fully read-only.
|
|
93
|
+
- No evidence body or full transcript is inlined.
|
|
94
|
+
- No shell command is invented from package files; replay commands come only
|
|
95
|
+
from the selected completion packet.
|
|
96
|
+
- No acceptance criteria are invented. `intent_only` is explicit when no
|
|
97
|
+
work-brief link exists.
|
|
98
|
+
- Existing `handoff-packet/v1` fixtures remain valid.
|
|
99
|
+
- Deterministic order, content-derived packet ID, metrics, and size bounds remain
|
|
100
|
+
intact.
|
|
101
|
+
- No schema migration, dependency, LLM call, agent launch, or remote operation.
|
|
102
|
+
|
|
103
|
+
## Acceptance criteria
|
|
104
|
+
|
|
105
|
+
- `pcl evidence show` resolves completion-packet and completion-check Evidence
|
|
106
|
+
metadata and has read-only fingerprint assertions.
|
|
107
|
+
- A real-shaped completion packet yields deterministic verification commands,
|
|
108
|
+
Evidence resolution commands, target intent, changed paths, and README/docs
|
|
109
|
+
candidates.
|
|
110
|
+
- A terminal resume packet exposes a non-null replay command when a reproducible
|
|
111
|
+
passed check exists.
|
|
112
|
+
- A fresh-session integration test uses only `pcl resume` output and public CLI
|
|
113
|
+
commands from the packet to resolve Evidence and rerun a documented check.
|
|
114
|
+
- Missing work brief remains explicit `intent_only`; it is not represented as a
|
|
115
|
+
complete acceptance specification.
|
|
116
|
+
- Markdown and JSON preserve identical verified/unverified and restart-command
|
|
117
|
+
semantics.
|
|
118
|
+
- Old handoff fixture validation, packet tamper checks, finish compatibility,
|
|
119
|
+
ruff, targeted tests, and the full pytest suite pass.
|
|
120
|
+
|
|
121
|
+
## Agent execution protocol
|
|
122
|
+
|
|
123
|
+
Before editing, characterize the Yohaku Dorobo failure in `E-0050`, the existing
|
|
124
|
+
completion-packet check shape, Evidence table/manifest variants, and current
|
|
125
|
+
read-only fingerprint tests. Keep changes to the smallest contract/CLI/docs/test
|
|
126
|
+
surface required here.
|
|
127
|
+
|
|
128
|
+
At completion, report the commit SHA, changed files, exact test commands/counts,
|
|
129
|
+
sample JSON for `pcl resume` and `pcl evidence show`, read-only proof, backward
|
|
130
|
+
compatibility proof, and unresolved limitations. Do not push or merge.
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
# 0140: KPI post-integration data sources
|
|
2
|
+
|
|
3
|
+
- **Status:** Approved release blocker
|
|
4
|
+
- **Milestone:** v0.4.0 release candidate
|
|
5
|
+
- **Priority:** P0
|
|
6
|
+
- **Estimated size:** S
|
|
7
|
+
- **Dependencies:** 0135 and 0137 merged
|
|
8
|
+
|
|
9
|
+
## Problem
|
|
10
|
+
|
|
11
|
+
`pcl report kpi` still labels finish and handoff metrics with
|
|
12
|
+
`not_available_until_task_0135` and `not_available_until_task_0137` after both
|
|
13
|
+
tasks have shipped. The wording is stale. Some finish metrics can now be derived
|
|
14
|
+
from durable `completion_packet_created` events, while `pcl resume` intentionally
|
|
15
|
+
remains read-only and records no execution event.
|
|
16
|
+
|
|
17
|
+
## Goal
|
|
18
|
+
|
|
19
|
+
Report the post-integration measurement truth without inventing data:
|
|
20
|
+
|
|
21
|
+
- derive finish execution count and packet outcome distribution from
|
|
22
|
+
`completion_packet_created` events;
|
|
23
|
+
- keep manually measured round-trip savings explicitly unavailable until a
|
|
24
|
+
comparison is recorded;
|
|
25
|
+
- explain that resume and handoff generation counts are unavailable because the
|
|
26
|
+
read-only operation is not recorded.
|
|
27
|
+
|
|
28
|
+
## Scope
|
|
29
|
+
|
|
30
|
+
1. Query `completion_packet_created` events using the existing `--since` window.
|
|
31
|
+
2. Return `finish_execution_count` as the event count and
|
|
32
|
+
`packet_outcome_distribution` as deterministic outcome counts.
|
|
33
|
+
3. Return `null` plus `no_data_in_window` for the distribution when no finish
|
|
34
|
+
event exists in the selected window.
|
|
35
|
+
4. Return `finish_roundtrips_saved: null` with
|
|
36
|
+
`manual_comparison_not_recorded` and a factual manual-comparison data source.
|
|
37
|
+
5. Return both handoff metrics as `null` with
|
|
38
|
+
`read_only_operation_not_recorded` and a factual `pcl resume` data source.
|
|
39
|
+
6. Update the stable empty fixture and add event/window regression coverage.
|
|
40
|
+
|
|
41
|
+
## Invariants
|
|
42
|
+
|
|
43
|
+
- `pcl report kpi` remains fully read-only.
|
|
44
|
+
- `kpi-report/v1` section and metric names remain unchanged.
|
|
45
|
+
- No resume telemetry, schema migration, dependency, external transmission, or
|
|
46
|
+
fabricated estimate is introduced.
|
|
47
|
+
- Malformed recorded event payloads fail explicitly instead of being skipped.
|
|
48
|
+
|
|
49
|
+
## Acceptance criteria
|
|
50
|
+
|
|
51
|
+
- Empty repositories report finish count `0`, no-data distribution, manual
|
|
52
|
+
round-trip reason, and read-only handoff reasons without stale task IDs.
|
|
53
|
+
- Multiple completion events produce a deterministic outcome distribution.
|
|
54
|
+
- `--since` excludes older completion events.
|
|
55
|
+
- DB size/counts and JSONL bytes remain unchanged by the report.
|
|
56
|
+
- Targeted KPI tests, ruff, and the full test suite pass.
|
|
57
|
+
|