diff --git a/.project-docs/05-agent-entry/concurrent-task-gate.md b/.project-docs/05-agent-entry/concurrent-task-gate.md new file mode 100644 index 0000000..7b4ce41 --- /dev/null +++ b/.project-docs/05-agent-entry/concurrent-task-gate.md @@ -0,0 +1,34 @@ +# Concurrent Task Gate + +Complete this gate before the Planning Gate. + +## Invariants + +- One active task owns one worktree. +- Concurrent tasks use different branches and worktrees. +- Resume the same task in its existing worktree; `start` returns a completed task's registry status to `planning`. +- When an isolated `start` omits `--destination`, use `/.codex-worktrees//`. +- Never stash, reset, move, delete, or adopt unknown work automatically. +- Feature tasks write only their own task record and uniquely named supporting records. +- Peer document defects reported as `PEER_DOC_WARNING` require scope assessment, not peer-document repair before starting the current task. Current-task identity and registry ownership faults remain blocking. +- Keep the active task record present until ownership is released. +- Treat `start`, `touch`, `complete`, `release`, and `retire` as serialized registry transactions; lock timeout or malformed registry state blocks the gate. +- Feature-task write boundaries in this gate supersede legacy instructions to update shared or canonical project documents. + +## Required Output + +- Task ID: +- Mode: Feature | Integration +- Branch: +- Worktree: +- Base commit: +- Ownership result: Claimed | Resumed | Isolated | Blocked +- Managed worktree: Yes | No +- Other active local tasks: + +## Block Conditions + +- The worktree belongs to another active task and isolation did not succeed. +- An unowned worktree contains staged, unstaged, or untracked changes. +- No reliable committed base was selected for a new worktree. +- The runtime cannot keep later Git and file operations rooted in the isolated worktree. diff --git a/.project-docs/05-agent-entry/integration-gate.md b/.project-docs/05-agent-entry/integration-gate.md new file mode 100644 index 0000000..dd4b86e --- /dev/null +++ b/.project-docs/05-agent-entry/integration-gate.md @@ -0,0 +1,17 @@ +# Integration Gate + +Use this gate to promote completed task facts into canonical project memory. + +## Requirements + +- Run in an exclusively owned integration worktree. +- Hold the repository integration lock. +- Verify the task commits being integrated are present. +- Review source task records, task-prefixed supporting records, promotion candidates, and semantic conflicts in read-only mode. +- Write integration notes only to the integration task's own task record or `{task_id}__.md` supporting records. +- Ask before changing architecture direction, product behavior, or accepted decisions. +- Record source task or merge commits under `Integrated Through` in `current-state.md`. +- After a completed task is merged into the main branch, proactively ask whether to clean up its remaining worktree, naming the absolute path and branch. Follow the loaded skill's Post-Merge Cleanup procedure; merge permission alone does not authorize deletion. +- After explicit cleanup approval, retire only a clean, ready, managed linked worktree from another worktree. Require its committed task record to say `Ready for Integration`, and preserve its task branch and commit. A declined or pending cleanup leaves the completed merge valid. + +Do not resolve meaningful document conflicts with `ours`, `theirs`, or union merge rules. diff --git a/.project-docs/10-decisions/proposals/.gitkeep b/.project-docs/10-decisions/proposals/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/.project-docs/30-worklog/task-template.md b/.project-docs/30-worklog/task-template.md new file mode 100644 index 0000000..eb31158 --- /dev/null +++ b/.project-docs/30-worklog/task-template.md @@ -0,0 +1,35 @@ +# Task: {title} + +## Identity + +- Task ID: {task_id} +- Mode: {mode} +- Branch: {branch} +- Worktree: {worktree} +- Base commit: {base_commit} +- Owner: {owner} +- Status: Planning + +## Scope + +- {scope} + +## Intent And Constraints + +- {intent_or_constraint} + +## Outcome + +- Not completed. + +## Verification + +- Not run. + +## Follow-ups + +- None recorded. + +## Promotion Candidates + +- None recorded. diff --git a/.project-docs/30-worklog/tasks/.gitkeep b/.project-docs/30-worklog/tasks/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/.project-docs/80-commitments/items/.gitkeep b/.project-docs/80-commitments/items/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/.project-docs/90-maintenance/conflicts/.gitkeep b/.project-docs/90-maintenance/conflicts/.gitkeep new file mode 100644 index 0000000..e69de29