project-loop-harness 0.3.1__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.1/src/project_loop_harness.egg-info → project_loop_harness-0.4.0}/PKG-INFO +6 -4
- {project_loop_harness-0.3.1 → project_loop_harness-0.4.0}/README.md +3 -3
- project_loop_harness-0.4.0/agent-tasks/0123-master-trace-intent-index-contract.md +94 -0
- project_loop_harness-0.4.0/agent-tasks/0124-baseline-fixtures-v0-3-1.md +90 -0
- project_loop_harness-0.4.0/agent-tasks/0125-mcp-stdio-framing-negotiation.md +109 -0
- project_loop_harness-0.4.0/agent-tasks/0126-mcp-external-conformance.md +105 -0
- project_loop_harness-0.4.0/agent-tasks/0127-transactional-audit-outbox-design.md +105 -0
- project_loop_harness-0.4.0/agent-tasks/0128-event-outbox-jsonl-projector.md +113 -0
- project_loop_harness-0.4.0/agent-tasks/0129-audit-check-repair-rebuild.md +118 -0
- project_loop_harness-0.4.0/agent-tasks/0130-crash-concurrency-test-suite.md +108 -0
- project_loop_harness-0.4.0/agent-tasks/0131-guarded-executor-hardening.md +110 -0
- project_loop_harness-0.4.0/agent-tasks/0132-master-trace-context-pack-section.md +100 -0
- project_loop_harness-0.4.0/agent-tasks/0133-windows-lock-fallback.md +71 -0
- 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.4.0/agent-tasks/README.md +87 -0
- {project_loop_harness-0.3.1 → project_loop_harness-0.4.0}/docs/adoption-guide.md +1 -1
- project_loop_harness-0.4.0/docs/adr/ADR-002-transactional-audit-outbox.md +566 -0
- {project_loop_harness-0.3.1 → project_loop_harness-0.4.0}/docs/architecture.md +36 -3
- project_loop_harness-0.4.0/docs/completion-packet-v1.md +140 -0
- {project_loop_harness-0.3.1 → project_loop_harness-0.4.0}/docs/context-pack.md +8 -0
- project_loop_harness-0.4.0/docs/crash-concurrency-reliability.md +47 -0
- {project_loop_harness-0.3.1 → project_loop_harness-0.4.0}/docs/data-model.md +17 -1
- {project_loop_harness-0.3.1 → project_loop_harness-0.4.0}/docs/distribution.md +23 -0
- project_loop_harness-0.4.0/docs/dogfood-report-v0.4.md +109 -0
- project_loop_harness-0.4.0/docs/event-outbox-compatibility.md +76 -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.1 → project_loop_harness-0.4.0}/docs/golden-path.md +2 -2
- {project_loop_harness-0.3.1 → project_loop_harness-0.4.0}/docs/growth-plan-v0.2.4-v0.5.md +105 -15
- project_loop_harness-0.4.0/docs/handoff-packet-v1.md +105 -0
- {project_loop_harness-0.3.1 → project_loop_harness-0.4.0}/docs/implementation-plan.md +37 -3
- {project_loop_harness-0.3.1 → project_loop_harness-0.4.0}/docs/master-trace-handoff.md +8 -1
- project_loop_harness-0.4.0/docs/master-trace-intent-index.md +285 -0
- project_loop_harness-0.4.0/docs/mcp-compatibility.md +56 -0
- project_loop_harness-0.4.0/docs/mcp-manual-smoke-runbook.md +84 -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.3.1 → project_loop_harness-0.4.0}/docs/recovery-playbook.md +48 -2
- {project_loop_harness-0.3.1 → project_loop_harness-0.4.0}/docs/release-checklist.md +1 -1
- {project_loop_harness-0.3.1 → project_loop_harness-0.4.0}/docs/release-notes/v0.3.1.md +8 -4
- project_loop_harness-0.4.0/docs/release-notes/v0.3.3.md +139 -0
- project_loop_harness-0.4.0/docs/release-notes/v0.4.0.md +145 -0
- project_loop_harness-0.4.0/docs/releases/v0.3.1-baseline.md +104 -0
- project_loop_harness-0.4.0/docs/releases/v0.3.3-mcp-stdio.md +18 -0
- project_loop_harness-0.4.0/docs/roadmap/integrated/00-executive-roadmap.md +160 -0
- project_loop_harness-0.4.0/docs/roadmap/integrated/01-adaptive-loop-architecture.md +333 -0
- project_loop_harness-0.4.0/docs/roadmap/integrated/02-contracts-and-data-model.md +244 -0
- project_loop_harness-0.4.0/docs/roadmap/integrated/03-implementation-plan.md +230 -0
- project_loop_harness-0.4.0/docs/roadmap/integrated/04-evaluation-and-rollout.md +191 -0
- project_loop_harness-0.4.0/docs/roadmap/integrated/05-pdm-discussion-guide.md +192 -0
- project_loop_harness-0.4.0/docs/roadmap/integrated/06-cli-contract-draft.md +240 -0
- project_loop_harness-0.4.0/docs/roadmap/integrated/07-state-machines-and-events.md +245 -0
- project_loop_harness-0.4.0/docs/roadmap/integrated/08-repository-integration.md +165 -0
- project_loop_harness-0.4.0/docs/roadmap/integrated/09-ai-plc-integration-mapping.md +107 -0
- project_loop_harness-0.4.0/docs/roadmap/integrated/ADOPTION.md +96 -0
- project_loop_harness-0.4.0/docs/roadmap/integrated/README.md +91 -0
- project_loop_harness-0.4.0/docs/roadmap/integrated/SOURCE_BASIS.md +18 -0
- project_loop_harness-0.4.0/docs/roadmap/integrated/VALIDATION_REPORT.md +17 -0
- project_loop_harness-0.4.0/docs/roadmap/integrated/adr/ADR-001-profile-not-entity.md +39 -0
- project_loop_harness-0.4.0/docs/roadmap/integrated/adr/ADR-002-transactional-audit-outbox.md +42 -0
- project_loop_harness-0.4.0/docs/roadmap/integrated/adr/ADR-003-adaptive-policy-axes.md +32 -0
- project_loop_harness-0.4.0/docs/roadmap/integrated/adr/ADR-004-contract-first-promotion.md +26 -0
- project_loop_harness-0.4.0/docs/roadmap/integrated/agent-tasks-proposed/0123-release-v0-3-1-baseline.md +107 -0
- project_loop_harness-0.4.0/docs/roadmap/integrated/agent-tasks-proposed/0124-mcp-stdio-framing-negotiation.md +109 -0
- project_loop_harness-0.4.0/docs/roadmap/integrated/agent-tasks-proposed/0125-mcp-external-conformance.md +105 -0
- project_loop_harness-0.4.0/docs/roadmap/integrated/agent-tasks-proposed/0126-transactional-audit-outbox-design.md +105 -0
- project_loop_harness-0.4.0/docs/roadmap/integrated/agent-tasks-proposed/0127-event-outbox-jsonl-projector.md +113 -0
- project_loop_harness-0.4.0/docs/roadmap/integrated/agent-tasks-proposed/0128-audit-check-repair-rebuild.md +112 -0
- project_loop_harness-0.4.0/docs/roadmap/integrated/agent-tasks-proposed/0129-crash-concurrency-test-suite.md +108 -0
- project_loop_harness-0.4.0/docs/roadmap/integrated/agent-tasks-proposed/0130-guarded-executor-hardening.md +110 -0
- project_loop_harness-0.4.0/docs/roadmap/integrated/agent-tasks-proposed/0131-completion-packet-v1-contract.md +112 -0
- project_loop_harness-0.4.0/docs/roadmap/integrated/agent-tasks-proposed/0132-finish-emits-completion-packet.md +119 -0
- project_loop_harness-0.4.0/docs/roadmap/integrated/agent-tasks-proposed/0133-lite-pcl-start.md +114 -0
- project_loop_harness-0.4.0/docs/roadmap/integrated/agent-tasks-proposed/0134-handoff-packet-pcl-resume.md +113 -0
- project_loop_harness-0.4.0/docs/roadmap/integrated/agent-tasks-proposed/0135-work-brief-v1-evidence.md +111 -0
- project_loop_harness-0.4.0/docs/roadmap/integrated/agent-tasks-proposed/0136-deterministic-route-recommendation.md +111 -0
- project_loop_harness-0.4.0/docs/roadmap/integrated/agent-tasks-proposed/0137-adaptive-policy-explain-override.md +113 -0
- project_loop_harness-0.4.0/docs/roadmap/integrated/agent-tasks-proposed/0138-work-brief-revision-replan.md +112 -0
- project_loop_harness-0.4.0/docs/roadmap/integrated/agent-tasks-proposed/0139-stale-invalidation-propagation.md +120 -0
- project_loop_harness-0.4.0/docs/roadmap/integrated/agent-tasks-proposed/0140-verifier-provenance-separation.md +108 -0
- project_loop_harness-0.4.0/docs/roadmap/integrated/agent-tasks-proposed/0141-risk-based-verification-policy.md +112 -0
- project_loop_harness-0.4.0/docs/roadmap/integrated/agent-tasks-proposed/0142-profile-contract-boundary.md +113 -0
- project_loop_harness-0.4.0/docs/roadmap/integrated/agent-tasks-proposed/0143-discovery-reference-profile.md +114 -0
- project_loop_harness-0.4.0/docs/roadmap/integrated/agent-tasks-proposed/0144-decision-proposal-human-selection.md +111 -0
- project_loop_harness-0.4.0/docs/roadmap/integrated/agent-tasks-proposed/0145-master-trace-handoff-integration.md +112 -0
- project_loop_harness-0.4.0/docs/roadmap/integrated/agent-tasks-proposed/0146-capability-profile-v0.md +110 -0
- project_loop_harness-0.4.0/docs/roadmap/integrated/agent-tasks-proposed/0147-budget-profile-incomplete-packet.md +113 -0
- project_loop_harness-0.4.0/docs/roadmap/integrated/agent-tasks-proposed/0148-context-cache-delta-handoff.md +115 -0
- project_loop_harness-0.4.0/docs/roadmap/integrated/agent-tasks-proposed/0149-knowledge-proposal-experiment.md +112 -0
- project_loop_harness-0.4.0/docs/roadmap/integrated/agent-tasks-proposed/0150-cross-model-evaluation-harness.md +114 -0
- project_loop_harness-0.4.0/docs/roadmap/integrated/agent-tasks-proposed/0151-design-partner-operations.md +108 -0
- project_loop_harness-0.4.0/docs/roadmap/integrated/agent-tasks-proposed/0152-adoption-stability-release.md +113 -0
- project_loop_harness-0.4.0/docs/roadmap/integrated/agent-tasks-proposed/README.md +79 -0
- project_loop_harness-0.4.0/docs/roadmap/integrated/handoff/ARCHITECTURE_REVIEW_PROMPT.md +37 -0
- project_loop_harness-0.4.0/docs/roadmap/integrated/handoff/IMPLEMENTATION_AGENT_PROMPT.md +44 -0
- project_loop_harness-0.4.0/docs/roadmap/integrated/handoff/PDM_REVIEW_PROMPT.md +29 -0
- {project_loop_harness-0.3.1 → project_loop_harness-0.4.0}/docs/safety-permissions.md +10 -5
- {project_loop_harness-0.3.1 → project_loop_harness-0.4.0}/docs/workflow-contract.md +34 -14
- {project_loop_harness-0.3.1 → project_loop_harness-0.4.0}/pyproject.toml +7 -3
- project_loop_harness-0.4.0/src/pcl/__init__.py +1 -0
- {project_loop_harness-0.3.1 → project_loop_harness-0.4.0}/src/pcl/agents.py +2 -2
- project_loop_harness-0.4.0/src/pcl/audit.py +938 -0
- {project_loop_harness-0.3.1 → project_loop_harness-0.4.0}/src/pcl/checkpoints.py +2 -2
- {project_loop_harness-0.3.1 → project_loop_harness-0.4.0}/src/pcl/cli.py +507 -16
- {project_loop_harness-0.3.1 → project_loop_harness-0.4.0}/src/pcl/code_context/eval.py +3 -3
- {project_loop_harness-0.3.1 → project_loop_harness-0.4.0}/src/pcl/code_context/receipts.py +2 -2
- {project_loop_harness-0.3.1 → project_loop_harness-0.4.0}/src/pcl/code_context/store.py +2 -2
- {project_loop_harness-0.3.1 → project_loop_harness-0.4.0}/src/pcl/commands.py +105 -22
- {project_loop_harness-0.3.1 → project_loop_harness-0.4.0}/src/pcl/context.py +258 -0
- 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.4.0/src/pcl/db/migrations/008_event_outbox.sql +47 -0
- {project_loop_harness-0.3.1 → project_loop_harness-0.4.0}/src/pcl/db/schema.sql +18 -0
- project_loop_harness-0.4.0/src/pcl/db.py +132 -0
- {project_loop_harness-0.3.1 → project_loop_harness-0.4.0}/src/pcl/decisions.py +4 -4
- {project_loop_harness-0.3.1 → project_loop_harness-0.4.0}/src/pcl/dispatch.py +6 -6
- {project_loop_harness-0.3.1 → project_loop_harness-0.4.0}/src/pcl/errors.py +14 -0
- {project_loop_harness-0.3.1 → project_loop_harness-0.4.0}/src/pcl/escalations.py +3 -3
- project_loop_harness-0.4.0/src/pcl/events.py +51 -0
- {project_loop_harness-0.3.1 → project_loop_harness-0.4.0}/src/pcl/evidence.py +53 -2
- 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/guarded_process.py +262 -0
- {project_loop_harness-0.3.1 → project_loop_harness-0.4.0}/src/pcl/init_project.py +2 -2
- project_loop_harness-0.4.0/src/pcl/kpi_report.py +241 -0
- {project_loop_harness-0.3.1 → project_loop_harness-0.4.0}/src/pcl/lifecycle.py +155 -20
- project_loop_harness-0.4.0/src/pcl/locks.py +127 -0
- {project_loop_harness-0.3.1 → project_loop_harness-0.4.0}/src/pcl/mcp_server.py +107 -65
- {project_loop_harness-0.3.1 → project_loop_harness-0.4.0}/src/pcl/migrations.py +222 -86
- project_loop_harness-0.4.0/src/pcl/outbox.py +407 -0
- project_loop_harness-0.4.0/src/pcl/redaction.py +101 -0
- {project_loop_harness-0.3.1 → project_loop_harness-0.4.0}/src/pcl/registry.py +4 -4
- {project_loop_harness-0.3.1 → project_loop_harness-0.4.0}/src/pcl/renderer.py +29 -9
- {project_loop_harness-0.3.1 → 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.1 → project_loop_harness-0.4.0}/src/pcl/stories.py +92 -25
- {project_loop_harness-0.3.1 → project_loop_harness-0.4.0}/src/pcl/tasks.py +5 -5
- {project_loop_harness-0.3.1 → project_loop_harness-0.4.0}/src/pcl/templates/project/pcl.yaml +3 -0
- {project_loop_harness-0.3.1 → project_loop_harness-0.4.0}/src/pcl/templates/skills/project-control-loop/SKILL.md +105 -14
- project_loop_harness-0.4.0/src/pcl/test_faults.py +49 -0
- {project_loop_harness-0.3.1 → project_loop_harness-0.4.0}/src/pcl/validators.py +166 -12
- {project_loop_harness-0.3.1 → project_loop_harness-0.4.0}/src/pcl/verification_feedback.py +26 -16
- {project_loop_harness-0.3.1 → project_loop_harness-0.4.0}/src/pcl/workflow_executor.py +191 -71
- {project_loop_harness-0.3.1 → project_loop_harness-0.4.0}/src/pcl/workflow_proposals.py +4 -4
- {project_loop_harness-0.3.1 → project_loop_harness-0.4.0}/src/pcl/workflow_sandbox.py +402 -122
- {project_loop_harness-0.3.1 → project_loop_harness-0.4.0}/src/pcl/workflows.py +2 -2
- {project_loop_harness-0.3.1 → project_loop_harness-0.4.0/src/project_loop_harness.egg-info}/PKG-INFO +6 -4
- {project_loop_harness-0.3.1 → project_loop_harness-0.4.0}/src/project_loop_harness.egg-info/SOURCES.txt +153 -1
- {project_loop_harness-0.3.1 → project_loop_harness-0.4.0}/src/project_loop_harness.egg-info/requires.txt +3 -0
- project_loop_harness-0.4.0/tests/baseline_fixture_tools.py +223 -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/master_trace_context_contract_v0.json +35 -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/context-check-help.json +11 -0
- project_loop_harness-0.4.0/tests/fixtures/v0.3.1-baseline/snapshots/empty-context-check-json.json +25 -0
- project_loop_harness-0.4.0/tests/fixtures/v0.3.1-baseline/snapshots/empty-next-json.json +68 -0
- project_loop_harness-0.4.0/tests/fixtures/v0.3.1-baseline/snapshots/empty-render-json.json +16 -0
- project_loop_harness-0.4.0/tests/fixtures/v0.3.1-baseline/snapshots/empty-validate-strict-json.json +17 -0
- project_loop_harness-0.4.0/tests/fixtures/v0.3.1-baseline/snapshots/next-help.json +10 -0
- project_loop_harness-0.4.0/tests/fixtures/v0.3.1-baseline/snapshots/pcl-help.json +9 -0
- project_loop_harness-0.4.0/tests/fixtures/v0.3.1-baseline/snapshots/pcl-version.json +9 -0
- project_loop_harness-0.4.0/tests/fixtures/v0.3.1-baseline/snapshots/render-help.json +10 -0
- project_loop_harness-0.4.0/tests/fixtures/v0.3.1-baseline/snapshots/representative-context-check-json.json +51 -0
- project_loop_harness-0.4.0/tests/fixtures/v0.3.1-baseline/snapshots/representative-next-json.json +41 -0
- project_loop_harness-0.4.0/tests/fixtures/v0.3.1-baseline/snapshots/representative-render-json.json +16 -0
- project_loop_harness-0.4.0/tests/fixtures/v0.3.1-baseline/snapshots/representative-validate-strict-json.json +17 -0
- project_loop_harness-0.4.0/tests/fixtures/v0.3.1-baseline/snapshots/validate-help.json +10 -0
- project_loop_harness-0.4.0/tests/mcp/conftest.py +91 -0
- project_loop_harness-0.4.0/tests/mcp/fixtures/negative-matrix.json +34 -0
- project_loop_harness-0.4.0/tests/mcp/fixtures/wire-transcript.json +141 -0
- project_loop_harness-0.4.0/tests/mcp/test_external_conformance.py +229 -0
- {project_loop_harness-0.3.1 → project_loop_harness-0.4.0}/tests/test_agent_output_validation.py +7 -3
- project_loop_harness-0.4.0/tests/test_audit_commands.py +455 -0
- project_loop_harness-0.4.0/tests/test_baseline_fixtures.py +90 -0
- {project_loop_harness-0.3.1 → project_loop_harness-0.4.0}/tests/test_checkpoints.py +29 -2
- {project_loop_harness-0.3.1 → project_loop_harness-0.4.0}/tests/test_cli_init.py +5 -4
- {project_loop_harness-0.3.1 → 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.1 → project_loop_harness-0.4.0}/tests/test_context.py +334 -0
- {project_loop_harness-0.3.1 → project_loop_harness-0.4.0}/tests/test_context_check.py +102 -0
- project_loop_harness-0.4.0/tests/test_contract_cli.py +111 -0
- project_loop_harness-0.4.0/tests/test_crash_concurrency.py +534 -0
- {project_loop_harness-0.3.1 → project_loop_harness-0.4.0}/tests/test_decisions.py +6 -2
- {project_loop_harness-0.3.1 → project_loop_harness-0.4.0}/tests/test_distribution.py +12 -1
- {project_loop_harness-0.3.1 → project_loop_harness-0.4.0}/tests/test_escalations.py +6 -2
- project_loop_harness-0.4.0/tests/test_event_outbox.py +527 -0
- {project_loop_harness-0.3.1 → project_loop_harness-0.4.0}/tests/test_evidence_add.py +17 -20
- project_loop_harness-0.4.0/tests/test_evidence_show.py +96 -0
- {project_loop_harness-0.3.1 → 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_guarded_process.py +100 -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.1 → 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.4.0/tests/test_locks.py +156 -0
- project_loop_harness-0.4.0/tests/test_mcp_server.py +416 -0
- {project_loop_harness-0.3.1 → project_loop_harness-0.4.0}/tests/test_migrations.py +52 -51
- {project_loop_harness-0.3.1 → 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.1 → project_loop_harness-0.4.0}/tests/test_stories.py +18 -2
- {project_loop_harness-0.3.1 → project_loop_harness-0.4.0}/tests/test_validation.py +46 -0
- {project_loop_harness-0.3.1 → project_loop_harness-0.4.0}/tests/test_workflow_executor.py +12 -1
- {project_loop_harness-0.3.1 → project_loop_harness-0.4.0}/tests/test_workflow_sandbox.py +154 -1
- project_loop_harness-0.3.1/agent-tasks/README.md +0 -55
- project_loop_harness-0.3.1/docs/finish.md +0 -75
- project_loop_harness-0.3.1/src/pcl/__init__.py +0 -1
- project_loop_harness-0.3.1/src/pcl/db.py +0 -51
- project_loop_harness-0.3.1/src/pcl/events.py +0 -41
- project_loop_harness-0.3.1/tests/test_finish.py +0 -222
- project_loop_harness-0.3.1/tests/test_mcp_server.py +0 -201
- {project_loop_harness-0.3.1 → project_loop_harness-0.4.0}/LICENSE +0 -0
- {project_loop_harness-0.3.1 → project_loop_harness-0.4.0}/MANIFEST.in +0 -0
- {project_loop_harness-0.3.1 → project_loop_harness-0.4.0}/Makefile +0 -0
- {project_loop_harness-0.3.1 → project_loop_harness-0.4.0}/agent-tasks/0001-hardening-cli.md +0 -0
- {project_loop_harness-0.3.1 → project_loop_harness-0.4.0}/agent-tasks/0002-db-migrations.md +0 -0
- {project_loop_harness-0.3.1 → project_loop_harness-0.4.0}/agent-tasks/0003-workflow-runner.md +0 -0
- {project_loop_harness-0.3.1 → project_loop_harness-0.4.0}/agent-tasks/0004-dashboard-renderer.md +0 -0
- {project_loop_harness-0.3.1 → project_loop_harness-0.4.0}/agent-tasks/0005-agent-integration.md +0 -0
- {project_loop_harness-0.3.1 → project_loop_harness-0.4.0}/agent-tasks/0006-codex-plugin.md +0 -0
- {project_loop_harness-0.3.1 → project_loop_harness-0.4.0}/agent-tasks/0007-mcp-server.md +0 -0
- {project_loop_harness-0.3.1 → project_loop_harness-0.4.0}/agent-tasks/0008-loop-lifecycle.md +0 -0
- {project_loop_harness-0.3.1 → project_loop_harness-0.4.0}/agent-tasks/0009-defect-lifecycle.md +0 -0
- {project_loop_harness-0.3.1 → project_loop_harness-0.4.0}/agent-tasks/0010-reporting-evidence.md +0 -0
- {project_loop_harness-0.3.1 → project_loop_harness-0.4.0}/agent-tasks/0011-validation-invariants.md +0 -0
- {project_loop_harness-0.3.1 → project_loop_harness-0.4.0}/agent-tasks/0012-audit-log-integrity.md +0 -0
- {project_loop_harness-0.3.1 → project_loop_harness-0.4.0}/agent-tasks/0013-validation-diagnostics.md +0 -0
- {project_loop_harness-0.3.1 → project_loop_harness-0.4.0}/agent-tasks/0014-escalation-lifecycle.md +0 -0
- {project_loop_harness-0.3.1 → project_loop_harness-0.4.0}/agent-tasks/0015-decision-lifecycle.md +0 -0
- {project_loop_harness-0.3.1 → project_loop_harness-0.4.0}/agent-tasks/0016-escalation-decision-linkage.md +0 -0
- {project_loop_harness-0.3.1 → project_loop_harness-0.4.0}/agent-tasks/0017-next-action-guided-loop.md +0 -0
- {project_loop_harness-0.3.1 → project_loop_harness-0.4.0}/agent-tasks/0018-readme-golden-path.md +0 -0
- {project_loop_harness-0.3.1 → project_loop_harness-0.4.0}/agent-tasks/0019-recovery-playbook.md +0 -0
- {project_loop_harness-0.3.1 → project_loop_harness-0.4.0}/agent-tasks/0020-example-project-refresh.md +0 -0
- {project_loop_harness-0.3.1 → project_loop_harness-0.4.0}/agent-tasks/0021-agent-adapter-contract.md +0 -0
- {project_loop_harness-0.3.1 → project_loop_harness-0.4.0}/agent-tasks/0022-agent-output-validation.md +0 -0
- {project_loop_harness-0.3.1 → project_loop_harness-0.4.0}/agent-tasks/0023-codex-exec-adapter-hardening.md +0 -0
- {project_loop_harness-0.3.1 → project_loop_harness-0.4.0}/agent-tasks/0024-claude-manual-adapter-hardening.md +0 -0
- {project_loop_harness-0.3.1 → project_loop_harness-0.4.0}/agent-tasks/0025-generic-shell-adapter.md +0 -0
- {project_loop_harness-0.3.1 → project_loop_harness-0.4.0}/agent-tasks/0026-agent-job-evidence-ingestion.md +0 -0
- {project_loop_harness-0.3.1 → project_loop_harness-0.4.0}/agent-tasks/0027-dashboard-data-contract.md +0 -0
- {project_loop_harness-0.3.1 → project_loop_harness-0.4.0}/agent-tasks/0028-dashboard-evidence-navigation.md +0 -0
- {project_loop_harness-0.3.1 → project_loop_harness-0.4.0}/agent-tasks/0029-dashboard-risk-and-blockers.md +0 -0
- {project_loop_harness-0.3.1 → project_loop_harness-0.4.0}/agent-tasks/0030-distribution-readiness.md +0 -0
- {project_loop_harness-0.3.1 → project_loop_harness-0.4.0}/agent-tasks/0031-workflow-proposal-mode.md +0 -0
- {project_loop_harness-0.3.1 → project_loop_harness-0.4.0}/agent-tasks/0032-workflow-proposal-review.md +0 -0
- {project_loop_harness-0.3.1 → project_loop_harness-0.4.0}/agent-tasks/0033-workflow-verifier.md +0 -0
- {project_loop_harness-0.3.1 → project_loop_harness-0.4.0}/agent-tasks/0034-limited-execution-sandbox.md +0 -0
- {project_loop_harness-0.3.1 → project_loop_harness-0.4.0}/agent-tasks/0035-automatic-workflow-executor.md +0 -0
- {project_loop_harness-0.3.1 → project_loop_harness-0.4.0}/agent-tasks/0036-executor-dogfood-workflow.md +0 -0
- {project_loop_harness-0.3.1 → project_loop_harness-0.4.0}/agent-tasks/0037-executor-retry-resume.md +0 -0
- {project_loop_harness-0.3.1 → project_loop_harness-0.4.0}/agent-tasks/0038-story-test-lifecycle.md +0 -0
- {project_loop_harness-0.3.1 → project_loop_harness-0.4.0}/agent-tasks/0039-workflow-yaml-rule-expressions.md +0 -0
- {project_loop_harness-0.3.1 → project_loop_harness-0.4.0}/agent-tasks/0040-test-case-evidence-validation.md +0 -0
- {project_loop_harness-0.3.1 → project_loop_harness-0.4.0}/agent-tasks/0041-feature-inspection-commands.md +0 -0
- {project_loop_harness-0.3.1 → project_loop_harness-0.4.0}/agent-tasks/0042-report-coverage-context.md +0 -0
- {project_loop_harness-0.3.1 → project_loop_harness-0.4.0}/agent-tasks/0043-feature-report.md +0 -0
- {project_loop_harness-0.3.1 → project_loop_harness-0.4.0}/agent-tasks/0044-complete-csv-export.md +0 -0
- {project_loop_harness-0.3.1 → project_loop_harness-0.4.0}/agent-tasks/0045-filtered-job-inspection.md +0 -0
- {project_loop_harness-0.3.1 → project_loop_harness-0.4.0}/agent-tasks/0046-feature-status-lifecycle.md +0 -0
- {project_loop_harness-0.3.1 → project_loop_harness-0.4.0}/agent-tasks/0047-feature-coverage-next-action.md +0 -0
- {project_loop_harness-0.3.1 → project_loop_harness-0.4.0}/agent-tasks/0048-migration-status-command.md +0 -0
- {project_loop_harness-0.3.1 → project_loop_harness-0.4.0}/agent-tasks/0049-render-json-artifact-paths.md +0 -0
- {project_loop_harness-0.3.1 → project_loop_harness-0.4.0}/agent-tasks/0050-codex-plugin-package-inventory.md +0 -0
- {project_loop_harness-0.3.1 → project_loop_harness-0.4.0}/agent-tasks/0051-mcp-render-artifact-paths.md +0 -0
- {project_loop_harness-0.3.1 → project_loop_harness-0.4.0}/agent-tasks/0052-lifecycle-failure-job-cleanup.md +0 -0
- {project_loop_harness-0.3.1 → project_loop_harness-0.4.0}/agent-tasks/0053-prompt-job-json-handoff.md +0 -0
- {project_loop_harness-0.3.1 → project_loop_harness-0.4.0}/agent-tasks/0054-human-queue-linkage-cli.md +0 -0
- {project_loop_harness-0.3.1 → project_loop_harness-0.4.0}/agent-tasks/0055-workflow-proposal-list-filter.md +0 -0
- {project_loop_harness-0.3.1 → project_loop_harness-0.4.0}/agent-tasks/0056-sandbox-noop-execution-guard.md +0 -0
- {project_loop_harness-0.3.1 → project_loop_harness-0.4.0}/agent-tasks/0057-executor-no-executable-step-guard.md +0 -0
- {project_loop_harness-0.3.1 → project_loop_harness-0.4.0}/agent-tasks/0058-dogfood-usability-hardening.md +0 -0
- {project_loop_harness-0.3.1 → project_loop_harness-0.4.0}/agent-tasks/0059-checkpoint-review-guidance.md +0 -0
- {project_loop_harness-0.3.1 → project_loop_harness-0.4.0}/agent-tasks/0060-pypi-trusted-publishing.md +0 -0
- {project_loop_harness-0.3.1 → project_loop_harness-0.4.0}/agent-tasks/0061-context-pack-v1.md +0 -0
- {project_loop_harness-0.3.1 → project_loop_harness-0.4.0}/agent-tasks/0062-task-backlog-entity.md +0 -0
- {project_loop_harness-0.3.1 → project_loop_harness-0.4.0}/agent-tasks/0063-structured-verification-rubric.md +0 -0
- {project_loop_harness-0.3.1 → project_loop_harness-0.4.0}/agent-tasks/0064-task-loop-integration.md +0 -0
- {project_loop_harness-0.3.1 → project_loop_harness-0.4.0}/agent-tasks/0065-dashboard-human-decisions.md +0 -0
- {project_loop_harness-0.3.1 → project_loop_harness-0.4.0}/agent-tasks/0066-agent-registry-lease.md +0 -0
- {project_loop_harness-0.3.1 → project_loop_harness-0.4.0}/agent-tasks/0067-context-pack-improvements.md +0 -0
- {project_loop_harness-0.3.1 → project_loop_harness-0.4.0}/agent-tasks/0068-trust-hardening.md +0 -0
- {project_loop_harness-0.3.1 → project_loop_harness-0.4.0}/agent-tasks/0069-explainable-code-context-v0.md +0 -0
- {project_loop_harness-0.3.1 → project_loop_harness-0.4.0}/agent-tasks/0070-human-decision-cockpit.md +0 -0
- {project_loop_harness-0.3.1 → project_loop_harness-0.4.0}/agent-tasks/0071-dogfood-impact-precision.md +0 -0
- {project_loop_harness-0.3.1 → project_loop_harness-0.4.0}/agent-tasks/0072-sensitive-omission.md +0 -0
- {project_loop_harness-0.3.1 → project_loop_harness-0.4.0}/agent-tasks/0073-code-context-module-split.md +0 -0
- {project_loop_harness-0.3.1 → project_loop_harness-0.4.0}/agent-tasks/0074-search-snapshot-consistency.md +0 -0
- {project_loop_harness-0.3.1 → project_loop_harness-0.4.0}/agent-tasks/0075-diff-source-modes.md +0 -0
- {project_loop_harness-0.3.1 → project_loop_harness-0.4.0}/agent-tasks/0076-schema-version-integrity.md +0 -0
- {project_loop_harness-0.3.1 → project_loop_harness-0.4.0}/agent-tasks/0077-index-output-budget-and-impact-noise.md +0 -0
- {project_loop_harness-0.3.1 → project_loop_harness-0.4.0}/agent-tasks/0078-context-pack-code-context-bridge.md +0 -0
- {project_loop_harness-0.3.1 → project_loop_harness-0.4.0}/agent-tasks/0079-receipt-human-summary.md +0 -0
- {project_loop_harness-0.3.1 → project_loop_harness-0.4.0}/agent-tasks/0080-retrieval-eval-gate.md +0 -0
- {project_loop_harness-0.3.1 → project_loop_harness-0.4.0}/agent-tasks/0081-diff-modes-completion.md +0 -0
- {project_loop_harness-0.3.1 → project_loop_harness-0.4.0}/agent-tasks/0082-receipt-relevance-and-age.md +0 -0
- {project_loop_harness-0.3.1 → project_loop_harness-0.4.0}/agent-tasks/0083-required-section-invariant.md +0 -0
- {project_loop_harness-0.3.1 → project_loop_harness-0.4.0}/agent-tasks/0084-source-commands-honesty.md +0 -0
- {project_loop_harness-0.3.1 → project_loop_harness-0.4.0}/agent-tasks/0085-distribution-source-completeness.md +0 -0
- {project_loop_harness-0.3.1 → project_loop_harness-0.4.0}/agent-tasks/0086-command-surface-alignment.md +0 -0
- {project_loop_harness-0.3.1 → project_loop_harness-0.4.0}/agent-tasks/0087-verification-suggestion-ids.md +0 -0
- {project_loop_harness-0.3.1 → project_loop_harness-0.4.0}/agent-tasks/0088-verification-feedback.md +0 -0
- {project_loop_harness-0.3.1 → project_loop_harness-0.4.0}/agent-tasks/0089-dogfood-fixture-propose.md +0 -0
- {project_loop_harness-0.3.1 → project_loop_harness-0.4.0}/agent-tasks/0090-eval-baseline-record-compare.md +0 -0
- {project_loop_harness-0.3.1 → project_loop_harness-0.4.0}/agent-tasks/0091-refresh-command-scope-fidelity.md +0 -0
- {project_loop_harness-0.3.1 → project_loop_harness-0.4.0}/agent-tasks/0092-idempotent-status-transitions.md +0 -0
- {project_loop_harness-0.3.1 → project_loop_harness-0.4.0}/agent-tasks/0093-evidence-add-command.md +0 -0
- {project_loop_harness-0.3.1 → project_loop_harness-0.4.0}/agent-tasks/0094-job-completion-evidence.md +0 -0
- {project_loop_harness-0.3.1 → project_loop_harness-0.4.0}/agent-tasks/0095-supporting-evidence-health.md +0 -0
- {project_loop_harness-0.3.1 → project_loop_harness-0.4.0}/agent-tasks/0096-evidence-add-path-guards.md +0 -0
- {project_loop_harness-0.3.1 → project_loop_harness-0.4.0}/agent-tasks/0097-evidence-durability-design.md +0 -0
- {project_loop_harness-0.3.1 → 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.1 → project_loop_harness-0.4.0}/agent-tasks/0099-evidence-copy-mode.md +0 -0
- {project_loop_harness-0.3.1 → project_loop_harness-0.4.0}/agent-tasks/0100-evidence-task-linking.md +0 -0
- {project_loop_harness-0.3.1 → project_loop_harness-0.4.0}/agent-tasks/0101-evidence-id-allocation-race.md +0 -0
- {project_loop_harness-0.3.1 → project_loop_harness-0.4.0}/agent-tasks/0102-source-drift-health-warning.md +0 -0
- {project_loop_harness-0.3.1 → project_loop_harness-0.4.0}/agent-tasks/0103-security-policy-v02x.md +0 -0
- {project_loop_harness-0.3.1 → project_loop_harness-0.4.0}/agent-tasks/0104-python-ci-matrix.md +0 -0
- {project_loop_harness-0.3.1 → project_loop_harness-0.4.0}/agent-tasks/0105-evidence-copy-observability.md +0 -0
- {project_loop_harness-0.3.1 → project_loop_harness-0.4.0}/agent-tasks/0106-release-checklist.md +0 -0
- {project_loop_harness-0.3.1 → project_loop_harness-0.4.0}/agent-tasks/0107-agent-tasks-backlog-index.md +0 -0
- {project_loop_harness-0.3.1 → project_loop_harness-0.4.0}/agent-tasks/0108-target-bound-code-context-receipts.md +0 -0
- {project_loop_harness-0.3.1 → project_loop_harness-0.4.0}/agent-tasks/0113-evidence-links-table.md +0 -0
- {project_loop_harness-0.3.1 → project_loop_harness-0.4.0}/agent-tasks/0114-source-hash-drift.md +0 -0
- {project_loop_harness-0.3.1 → project_loop_harness-0.4.0}/agent-tasks/0115-context-pack-contract-fixtures.md +0 -0
- {project_loop_harness-0.3.1 → project_loop_harness-0.4.0}/agent-tasks/0116-receipt-link-agreement-validation.md +0 -0
- {project_loop_harness-0.3.1 → project_loop_harness-0.4.0}/agent-tasks/0117-markdown-target-refresh-command.md +0 -0
- {project_loop_harness-0.3.1 → project_loop_harness-0.4.0}/agent-tasks/0118-canonical-target-bound-handoff-docs.md +0 -0
- {project_loop_harness-0.3.1 → project_loop_harness-0.4.0}/agent-tasks/0119-context-check-preflight.md +0 -0
- {project_loop_harness-0.3.1 → project_loop_harness-0.4.0}/agent-tasks/0120-pcl-finish-terminal-closeout.md +0 -0
- {project_loop_harness-0.3.1 → project_loop_harness-0.4.0}/agent-tasks/0121-human-gate-japanese-guidance.md +0 -0
- {project_loop_harness-0.3.1 → project_loop_harness-0.4.0}/agent-tasks/0122-feature-coverage-noop.md +0 -0
- {project_loop_harness-0.3.1 → project_loop_harness-0.4.0}/docs/adr/0001-hybrid-state.md +0 -0
- {project_loop_harness-0.3.1 → project_loop_harness-0.4.0}/docs/adr/0002-cli-is-the-runtime.md +0 -0
- {project_loop_harness-0.3.1 → project_loop_harness-0.4.0}/docs/adr/0003-static-workflows-before-dynamic-workflows.md +0 -0
- {project_loop_harness-0.3.1 → project_loop_harness-0.4.0}/docs/agent-adapter-contract.md +0 -0
- {project_loop_harness-0.3.1 → project_loop_harness-0.4.0}/docs/agent-output-template.md +0 -0
- {project_loop_harness-0.3.1 → project_loop_harness-0.4.0}/docs/agent-roles.md +0 -0
- {project_loop_harness-0.3.1 → project_loop_harness-0.4.0}/docs/code-context.md +0 -0
- {project_loop_harness-0.3.1 → project_loop_harness-0.4.0}/docs/context-check.md +0 -0
- {project_loop_harness-0.3.1 → project_loop_harness-0.4.0}/docs/dashboard-data-contract.md +0 -0
- {project_loop_harness-0.3.1 → project_loop_harness-0.4.0}/docs/dashboard-design.md +0 -0
- {project_loop_harness-0.3.1 → project_loop_harness-0.4.0}/docs/evidence-durability-design.md +0 -0
- {project_loop_harness-0.3.1 → project_loop_harness-0.4.0}/docs/evidence-entry-paths-design.md +0 -0
- {project_loop_harness-0.3.1 → project_loop_harness-0.4.0}/docs/feedback/2026-07-06-ax1-moc1-agent-feedback.md +0 -0
- {project_loop_harness-0.3.1 → project_loop_harness-0.4.0}/docs/plh_v0_1_11_review_agenda.md +0 -0
- {project_loop_harness-0.3.1 → project_loop_harness-0.4.0}/docs/plh_v0_1_12_review_agenda.md +0 -0
- {project_loop_harness-0.3.1 → project_loop_harness-0.4.0}/docs/pypi-publishing.md +0 -0
- {project_loop_harness-0.3.1 → project_loop_harness-0.4.0}/docs/release-notes/v0.2.4.md +0 -0
- {project_loop_harness-0.3.1 → project_loop_harness-0.4.0}/docs/release-notes/v0.3.0.md +0 -0
- {project_loop_harness-0.3.1 → project_loop_harness-0.4.0}/docs/v0.2.0-plan.md +0 -0
- {project_loop_harness-0.3.1 → project_loop_harness-0.4.0}/docs/verification-feedback-design.md +0 -0
- {project_loop_harness-0.3.1 → project_loop_harness-0.4.0}/docs/verification-feedback.md +0 -0
- {project_loop_harness-0.3.1 → project_loop_harness-0.4.0}/docs/verification-rubric.md +0 -0
- {project_loop_harness-0.3.1 → project_loop_harness-0.4.0}/scripts/run_advisory_retrieval_eval.py +0 -0
- {project_loop_harness-0.3.1 → project_loop_harness-0.4.0}/scripts/verify_sdist_contracts.py +0 -0
- {project_loop_harness-0.3.1 → project_loop_harness-0.4.0}/setup.cfg +0 -0
- {project_loop_harness-0.3.1 → project_loop_harness-0.4.0}/src/pcl/__main__.py +0 -0
- {project_loop_harness-0.3.1 → project_loop_harness-0.4.0}/src/pcl/code_context/__init__.py +0 -0
- {project_loop_harness-0.3.1 → project_loop_harness-0.4.0}/src/pcl/code_context/diff.py +0 -0
- {project_loop_harness-0.3.1 → project_loop_harness-0.4.0}/src/pcl/code_context/impact.py +0 -0
- {project_loop_harness-0.3.1 → project_loop_harness-0.4.0}/src/pcl/code_context/scan.py +0 -0
- {project_loop_harness-0.3.1 → project_loop_harness-0.4.0}/src/pcl/code_context/search.py +0 -0
- {project_loop_harness-0.3.1 → project_loop_harness-0.4.0}/src/pcl/code_context/summary.py +0 -0
- {project_loop_harness-0.3.1 → project_loop_harness-0.4.0}/src/pcl/code_context/symbols.py +0 -0
- {project_loop_harness-0.3.1 → project_loop_harness-0.4.0}/src/pcl/code_context/test_hints.py +0 -0
- {project_loop_harness-0.3.1 → project_loop_harness-0.4.0}/src/pcl/code_index.py +0 -0
- {project_loop_harness-0.3.1 → project_loop_harness-0.4.0}/src/pcl/context_binding.py +0 -0
- {project_loop_harness-0.3.1 → project_loop_harness-0.4.0}/src/pcl/db/migrations/001_initial.sql +0 -0
- {project_loop_harness-0.3.1 → project_loop_harness-0.4.0}/src/pcl/db/migrations/002_tasks.sql +0 -0
- {project_loop_harness-0.3.1 → project_loop_harness-0.4.0}/src/pcl/db/migrations/003_agent_registry.sql +0 -0
- {project_loop_harness-0.3.1 → project_loop_harness-0.4.0}/src/pcl/db/migrations/004_code_index.sql +0 -0
- {project_loop_harness-0.3.1 → project_loop_harness-0.4.0}/src/pcl/db/migrations/005_verification_feedback.sql +0 -0
- {project_loop_harness-0.3.1 → project_loop_harness-0.4.0}/src/pcl/db/migrations/006_evidence_task_link.sql +0 -0
- {project_loop_harness-0.3.1 → project_loop_harness-0.4.0}/src/pcl/db/migrations/007_evidence_links.sql +0 -0
- {project_loop_harness-0.3.1 → project_loop_harness-0.4.0}/src/pcl/exporters.py +0 -0
- {project_loop_harness-0.3.1 → project_loop_harness-0.4.0}/src/pcl/guards.py +0 -0
- {project_loop_harness-0.3.1 → project_loop_harness-0.4.0}/src/pcl/ids.py +0 -0
- {project_loop_harness-0.3.1 → project_loop_harness-0.4.0}/src/pcl/links.py +0 -0
- {project_loop_harness-0.3.1 → project_loop_harness-0.4.0}/src/pcl/locales.py +0 -0
- {project_loop_harness-0.3.1 → project_loop_harness-0.4.0}/src/pcl/paths.py +0 -0
- {project_loop_harness-0.3.1 → project_loop_harness-0.4.0}/src/pcl/receipt_show.py +0 -0
- {project_loop_harness-0.3.1 → project_loop_harness-0.4.0}/src/pcl/resources.py +0 -0
- {project_loop_harness-0.3.1 → project_loop_harness-0.4.0}/src/pcl/rubric.py +0 -0
- {project_loop_harness-0.3.1 → project_loop_harness-0.4.0}/src/pcl/templates/dashboard/dashboard.html +0 -0
- {project_loop_harness-0.3.1 → project_loop_harness-0.4.0}/src/pcl/templates/project/AGENTS.block.md +0 -0
- {project_loop_harness-0.3.1 → project_loop_harness-0.4.0}/src/pcl/templates/project/CLAUDE.block.md +0 -0
- {project_loop_harness-0.3.1 → project_loop_harness-0.4.0}/src/pcl/templates/project/gitignore.fragment +0 -0
- {project_loop_harness-0.3.1 → project_loop_harness-0.4.0}/src/pcl/templates/workflows/defect_repair.yaml +0 -0
- {project_loop_harness-0.3.1 → project_loop_harness-0.4.0}/src/pcl/templates/workflows/executor_smoke.yaml +0 -0
- {project_loop_harness-0.3.1 → project_loop_harness-0.4.0}/src/pcl/templates/workflows/feature_coverage.yaml +0 -0
- {project_loop_harness-0.3.1 → project_loop_harness-0.4.0}/src/pcl/templates/workflows/regression_loop.yaml +0 -0
- {project_loop_harness-0.3.1 → project_loop_harness-0.4.0}/src/pcl/timeutil.py +0 -0
- {project_loop_harness-0.3.1 → project_loop_harness-0.4.0}/src/pcl/token_estimation.py +0 -0
- {project_loop_harness-0.3.1 → project_loop_harness-0.4.0}/src/pcl/update_check.py +0 -0
- {project_loop_harness-0.3.1 → project_loop_harness-0.4.0}/src/pcl/verifications.py +0 -0
- {project_loop_harness-0.3.1 → project_loop_harness-0.4.0}/src/pcl/workflow_proposal_validation.py +0 -0
- {project_loop_harness-0.3.1 → project_loop_harness-0.4.0}/src/pcl/workflow_verifier.py +0 -0
- {project_loop_harness-0.3.1 → project_loop_harness-0.4.0}/src/pcl/workflow_yaml.py +0 -0
- {project_loop_harness-0.3.1 → project_loop_harness-0.4.0}/src/project_loop_harness.egg-info/dependency_links.txt +0 -0
- {project_loop_harness-0.3.1 → project_loop_harness-0.4.0}/src/project_loop_harness.egg-info/entry_points.txt +0 -0
- {project_loop_harness-0.3.1 → project_loop_harness-0.4.0}/src/project_loop_harness.egg-info/top_level.txt +0 -0
- {project_loop_harness-0.3.1 → project_loop_harness-0.4.0}/tests/fixtures/code_context_summary_v0.json +0 -0
- {project_loop_harness-0.3.1 → project_loop_harness-0.4.0}/tests/fixtures/context_pack_code_context_contract_v0.json +0 -0
- {project_loop_harness-0.3.1 → project_loop_harness-0.4.0}/tests/fixtures/context_receipt_v0.json +0 -0
- {project_loop_harness-0.3.1 → project_loop_harness-0.4.0}/tests/fixtures/context_receipt_v0_legacy_string_suggestions.json +0 -0
- {project_loop_harness-0.3.1 → project_loop_harness-0.4.0}/tests/fixtures/retrieval_adversarial_v0.json +0 -0
- {project_loop_harness-0.3.1 → project_loop_harness-0.4.0}/tests/fixtures/retrieval_real_history_v0.json +0 -0
- {project_loop_harness-0.3.1 → project_loop_harness-0.4.0}/tests/fixtures/retrieval_v0.json +0 -0
- {project_loop_harness-0.3.1 → project_loop_harness-0.4.0}/tests/test_advisory_retrieval_eval_script.py +0 -0
- {project_loop_harness-0.3.1 → project_loop_harness-0.4.0}/tests/test_agent_adapter_contract.py +0 -0
- {project_loop_harness-0.3.1 → project_loop_harness-0.4.0}/tests/test_agents.py +0 -0
- {project_loop_harness-0.3.1 → project_loop_harness-0.4.0}/tests/test_audit_log_integrity.py +0 -0
- {project_loop_harness-0.3.1 → project_loop_harness-0.4.0}/tests/test_claude_manual_adapter.py +0 -0
- {project_loop_harness-0.3.1 → project_loop_harness-0.4.0}/tests/test_code_context_summary.py +0 -0
- {project_loop_harness-0.3.1 → project_loop_harness-0.4.0}/tests/test_code_index.py +0 -0
- {project_loop_harness-0.3.1 → project_loop_harness-0.4.0}/tests/test_codex_exec_adapter.py +0 -0
- {project_loop_harness-0.3.1 → project_loop_harness-0.4.0}/tests/test_dashboard.py +0 -0
- {project_loop_harness-0.3.1 → project_loop_harness-0.4.0}/tests/test_dashboard_data_contract.py +0 -0
- {project_loop_harness-0.3.1 → project_loop_harness-0.4.0}/tests/test_defects.py +0 -0
- {project_loop_harness-0.3.1 → project_loop_harness-0.4.0}/tests/test_dispatch.py +0 -0
- {project_loop_harness-0.3.1 → project_loop_harness-0.4.0}/tests/test_examples.py +0 -0
- {project_loop_harness-0.3.1 → project_loop_harness-0.4.0}/tests/test_generic_shell_adapter.py +0 -0
- {project_loop_harness-0.3.1 → project_loop_harness-0.4.0}/tests/test_golden_path.py +0 -0
- {project_loop_harness-0.3.1 → project_loop_harness-0.4.0}/tests/test_pypi_publishing.py +0 -0
- {project_loop_harness-0.3.1 → project_loop_harness-0.4.0}/tests/test_receipt_show.py +0 -0
- {project_loop_harness-0.3.1 → project_loop_harness-0.4.0}/tests/test_recovery_playbook.py +0 -0
- {project_loop_harness-0.3.1 → project_loop_harness-0.4.0}/tests/test_registry.py +0 -0
- {project_loop_harness-0.3.1 → project_loop_harness-0.4.0}/tests/test_reports.py +0 -0
- {project_loop_harness-0.3.1 → project_loop_harness-0.4.0}/tests/test_rubric.py +0 -0
- {project_loop_harness-0.3.1 → project_loop_harness-0.4.0}/tests/test_tasks.py +0 -0
- {project_loop_harness-0.3.1 → project_loop_harness-0.4.0}/tests/test_update_check.py +0 -0
- {project_loop_harness-0.3.1 → project_loop_harness-0.4.0}/tests/test_validation_diagnostics.py +0 -0
- {project_loop_harness-0.3.1 → project_loop_harness-0.4.0}/tests/test_verification_feedback.py +0 -0
- {project_loop_harness-0.3.1 → project_loop_harness-0.4.0}/tests/test_workflow_proposals.py +0 -0
- {project_loop_harness-0.3.1 → project_loop_harness-0.4.0}/tests/test_workflow_verifier.py +0 -0
- {project_loop_harness-0.3.1 → project_loop_harness-0.4.0}/tests/test_workflows.py +0 -0
{project_loop_harness-0.3.1/src/project_loop_harness.egg-info → project_loop_harness-0.4.0}/PKG-INFO
RENAMED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: project-loop-harness
|
|
3
|
-
Version: 0.
|
|
3
|
+
Version: 0.4.0
|
|
4
4
|
Summary: Local control plane for agentic project development loops
|
|
5
5
|
Author: Project Loop Harness Contributors
|
|
6
6
|
License: MIT
|
|
@@ -28,6 +28,8 @@ Requires-Dist: pytest>=8; extra == "dev"
|
|
|
28
28
|
Requires-Dist: ruff>=0.6; extra == "dev"
|
|
29
29
|
Requires-Dist: setuptools>=69; extra == "dev"
|
|
30
30
|
Requires-Dist: wheel; extra == "dev"
|
|
31
|
+
Provides-Extra: mcp-test
|
|
32
|
+
Requires-Dist: mcp==1.28.1; extra == "mcp-test"
|
|
31
33
|
Dynamic: license-file
|
|
32
34
|
|
|
33
35
|
# Project Loop Harness
|
|
@@ -95,7 +97,7 @@ The important separation is:
|
|
|
95
97
|
Skill = instructions for agents
|
|
96
98
|
pcl CLI = runtime that mutates state, validates, renders, and routes work
|
|
97
99
|
project.db = current normalized loop memory
|
|
98
|
-
events.jsonl = append-only
|
|
100
|
+
events.jsonl = derived append-only projection of authoritative SQLite events
|
|
99
101
|
dashboard.html = generated human-readable view, not agent context
|
|
100
102
|
Plugin = Codex distribution wrapper
|
|
101
103
|
MCP = optional read/local-render bridge
|
|
@@ -204,7 +206,7 @@ path is:
|
|
|
204
206
|
|
|
205
207
|
```bash
|
|
206
208
|
pcl workflow verify --root /tmp/pcl-demo --template executor_smoke
|
|
207
|
-
pcl workflow
|
|
209
|
+
pcl workflow guard --root /tmp/pcl-demo --template executor_smoke --json
|
|
208
210
|
pcl loop execute --root /tmp/pcl-demo executor_smoke --json
|
|
209
211
|
```
|
|
210
212
|
|
|
@@ -480,7 +482,7 @@ The current local runtime supports:
|
|
|
480
482
|
- complete CSV export for reviewable loop state;
|
|
481
483
|
- optional local stdio MCP server;
|
|
482
484
|
- Codex plugin packaging scaffold with package inventory and reusable GitHub Action for local validation;
|
|
483
|
-
- workflow proposal mode, guarded human approval, static verifier checks,
|
|
485
|
+
- workflow proposal mode, guarded human approval, static verifier checks, guarded host-process planning/execution, guarded automatic workflow execution with explicit retry/resume, and a bundled `executor_smoke` workflow for dogfooding the executor.
|
|
484
486
|
|
|
485
487
|
## Implementation Task Order
|
|
486
488
|
|
|
@@ -63,7 +63,7 @@ The important separation is:
|
|
|
63
63
|
Skill = instructions for agents
|
|
64
64
|
pcl CLI = runtime that mutates state, validates, renders, and routes work
|
|
65
65
|
project.db = current normalized loop memory
|
|
66
|
-
events.jsonl = append-only
|
|
66
|
+
events.jsonl = derived append-only projection of authoritative SQLite events
|
|
67
67
|
dashboard.html = generated human-readable view, not agent context
|
|
68
68
|
Plugin = Codex distribution wrapper
|
|
69
69
|
MCP = optional read/local-render bridge
|
|
@@ -172,7 +172,7 @@ path is:
|
|
|
172
172
|
|
|
173
173
|
```bash
|
|
174
174
|
pcl workflow verify --root /tmp/pcl-demo --template executor_smoke
|
|
175
|
-
pcl workflow
|
|
175
|
+
pcl workflow guard --root /tmp/pcl-demo --template executor_smoke --json
|
|
176
176
|
pcl loop execute --root /tmp/pcl-demo executor_smoke --json
|
|
177
177
|
```
|
|
178
178
|
|
|
@@ -448,7 +448,7 @@ The current local runtime supports:
|
|
|
448
448
|
- complete CSV export for reviewable loop state;
|
|
449
449
|
- optional local stdio MCP server;
|
|
450
450
|
- Codex plugin packaging scaffold with package inventory and reusable GitHub Action for local validation;
|
|
451
|
-
- workflow proposal mode, guarded human approval, static verifier checks,
|
|
451
|
+
- workflow proposal mode, guarded human approval, static verifier checks, guarded host-process planning/execution, guarded automatic workflow execution with explicit retry/resume, and a bundled `executor_smoke` workflow for dogfooding the executor.
|
|
452
452
|
|
|
453
453
|
## Implementation Task Order
|
|
454
454
|
|
|
@@ -0,0 +1,94 @@
|
|
|
1
|
+
# 0123: Master Trace / Intent Index v0 contract formalization
|
|
2
|
+
|
|
3
|
+
Milestone: v0.3.2 Master Trace / Intent Index
|
|
4
|
+
Priority: P1
|
|
5
|
+
Area: docs/contracts/handoff
|
|
6
|
+
Origin: M0 master-trace dogfood, `docs/growth-plan-v0.2.4-v0.5.md`, and
|
|
7
|
+
2026-07-09 AI-PLC upstream-design intake discussion. Sakamoto approved moving
|
|
8
|
+
ahead after migrating the local control-plane DB to schema 7.
|
|
9
|
+
|
|
10
|
+
## Problem
|
|
11
|
+
|
|
12
|
+
Project Loop Harness already has a working M0 pull-context handoff runbook:
|
|
13
|
+
the master transcript is copied as evidence, an external agent creates an
|
|
14
|
+
intent index over that transcript, and the worker starts from `pcl next` plus a
|
|
15
|
+
task context pack. That flow proved useful, but the contract is still
|
|
16
|
+
runbook-shaped rather than product-shaped.
|
|
17
|
+
|
|
18
|
+
The AI-PLC proposal adds a larger upstream layer: collection, intent, option
|
|
19
|
+
generation, replan, maker/checker separation, and knowledge propagation. PLH
|
|
20
|
+
should not import that as slash commands or Markdown state. The first safe
|
|
21
|
+
translation is narrower: formalize master traces and intent indexes as
|
|
22
|
+
evidence-backed, claims-not-facts handoff contracts that can later support
|
|
23
|
+
first-class `pcl intent` / `pcl option` work if dogfood proves the shape.
|
|
24
|
+
|
|
25
|
+
## Scope
|
|
26
|
+
|
|
27
|
+
Docs/contract first. No schema migration and no new state-changing CLI command
|
|
28
|
+
in this slice.
|
|
29
|
+
|
|
30
|
+
1. Add a contract document, preferably `docs/master-trace-intent-index.md`,
|
|
31
|
+
covering:
|
|
32
|
+
- `master-trace/v0`: a transcript or trace artifact recorded as copied
|
|
33
|
+
evidence, with stable line references after indexing.
|
|
34
|
+
- `intent-index/v0`: a model-derived JSON index whose items are pointers into
|
|
35
|
+
the master trace, not verified facts.
|
|
36
|
+
- `master-trace-context/v0`: the future context-pack section shape, listing
|
|
37
|
+
evidence ids, manifest/member paths, copied stored paths, and source-ref
|
|
38
|
+
discipline without inlining raw transcript contents.
|
|
39
|
+
2. Update `docs/master-trace-handoff.md` so M0 is clearly a historical dogfood
|
|
40
|
+
runbook and points to the new contract for future runs.
|
|
41
|
+
3. Document the recommended current command sequence using existing surfaces:
|
|
42
|
+
`pcl evidence add --copy`, `pcl evidence add --task T-XXXX --copy`,
|
|
43
|
+
`pcl context check`, and `pcl context pack --task ...`.
|
|
44
|
+
4. Define the precise trust model:
|
|
45
|
+
- the intent index is model output and must be treated as claims, not facts;
|
|
46
|
+
- a worker must verify every actionable item against copied trace lines before
|
|
47
|
+
acting;
|
|
48
|
+
- PLH records evidence and links, but does not claim the index is correct,
|
|
49
|
+
complete, safe, or semantically sufficient.
|
|
50
|
+
5. Add an explicit "future promotion gates" section:
|
|
51
|
+
- optional `master_trace_context` in `context-pack/v1` is a follow-up only
|
|
52
|
+
after this contract is accepted;
|
|
53
|
+
- first-class `pcl intent` / `pcl collect` requires separate design and human
|
|
54
|
+
approval because it adds product semantics and likely schema;
|
|
55
|
+
- `pcl option`, `pcl replan`, and knowledge ledger are later phases, not part
|
|
56
|
+
of v0.3.2.
|
|
57
|
+
|
|
58
|
+
## Invariants
|
|
59
|
+
|
|
60
|
+
- No LLM call in `pcl` core. External agents may produce an intent index; PLH
|
|
61
|
+
stores and routes the artifact as evidence.
|
|
62
|
+
- No new source of truth. SQLite + JSONL events remain authoritative; Markdown
|
|
63
|
+
docs and future wiki exports are review surfaces.
|
|
64
|
+
- No raw transcript inline in context packs or dashboard data. Use evidence ids,
|
|
65
|
+
manifest paths, member paths, and copied `stored_path` references.
|
|
66
|
+
- No cognition or go/no-go vocabulary: avoid `safe_to_continue`,
|
|
67
|
+
`verified_relevant`, `agent_read`, `ready_for_handoff`, or similar claims.
|
|
68
|
+
- Existing `linked_evidence` task-pack behavior remains unchanged in this slice.
|
|
69
|
+
- Do not add `pcl intent`, `pcl collect`, `pcl option`, `pcl replan`, or
|
|
70
|
+
`pcl knowledge` commands in this task.
|
|
71
|
+
|
|
72
|
+
## Non-scope
|
|
73
|
+
|
|
74
|
+
- Schema changes or migrations.
|
|
75
|
+
- `pcl evidence link` / arbitrary link-role CLI.
|
|
76
|
+
- Context-pack implementation of `master_trace_context`.
|
|
77
|
+
- Dynamic workflow generation.
|
|
78
|
+
- Hosted backend, telemetry, cloud sync, or plugin marketplace work.
|
|
79
|
+
- Automatic GitHub writes or any external-service dependency.
|
|
80
|
+
|
|
81
|
+
## Acceptance
|
|
82
|
+
|
|
83
|
+
- The new contract doc defines valid `master-trace/v0`, `intent-index/v0`, and
|
|
84
|
+
future `master-trace-context/v0` payload examples.
|
|
85
|
+
- `docs/master-trace-handoff.md` points future readers to the contract while
|
|
86
|
+
preserving the M0 evidence/runbook history.
|
|
87
|
+
- The current command sequence is executable with existing commands and does not
|
|
88
|
+
require direct DB edits or generated dashboard parsing.
|
|
89
|
+
- The docs state that intent-index items are navigation pointers, not verified
|
|
90
|
+
facts, and that workers must verify source refs against copied trace lines.
|
|
91
|
+
- The docs explicitly defer first-class `pcl intent` / `pcl option` / `pcl
|
|
92
|
+
replan` / knowledge ledger work to later roadmap phases.
|
|
93
|
+
- `ruff check .` and full `pytest` remain green unless the orchestrator marks
|
|
94
|
+
the task docs-only and records why test execution was intentionally skipped.
|
|
@@ -0,0 +1,90 @@
|
|
|
1
|
+
# 0124: Freeze the v0.3.1 implementation baseline (fixtures + baseline doc)
|
|
2
|
+
|
|
3
|
+
- **Status:** Accepted
|
|
4
|
+
- **Milestone:** M0 / v0.3.1 baseline (integrated roadmap Wave A)
|
|
5
|
+
- **Priority:** P0
|
|
6
|
+
- **Estimated size:** S
|
|
7
|
+
- **Dependencies:** None
|
|
8
|
+
- **Origin:** `docs/roadmap/integrated/agent-tasks-proposed/0123-release-v0-3-1-baseline.md`,
|
|
9
|
+
reduced in scope because v0.3.1 was already released before the bundle was
|
|
10
|
+
adopted (commits `eb69824` → `73f2290`, pyproject `0.3.1`, tag `v0.3.1`).
|
|
11
|
+
Only the baseline-freezing portion of that proposal remains.
|
|
12
|
+
|
|
13
|
+
## Problem
|
|
14
|
+
|
|
15
|
+
v0.3.1 は既に出荷済みだが、統合ロードマップ Wave A(MCP 仕様準拠化、
|
|
16
|
+
transactional outbox)は挙動を意図的に変更する。比較基準となる snapshot
|
|
17
|
+
fixture と baseline document がないと、後続タスクで意図した差分と回帰を
|
|
18
|
+
区別できない。
|
|
19
|
+
|
|
20
|
+
## Goal
|
|
21
|
+
|
|
22
|
+
現在の挙動を「正しい」と無条件に認定するのではなく、再現可能な baseline
|
|
23
|
+
として固定し、後続タスクが差分と互換性を測れる状態にする。リリース作業は
|
|
24
|
+
行わない(済んでいる)。
|
|
25
|
+
|
|
26
|
+
## Scope
|
|
27
|
+
|
|
28
|
+
1. `pcl --help` と主要 subcommand help、主要 `--json` 出力の snapshot fixture
|
|
29
|
+
を保存する。最低限の対象: `pcl --version`, `pcl --help`,
|
|
30
|
+
`pcl validate --strict --json`, `pcl render --json`, `pcl next --json`,
|
|
31
|
+
`pcl context check --json`(空 project と代表 fixture project の両方)。
|
|
32
|
+
2. snapshot は timestamp、absolute path、UUID、hash 等の不安定値を normalizer
|
|
33
|
+
で除外し、2 回連続生成して diff ゼロであることをテストで保証する。
|
|
34
|
+
3. 代表的な fixture DB(v0.3.0 相当 schema)から現行 schema へ migrate する
|
|
35
|
+
smoke test を追加する。fixture DB に個人情報や実 project content を
|
|
36
|
+
入れない。
|
|
37
|
+
4. `docs/releases/v0.3.1-baseline.md` を作成し、baseline commit SHA、schema
|
|
38
|
+
version、migration list、supported Python versions、known limitations、
|
|
39
|
+
実行した test commands を記録する。
|
|
40
|
+
5. 後続 schema contract test が参照する fixture directory を 1 つに決めて
|
|
41
|
+
fixture 配置の README に明記する。
|
|
42
|
+
|
|
43
|
+
## Invariants
|
|
44
|
+
|
|
45
|
+
- 既存 runtime behavior をこのタスクで変更しない(fixture とテストの追加のみ)。
|
|
46
|
+
- 既存テストを削除・弱体化しない。
|
|
47
|
+
- fixture に機密・個人情報・実 project 内容を含めない。
|
|
48
|
+
- 生成された snapshot を手で編集しない(不安定値は normalizer で対処する)。
|
|
49
|
+
- `.project-loop/` 配下(canonical repo の dogfood 状態)を変更しない。
|
|
50
|
+
|
|
51
|
+
## Non-goals
|
|
52
|
+
|
|
53
|
+
- リリース作業、version bump、PyPI 公開(v0.3.1 は出荷済み)。
|
|
54
|
+
- MCP framing 修正(0125)。
|
|
55
|
+
- event outbox 実装(0128)。
|
|
56
|
+
- README 再構成。
|
|
57
|
+
|
|
58
|
+
## Acceptance criteria
|
|
59
|
+
|
|
60
|
+
- Snapshot fixture 生成を 2 回実行して diff が空であることをテストが保証する。
|
|
61
|
+
- 代表 fixture DB からの migration smoke がローカルで成功する。
|
|
62
|
+
- `docs/releases/v0.3.1-baseline.md` に commit SHA、schema version、known
|
|
63
|
+
limitations、実行した test command と exit code が記録されている。
|
|
64
|
+
- `ruff check .` と full `pytest` が green。
|
|
65
|
+
- `pcl init /tmp/pcl-demo` smoke が成功する。
|
|
66
|
+
|
|
67
|
+
## Evidence required to close
|
|
68
|
+
|
|
69
|
+
- test command と exit code。
|
|
70
|
+
- baseline commit SHA。
|
|
71
|
+
- snapshot fixture の 2 回生成 diff が空である証拠。
|
|
72
|
+
|
|
73
|
+
## Agent execution protocol
|
|
74
|
+
|
|
75
|
+
実装担当エージェントは開始前に次を返す。
|
|
76
|
+
|
|
77
|
+
1. 対象 commit SHA。
|
|
78
|
+
2. 変更予定 path。
|
|
79
|
+
3. 既存 contract を characterize する test または確認結果。
|
|
80
|
+
4. scope 外に見える問題と、今回は触れない理由。
|
|
81
|
+
|
|
82
|
+
完了時は次を返す。
|
|
83
|
+
|
|
84
|
+
1. 変更概要と設計判断。
|
|
85
|
+
2. 実行した全 test command、exit code、失敗・skip。
|
|
86
|
+
3. schema/migration/CLI 互換性への影響。
|
|
87
|
+
4. 未確認事項、残存 risk、rollback 方法。
|
|
88
|
+
5. Acceptance criteria を一項目ずつ満たした根拠。
|
|
89
|
+
|
|
90
|
+
「実装した」「テストは通るはず」だけでは close しない。
|
|
@@ -0,0 +1,109 @@
|
|
|
1
|
+
# 0125: Make MCP stdio transport and protocol negotiation specification-compliant
|
|
2
|
+
|
|
3
|
+
- **Status:** Proposed
|
|
4
|
+
- **Milestone:** M1 / Trust Foundation
|
|
5
|
+
- **Priority:** P0
|
|
6
|
+
- **Estimated size:** M
|
|
7
|
+
- **Dependencies:** `0124`
|
|
8
|
+
- **Owner:** TBD
|
|
9
|
+
- **Reviewer:** At least one maintainer not implementing the task
|
|
10
|
+
|
|
11
|
+
## Problem
|
|
12
|
+
|
|
13
|
+
現行serverはMCP 2025-06-18を宣言しながらstdioで`Content-Length` framingを使い、initializeで要求されたprotocol versionを対応可否に関係なく返す。自己実装clientとのtestだけでは外部相互運用性を保証できない。
|
|
14
|
+
|
|
15
|
+
## Goal
|
|
16
|
+
|
|
17
|
+
MCP stdioを宣言versionの仕様へ合わせ、unsupported versionを正しくnegotiateし、stdoutを純粋なprotocol channelにする。
|
|
18
|
+
|
|
19
|
+
## Scope
|
|
20
|
+
|
|
21
|
+
- stdio reader/writerを1 JSON-RPC message per lineへ変更する。
|
|
22
|
+
- message内改行、size limit、invalid JSON、empty line、EOFを明示処理する。
|
|
23
|
+
- supported protocol versionsを定数またはordered setで管理する。
|
|
24
|
+
- client requested versionがunsupportedならserver supported versionを返す。
|
|
25
|
+
- notification、request、responseのID semanticsを既存behaviorと照合する。
|
|
26
|
+
- protocol以外のlog/diagnosticをstderrへ送る。
|
|
27
|
+
- 既存Content-Length fixture/clientを更新または明示的にlegacy扱いする。
|
|
28
|
+
|
|
29
|
+
## Proposed implementation
|
|
30
|
+
|
|
31
|
+
- transport parserとMCP method dispatchを分離し、framing testをprocess boundaryで行えるようにする。
|
|
32
|
+
- newline-delimited outputはcompact JSONを使い、payload自身にliteral newlineを出さない。
|
|
33
|
+
- line length上限を設定し、超過時はprotocol errorまたはsafe terminationにする。
|
|
34
|
+
- initialize前に許可されるmethod、initialize後のstate transitionをcharacterizeする。
|
|
35
|
+
- legacy modeを残す場合はhidden/experimental opt-inとし、defaultにしない。
|
|
36
|
+
|
|
37
|
+
## Likely affected surfaces
|
|
38
|
+
|
|
39
|
+
- `src/pcl/mcp_server.py`
|
|
40
|
+
- MCP process/transport tests
|
|
41
|
+
- MCP documentation and help
|
|
42
|
+
- any internal MCP client fixture
|
|
43
|
+
|
|
44
|
+
## Invariants
|
|
45
|
+
|
|
46
|
+
- runtime dependencyを不要に増やさない。
|
|
47
|
+
- stdoutにbanner、logging、tracebackを混ぜない。
|
|
48
|
+
- unsupported versionをechoしない。
|
|
49
|
+
- MCP修正でPLH core state semanticsを変えない。
|
|
50
|
+
|
|
51
|
+
## Non-goals
|
|
52
|
+
|
|
53
|
+
- 新しいMCP toolの追加。
|
|
54
|
+
- remote HTTP transport。
|
|
55
|
+
- agent runtime固有adapter。
|
|
56
|
+
- outbox/recovery変更。
|
|
57
|
+
|
|
58
|
+
## Acceptance criteria
|
|
59
|
+
|
|
60
|
+
- Given newline-delimited initialize request, when server reads stdin, then 1行のJSON-RPC responseをstdoutへ返す。
|
|
61
|
+
- Given unsupported requested version, when initialize runs, then serverがsupportするversionを返し、requested versionを無条件にechoしない。
|
|
62
|
+
- Given malformed/oversized line, when processed, then protocol channelを壊さずdocumented errorまたはterminationになる。
|
|
63
|
+
- Given normal session, when stderr logging is enabled, then stdoutの各non-empty lineがvalid JSON-RPC messageである。
|
|
64
|
+
|
|
65
|
+
## Required tests
|
|
66
|
+
|
|
67
|
+
- Transport unit tests for LF/CRLF, EOF, malformed JSON, oversized line.
|
|
68
|
+
- Process-level initialize → tools/list → tools/call test.
|
|
69
|
+
- Version negotiation matrix.
|
|
70
|
+
- stdout purity test.
|
|
71
|
+
- Regression test for notifications without response ID.
|
|
72
|
+
|
|
73
|
+
## Evidence required to close
|
|
74
|
+
|
|
75
|
+
- official spec sections used。
|
|
76
|
+
- before/after wire transcript。
|
|
77
|
+
- process-level test output。
|
|
78
|
+
- compatibility behavior documented。
|
|
79
|
+
|
|
80
|
+
## Rollout and rollback
|
|
81
|
+
|
|
82
|
+
- MCPをexperimental表示している場合は修正後も実client test完了まで維持。
|
|
83
|
+
- breaking legacy framingはrelease noteで明示。
|
|
84
|
+
- rollbackはlegacy flagではなくprevious package versionで可能にする。
|
|
85
|
+
|
|
86
|
+
## Open questions
|
|
87
|
+
|
|
88
|
+
- 複数protocol versionを同時supportするか、current oneのみか。
|
|
89
|
+
- legacy Content-Length modeを一releaseだけ残す価値があるか。
|
|
90
|
+
|
|
91
|
+
## Agent execution protocol
|
|
92
|
+
|
|
93
|
+
実装担当エージェントは開始前に次を返す。
|
|
94
|
+
|
|
95
|
+
1. 対象commit SHAと、依存taskがmerge済みである証拠。
|
|
96
|
+
2. 変更予定path。
|
|
97
|
+
3. 既存contractをcharacterizeするtestまたは確認結果。
|
|
98
|
+
4. scope外に見える問題と、今回は触れない理由。
|
|
99
|
+
|
|
100
|
+
完了時は次を返す。
|
|
101
|
+
|
|
102
|
+
1. 変更概要と設計判断。
|
|
103
|
+
2. 実行した全test command、exit code、失敗・skip。
|
|
104
|
+
3. schema/migration/CLI互換性への影響。
|
|
105
|
+
4. 生成したEvidenceまたはpacket refs。
|
|
106
|
+
5. 未確認事項、残存risk、rollback方法。
|
|
107
|
+
6. Acceptance criteriaを一項目ずつ満たした根拠。
|
|
108
|
+
|
|
109
|
+
「実装した」「テストは通るはず」「レビュー済み」という主張だけではcloseしない。
|
|
@@ -0,0 +1,105 @@
|
|
|
1
|
+
# 0126: Add MCP external conformance fixtures and compatibility matrix
|
|
2
|
+
|
|
3
|
+
- **Status:** Proposed
|
|
4
|
+
- **Milestone:** M1 / Trust Foundation
|
|
5
|
+
- **Priority:** P0
|
|
6
|
+
- **Estimated size:** M
|
|
7
|
+
- **Dependencies:** `0125`
|
|
8
|
+
- **Owner:** TBD
|
|
9
|
+
- **Reviewer:** At least one maintainer not implementing the task
|
|
10
|
+
|
|
11
|
+
## Problem
|
|
12
|
+
|
|
13
|
+
内部unit testだけでは外部clientとの接続、process lifecycle、stdout discipline、tool schema互換性の問題を見逃す。相互運用性を製品価値にするには、実clientまたは標準準拠fixtureで継続確認が必要。
|
|
14
|
+
|
|
15
|
+
## Goal
|
|
16
|
+
|
|
17
|
+
MCPのsupported surfaceをprocess-levelに検証し、どのclient/versionを確認済みかを公開できるcompatibility matrixを作る。
|
|
18
|
+
|
|
19
|
+
## Scope
|
|
20
|
+
|
|
21
|
+
- 独立したJSON-RPC/MCP conformance client fixtureをtest用に用意する。
|
|
22
|
+
- initialize、initialized notification、tools/list、代表的read-only tools/call、shutdown/EOFを検査する。
|
|
23
|
+
- 少なくとも1つの公式SDKまたは外部標準準拠clientをdev/test-onlyで利用する検討を行う。
|
|
24
|
+
- Claude Code、Codex等の対象client向けmanual smoke手順を文書化する。
|
|
25
|
+
- client name、version、OS、result、known limitationをcompatibility matrixへ記録する。
|
|
26
|
+
- protocol schema errorとPLH domain errorを区別する。
|
|
27
|
+
|
|
28
|
+
## Proposed implementation
|
|
29
|
+
|
|
30
|
+
- runtime dependencyではなくtest extraまたはsubprocess fixtureを優先する。
|
|
31
|
+
- external client versionをpinし、更新はDependabot等の通常review対象にする。
|
|
32
|
+
- CIでcredentialやGUIを必要とするclient smokeは必須にせず、再現可能なmanual evidence pathを持つ。
|
|
33
|
+
- wire transcriptからproject path、secret、user contentをredactする。
|
|
34
|
+
|
|
35
|
+
## Likely affected surfaces
|
|
36
|
+
|
|
37
|
+
- `tests/mcp/`
|
|
38
|
+
- CI workflow
|
|
39
|
+
- `docs/mcp-compatibility.md`
|
|
40
|
+
- test extras / lock metadata
|
|
41
|
+
|
|
42
|
+
## Invariants
|
|
43
|
+
|
|
44
|
+
- 内部clientだけを「external conformance」と呼ばない。
|
|
45
|
+
- 未確認clientをsupportedと記載しない。
|
|
46
|
+
- test用SDKをruntime dependencyへ漏らさない。
|
|
47
|
+
|
|
48
|
+
## Non-goals
|
|
49
|
+
|
|
50
|
+
- すべてのMCP clientのsupport。
|
|
51
|
+
- HTTP/SSE transport。
|
|
52
|
+
- MCP tool inventory拡張。
|
|
53
|
+
|
|
54
|
+
## Acceptance criteria
|
|
55
|
+
|
|
56
|
+
- Conformance fixtureがserver subprocessを起動し、initializeからtools/callまで成功する。
|
|
57
|
+
- Invalid params、unknown method、pre-initialize callのexpected errorがfixtureで固定される。
|
|
58
|
+
- Compatibility matrixにtested date、client version、platform、resultがある。
|
|
59
|
+
- CIがprotocol regressionを検出し、external/manual smoke手順が第三者に再現可能。
|
|
60
|
+
|
|
61
|
+
## Required tests
|
|
62
|
+
|
|
63
|
+
- Independent process client test.
|
|
64
|
+
- Official SDK/client test where feasible.
|
|
65
|
+
- Protocol negative matrix.
|
|
66
|
+
- Windows path/stdin handling smoke.
|
|
67
|
+
- No stdout contamination under debug logging.
|
|
68
|
+
|
|
69
|
+
## Evidence required to close
|
|
70
|
+
|
|
71
|
+
- wire transcript fixture。
|
|
72
|
+
- CI run link/id。
|
|
73
|
+
- manual client smoke record。
|
|
74
|
+
- compatibility matrix diff。
|
|
75
|
+
|
|
76
|
+
## Rollout and rollback
|
|
77
|
+
|
|
78
|
+
- 初期matrixは少数clientでよい。
|
|
79
|
+
- 新clientをsupportedにする前に同じfixtureを追加。
|
|
80
|
+
- failureはknown limitationとして公開し、隠さない。
|
|
81
|
+
|
|
82
|
+
## Open questions
|
|
83
|
+
|
|
84
|
+
- CIへofficial SDKを入れるlicense/maintenance cost。
|
|
85
|
+
- 対象clientの最低version。
|
|
86
|
+
|
|
87
|
+
## Agent execution protocol
|
|
88
|
+
|
|
89
|
+
実装担当エージェントは開始前に次を返す。
|
|
90
|
+
|
|
91
|
+
1. 対象commit SHAと、依存taskがmerge済みである証拠。
|
|
92
|
+
2. 変更予定path。
|
|
93
|
+
3. 既存contractをcharacterizeするtestまたは確認結果。
|
|
94
|
+
4. scope外に見える問題と、今回は触れない理由。
|
|
95
|
+
|
|
96
|
+
完了時は次を返す。
|
|
97
|
+
|
|
98
|
+
1. 変更概要と設計判断。
|
|
99
|
+
2. 実行した全test command、exit code、失敗・skip。
|
|
100
|
+
3. schema/migration/CLI互換性への影響。
|
|
101
|
+
4. 生成したEvidenceまたはpacket refs。
|
|
102
|
+
5. 未確認事項、残存risk、rollback方法。
|
|
103
|
+
6. Acceptance criteriaを一項目ずつ満たした根拠。
|
|
104
|
+
|
|
105
|
+
「実装した」「テストは通るはず」「レビュー済み」という主張だけではcloseしない。
|
|
@@ -0,0 +1,105 @@
|
|
|
1
|
+
# 0127: Finalize transactional audit outbox ADR and failure model
|
|
2
|
+
|
|
3
|
+
- **Status:** Proposed
|
|
4
|
+
- **Milestone:** M1 / Trust Foundation
|
|
5
|
+
- **Priority:** P0
|
|
6
|
+
- **Estimated size:** M
|
|
7
|
+
- **Dependencies:** `0124`
|
|
8
|
+
- **Owner:** TBD
|
|
9
|
+
- **Reviewer:** At least one maintainer not implementing the task
|
|
10
|
+
|
|
11
|
+
## Problem
|
|
12
|
+
|
|
13
|
+
SQLite state、event row、JSONL、Evidence fileが複数stepで更新されるため、どの時点をcommitとみなすかが曖昧。実装前にsource of truth、failure semantics、legacy migration、repair保証を決める必要がある。
|
|
14
|
+
|
|
15
|
+
## Goal
|
|
16
|
+
|
|
17
|
+
ADR-002を実装可能な詳細へ完成させ、0128〜0129のacceptanceを固定する。
|
|
18
|
+
|
|
19
|
+
## Scope
|
|
20
|
+
|
|
21
|
+
- 現行mutation pathを列挙し、state/event/JSONL/Evidenceのwrite orderを図示する。
|
|
22
|
+
- failure pointをcommit前、commit後、projector前後、file rename前後に分類する。
|
|
23
|
+
- SQLiteとJSONLの権威、rebuild direction、retentionを決める。
|
|
24
|
+
- outbox schema、event sequence、idempotency key、retry/backoff、poison record処理を決める。
|
|
25
|
+
- legacy events.jsonlと既存events tableを対応付ける移行案を決める。
|
|
26
|
+
- hash chainをproduct guaranteeに含めるか決める。
|
|
27
|
+
- concurrency、migration lock、busy timeoutの契約を明文化する。
|
|
28
|
+
|
|
29
|
+
## Proposed implementation
|
|
30
|
+
|
|
31
|
+
- 実コードの全`append_event` callerとcommit ownershipを調査する。
|
|
32
|
+
- 「DB commit済みだがJSONL pending」はvalid recoverable stateとして定義する。
|
|
33
|
+
- 「JSONLにあるがDBにない」legacy anomalyの扱いを明示する。
|
|
34
|
+
- Evidence content-addressed stagingはoutboxと同じtransactionでは完全原子化できないため、PENDING/READY reconciliationを設計する。
|
|
35
|
+
- operational commandsとexit codeを先に設計する。
|
|
36
|
+
|
|
37
|
+
## Likely affected surfaces
|
|
38
|
+
|
|
39
|
+
- `docs/adr/ADR-002-transactional-audit-outbox.md`
|
|
40
|
+
- `src/pcl/events.py` caller inventory
|
|
41
|
+
- `src/pcl/evidence.py` write path
|
|
42
|
+
- migration/recovery docs
|
|
43
|
+
|
|
44
|
+
## Invariants
|
|
45
|
+
|
|
46
|
+
- 設計taskでproduction behaviorを変えない。
|
|
47
|
+
- 「append-only」と「tamper-evident」を混同しない。
|
|
48
|
+
- repair不能なcaseを自動修復できると書かない。
|
|
49
|
+
|
|
50
|
+
## Non-goals
|
|
51
|
+
|
|
52
|
+
- outbox code実装。
|
|
53
|
+
- CLI repair実装。
|
|
54
|
+
- cloud replication。
|
|
55
|
+
|
|
56
|
+
## Acceptance criteria
|
|
57
|
+
|
|
58
|
+
- ADRにsource of truth、transaction boundary、state machine、failure matrix、legacy plan、rollbackがある。
|
|
59
|
+
- 全mutation pathがinventory化され、未調査callerがない。
|
|
60
|
+
- 0127と0128のschema/CLI acceptanceがADRから導ける。
|
|
61
|
+
- Maintainerと少なくとも1名のreviewerがAcceptedまたは明示的な修正要求を記録する。
|
|
62
|
+
|
|
63
|
+
## Required tests
|
|
64
|
+
|
|
65
|
+
- No runtime tests required; validate design with executable pseudo-tests or sequence diagrams.
|
|
66
|
+
- Prototype SQL transaction/outbox query if needed.
|
|
67
|
+
- Review existing fixture DB and JSONL anomaly examples.
|
|
68
|
+
|
|
69
|
+
## Evidence required to close
|
|
70
|
+
|
|
71
|
+
- caller inventory。
|
|
72
|
+
- failure matrix。
|
|
73
|
+
- ADR decision log。
|
|
74
|
+
- prototype output。
|
|
75
|
+
|
|
76
|
+
## Rollout and rollback
|
|
77
|
+
|
|
78
|
+
- Accepted ADRをmerge gateにする。
|
|
79
|
+
- 未決のhash chain等はexplicit deferred decisionにする。
|
|
80
|
+
|
|
81
|
+
## Open questions
|
|
82
|
+
|
|
83
|
+
- JSONLからDB完全rebuildをv1で保証するか。
|
|
84
|
+
- event hash chainを今入れるか。
|
|
85
|
+
- projectorを同期flushとbackground retryのどちらで起動するか。
|
|
86
|
+
|
|
87
|
+
## Agent execution protocol
|
|
88
|
+
|
|
89
|
+
実装担当エージェントは開始前に次を返す。
|
|
90
|
+
|
|
91
|
+
1. 対象commit SHAと、依存taskがmerge済みである証拠。
|
|
92
|
+
2. 変更予定path。
|
|
93
|
+
3. 既存contractをcharacterizeするtestまたは確認結果。
|
|
94
|
+
4. scope外に見える問題と、今回は触れない理由。
|
|
95
|
+
|
|
96
|
+
完了時は次を返す。
|
|
97
|
+
|
|
98
|
+
1. 変更概要と設計判断。
|
|
99
|
+
2. 実行した全test command、exit code、失敗・skip。
|
|
100
|
+
3. schema/migration/CLI互換性への影響。
|
|
101
|
+
4. 生成したEvidenceまたはpacket refs。
|
|
102
|
+
5. 未確認事項、残存risk、rollback方法。
|
|
103
|
+
6. Acceptance criteriaを一項目ずつ満たした根拠。
|
|
104
|
+
|
|
105
|
+
「実装した」「テストは通るはず」「レビュー済み」という主張だけではcloseしない。
|