---
phase: 37-soft-exploration-and-h-plane-runtime
plan: 01
type: execute
wave: 1
depends_on:
  - 36-01
files_modified:
  - research/knowledge-hub/knowledge_hub/aitp_service.py
  - research/knowledge-hub/runtime/schemas/progressive-disclosure-runtime-bundle.schema.json
  - research/knowledge-hub/tests/test_runtime_profiles_and_projections.py
  - research/knowledge-hub/tests/test_schema_contracts.py
autonomous: true
requirements:
  - REQ-RT-01
  - REQ-H-01
user_setup: []
must_haves:
  truths:
    - `free_explore` must not weaken validation or writeback gates.
    - The exploration carrier must remain lightweight and noncanonical.
    - The human should be able to tell when AITP is still exploring versus when it is following an established route.
  artifacts:
    - path: research/knowledge-hub/knowledge_hub/aitp_service.py
      provides: Free-explore interaction contract and exploration-window artifact generation
      contains: "free_explore"
    - path: research/knowledge-hub/runtime/schemas/progressive-disclosure-runtime-bundle.schema.json
      provides: Runtime schema support for `free_explore` and exploration-window exposure
      contains: "free_explore"
  key_links:
    - from: research/knowledge-hub/knowledge_hub/aitp_service.py
      to: docs/superpowers/specs/2026-04-09-aitp-soft-exploration-hard-trust-runtime-design.md
      via: runtime interaction posture and exploration carrier
      pattern: "free_explore|exploration_window"
---

<objective>
Implement the first bounded soft-exploration runtime slice by distinguishing
`free_explore` from `silent_continue` and by materializing an exploration-window
artifact when bounded speculative analysis is allowed.

Purpose: keep AITP intelligent during early idea formation without softening
trust or writeback discipline.
Output: updated interaction contract plus exploration-window runtime artifact
and regression coverage.
</objective>

<execution_context>
@D:/BaiduSyncdisk/Theoretical-Physics/.codex-home/get-shit-done/workflows/execute-plan.md
@D:/BaiduSyncdisk/Theoretical-Physics/.codex-home/get-shit-done/templates/summary.md
</execution_context>

<context>
@.planning/PROJECT.md
@.planning/ROADMAP.md
@.planning/STATE.md
@.planning/phases/37-soft-exploration-and-h-plane-runtime/37-CONTEXT.md
@docs/superpowers/specs/2026-04-09-aitp-soft-exploration-hard-trust-runtime-design.md
@research/knowledge-hub/knowledge_hub/aitp_service.py
@research/knowledge-hub/runtime/schemas/progressive-disclosure-runtime-bundle.schema.json
@research/knowledge-hub/tests/test_runtime_profiles_and_projections.py
@research/knowledge-hub/tests/test_schema_contracts.py
</context>

<tasks>

<task type="auto">
  <name>Task 1: Add failing tests for free-explore runtime behavior</name>
  <files>research/knowledge-hub/tests/test_runtime_profiles_and_projections.py, research/knowledge-hub/tests/test_schema_contracts.py</files>
  <read_first>research/knowledge-hub/tests/test_runtime_profiles_and_projections.py, research/knowledge-hub/tests/test_schema_contracts.py, .planning/phases/37-soft-exploration-and-h-plane-runtime/37-CONTEXT.md</read_first>
  <action>Add failing tests that require the runtime to support `free_explore` and an `exploration_window` artifact for bounded exploratory requests, while leaving checkpoint and non-blocking update behavior intact.</action>
  <verify>python -m pytest research/knowledge-hub/tests/test_runtime_profiles_and_projections.py research/knowledge-hub/tests/test_schema_contracts.py -q</verify>
  <acceptance_criteria>
    - tests fail before implementation
    - runtime schema requires `free_explore` and an exploration-window surface
  </acceptance_criteria>
  <done>A real failing contract exists for soft exploration.</done>
</task>

<task type="auto">
  <name>Task 2: Implement free-explore interaction class and exploration window</name>
  <files>research/knowledge-hub/knowledge_hub/aitp_service.py, research/knowledge-hub/runtime/schemas/progressive-disclosure-runtime-bundle.schema.json</files>
  <read_first>research/knowledge-hub/knowledge_hub/aitp_service.py, docs/superpowers/specs/2026-04-09-aitp-soft-exploration-hard-trust-runtime-design.md, research/knowledge-hub/runtime/schemas/progressive-disclosure-runtime-bundle.schema.json</read_first>
  <action>Add `free_explore` to the runtime interaction contract and materialize an exploration-window JSON/Markdown artifact when the current request is exploratory, no blocking checkpoint is active, and no stronger trust gate has fired. Keep writeback and checkpoint paths unchanged.</action>
  <verify>python -m pytest research/knowledge-hub/tests/test_runtime_profiles_and_projections.py research/knowledge-hub/tests/test_schema_contracts.py -q</verify>
  <acceptance_criteria>
    - exploratory requests can yield `free_explore`
    - runtime writes exploration-window artifacts
    - existing `checkpoint_question` and `non_blocking_update` paths still work
  </acceptance_criteria>
  <done>The runtime can distinguish bounded exploration from ordinary continuation.</done>
</task>

<task type="auto">
  <name>Task 3: Re-run the integrated regression slice</name>
  <files>research/knowledge-hub/tests/test_aitp_service.py, research/knowledge-hub/tests/test_aitp_cli.py, research/knowledge-hub/tests/test_aitp_cli_e2e.py, research/knowledge-hub/tests/test_runtime_profiles_and_projections.py, research/knowledge-hub/tests/test_schema_contracts.py, research/knowledge-hub/tests/test_l2_graph_activation.py, research/knowledge-hub/tests/test_topic_start_regressions.py</files>
  <read_first>.planning/phases/36-consultation-and-human-facing-memory-maps/36-01-SUMMARY.md</read_first>
  <action>Re-run the current integrated regression slice so soft exploration lands without regressing the Phase `34-36` runtime, consultation, and graph-activation baselines.</action>
  <verify>python -m pytest research/knowledge-hub/tests/test_aitp_service.py research/knowledge-hub/tests/test_aitp_cli.py research/knowledge-hub/tests/test_aitp_cli_e2e.py research/knowledge-hub/tests/test_runtime_profiles_and_projections.py research/knowledge-hub/tests/test_schema_contracts.py research/knowledge-hub/tests/test_l2_graph_activation.py research/knowledge-hub/tests/test_topic_start_regressions.py -q</verify>
  <acceptance_criteria>
    - the integrated regression slice exits 0
  </acceptance_criteria>
  <done>Phase `37` lands on top of the current green baseline.</done>
</task>

</tasks>

<verification>
Before declaring plan complete:
- [ ] `python -m pytest research/knowledge-hub/tests/test_runtime_profiles_and_projections.py research/knowledge-hub/tests/test_schema_contracts.py -q`
- [ ] `python -m pytest research/knowledge-hub/tests/test_aitp_service.py research/knowledge-hub/tests/test_aitp_cli.py research/knowledge-hub/tests/test_aitp_cli_e2e.py research/knowledge-hub/tests/test_runtime_profiles_and_projections.py research/knowledge-hub/tests/test_schema_contracts.py research/knowledge-hub/tests/test_l2_graph_activation.py research/knowledge-hub/tests/test_topic_start_regressions.py -q`
</verification>

<success_criteria>

- All tasks completed
- Runtime can explicitly signal bounded exploration without weakening trust gates

</success_criteria>

<output>
After completion, create `.planning/phases/37-soft-exploration-and-h-plane-runtime/37-01-SUMMARY.md`
</output>
