docs(plan): v1.2 phase 1 plans (0 candidates — empty set, REQ-INB-26 rejected)
---ci---
project: inboxos
phase: 1
milestone: v1.2
status: plan
plan:
id: 01-PLAN-v1.2
candidates_accepted: 0
candidates_rejected: 1
candidates_rejected_ids: [REQ-INB-26]
waves: 0
tasks: 0
vertical_slices: 0
must_haves: 0
rationale: |
The v1.2 ideation pass produced 1 candidate (REQ-INB-26) that
was subsequently rejected as out-of-domain (see commit
7151c19). With 0 accepted candidates, the PLAN is the
documentation commit that records the decision not to add
code. This is the same disposition pattern as an NFR
milestone with all fix/chore phases: the plan exists to
record the decision, not to skip the planning step.
file: .ciagent/inboxos/plans/01-PLAN-v1.2.md
inputs:
- active_project: inboxos (per .ciagent/config.json active_projects[0])
- active_milestone: v1.2 (per .ciagent/inboxos/ROADMAP.md v1.2 block)
- ideation_sha: b0f099b
- disposition_sha: 7151c19
- external_actions:
- tea comment 8 -r jc-capital/inboxos (posted 2026-06-08 to INB-183)
prerequisites:
- active_project_confirmed: true
- active_milestone_confirmed: true
- ideation_commit_recorded: true
- disposition_commit_recorded: true
- external_action_recorded: true
- no_paperclip_adhoc_changes: true
deliverables:
code: 0
tests: 0
schema: 0
docs: 0
audit_trail_commits: 1 (this plan)
hand_off:
- execute: no tasks, one chore commit recording the no-task execution + rejection lineage
- verify: verifies the rejection state is consistent
- complete: closes v1.2 milestone on 0/1 disposition, tag v1.2.0, release notes
files_touched:
new:
- .ciagent/inboxos/plans/01-PLAN-v1.2.md
unchanged:
- .ciagent/inboxos/plans/01-PLAN.md (v1.1 plan, preserved)
- .ciagent/inboxos/plans/01-PLAN-CHECK.md (v1.1 plan-check, preserved)
- .ciagent/inboxos/plans/05-PLAN.md (v1.0 phase 5 plan, preserved)
- all inboxos code/test/schema/doc files (empty plan produces no source-tree changes)
- docs/requirements.md (CPO-owned, not modified)
- docs/roadmap.md (CPO-owned, not modified)
verification:
type: plan_commit_only
note: This is the PLAN commit. The plan produces no code/test/schema/doc changes. The next stage (EXECUTE) will record a no-task chore commit; VERIFY will check the rejection state; COMPLETE will close the v1.2 milestone.
---/ci---
This commit is contained in:
@@ -0,0 +1,136 @@
|
||||
# InboxOS — v1.2 Phase 01 PLAN (Empty Candidate Set)
|
||||
|
||||
> **Date:** 2026-06-08
|
||||
> **Project:** InboxOS (`/INB/projects/inboxos`)
|
||||
> **Milestone:** v1.2 (post-v1.1)
|
||||
> **Plan status:** executed-on-empty-set
|
||||
> **Plan author:** `ci-planner` (delegated from `ciagent-run`)
|
||||
> **Source:** `.ciagent/inboxos/ideation/v1.2-candidates.md` §8
|
||||
> (final disposition, 2026-06-08)
|
||||
|
||||
---
|
||||
|
||||
## 0. Why this plan exists at all
|
||||
|
||||
The `ciagent-run` workflow requires a PLAN stage commit on the
|
||||
phase branch before EXECUTE. Even when the ideation set is empty
|
||||
(0 accepted candidates, 1 rejected), the PLAN is the
|
||||
**documentation commit** that records "the planner considered the
|
||||
candidate set, found no work to do, and is shipping the empty
|
||||
plan." This preserves the audit trail and lets the milestone close
|
||||
on a defensible no-feature delta.
|
||||
|
||||
This is the same disposition pattern used for NFR milestones
|
||||
where all phases are `fix/chore/docs/perf/refactor/test` — the
|
||||
plan exists to record the decision not to add code, not to skip
|
||||
the planning step.
|
||||
|
||||
---
|
||||
|
||||
## 1. Plan inputs
|
||||
|
||||
| Input | Value | Source |
|
||||
|-------|-------|--------|
|
||||
| Active project | `inboxos` | `.ciagent/config.json` `active_projects[0]` |
|
||||
| Active milestone | `v1.2` | `.ciagent/inboxos/ROADMAP.md` v1.2 ideation block |
|
||||
| Candidate set | 0 accepted, 1 rejected | `.ciagent/inboxos/REQUIREMENTS.md` v1.2 section |
|
||||
| Required deliverables | none (empty plan) | derived from candidate set |
|
||||
| Required testing | none (no code delta) | derived from candidate set |
|
||||
| Required docs | none (no schema or contract delta) | derived from candidate set |
|
||||
|
||||
## 2. Wave plan
|
||||
|
||||
```
|
||||
Wave 0: (no work)
|
||||
task 0.1: (none)
|
||||
task 0.2: (none)
|
||||
task 0.3: (none)
|
||||
```
|
||||
|
||||
**Vertical-slice check:** N/A — no slices to integrate.
|
||||
|
||||
**Must-have check:** N/A — no must-haves to satisfy. The
|
||||
milestone-level must-have is "produce a 0/1 disposition that
|
||||
preserves the audit trail," which is satisfied by:
|
||||
|
||||
- `b0f099b` (initial ideate, REQ-INB-26 accepted)
|
||||
- `7151c19` (disposition flip, REQ-INB-26 rejected, comment
|
||||
posted to `INB-183`)
|
||||
|
||||
Both commits precede this plan and are referenced in the
|
||||
verification commit that will follow.
|
||||
|
||||
## 3. Requirement coverage
|
||||
|
||||
| REQ-ID | Status in v1.2 | Disposition |
|
||||
|--------|----------------|-------------|
|
||||
| REQ-INB-26 | `[REJECTED — out of domain]` | Comment on `INB-183` (posted); status flipped in `REQUIREMENTS.md`; do not bring back into inboxos |
|
||||
| (none other) | n/a | v1.2 has no other candidates |
|
||||
|
||||
**Coverage ratio:** 0/1 (0 accepted, 1 rejected).
|
||||
|
||||
## 4. Plan-execution prerequisites
|
||||
|
||||
- [x] Active project confirmed as `inboxos` (per
|
||||
`.ciagent/config.json` `active_projects[0]`)
|
||||
- [x] Active milestone confirmed as `v1.2`
|
||||
- [x] Ideation commit recorded: `b0f099b`
|
||||
- [x] Disposition commit recorded: `7151c19`
|
||||
- [x] External action recorded: `tea comment 8 -r
|
||||
jc-capital/inboxos` posted to `INB-183` on 2026-06-08
|
||||
- [x] No paperclip monorepo ad-hoc changes (operator directive
|
||||
honored)
|
||||
|
||||
## 5. Plan deliverables
|
||||
|
||||
This plan produces **zero code, zero test, zero schema, zero
|
||||
doc** deliverables. The plan's only deliverable is itself — a
|
||||
recorded "no work to do" decision that the EXECUTE and VERIFY
|
||||
phases can reference.
|
||||
|
||||
## 6. Risk register
|
||||
|
||||
| Risk | Likelihood | Impact | Mitigation |
|
||||
|------|------------|--------|------------|
|
||||
| `INB-183` author (CTO) reopens the issue after the rejection comment | low | low | The comment is polite, decision-clarifying, and offers a non-binding follow-up pointer; if the CTO wants a different disposition they can reassign or re-target the issue and the inboxos bot will pick it up in a future ideation pass |
|
||||
| Cross-project meta CP-1 ("register paperclip") gets re-raised in a future ideation pass | medium | low | The CP-1 finding is closed by negation in `v1.2-candidates.md` §5 + §8; future ideation passes inherit the closure |
|
||||
| The v1.2.0 tag is interpreted as "v1.2 has features" by downstream consumers | low | medium | The Gitea release notes (created in COMPLETE) will explicitly say "no-feature delta over v1.1.0; v1.2 milestone closes on 0/1 ideation disposition with 1 candidate rejected as out-of-domain" |
|
||||
|
||||
## 7. Hand-off
|
||||
|
||||
- **EXECUTE phase:** runs on the empty candidate set. Produces
|
||||
one chore commit recording the no-task execution and
|
||||
referencing the rejection lineage (`b0f099b` → `7151c19` →
|
||||
this PLAN).
|
||||
- **VERIFY phase:** verifies the rejection state is
|
||||
consistent — REQUIREMENTS.md has REQ-INB-26 marked
|
||||
`[REJECTED — out of domain]`, ROADMAP.md records the 0/1
|
||||
disposition, the v1.2 candidates file §8 records the
|
||||
comment-on-issue action, and the Gitea comment exists on
|
||||
`INB-183` (cross-checked via `tea issues 8 --comments`).
|
||||
- **COMPLETE phase:** closes the v1.2 inboxos milestone on
|
||||
the 0/1 disposition. Tag `v1.2.0`. Release notes record
|
||||
the no-feature delta. Merge to `main` (per the v1.1
|
||||
pattern: FF-merge from `milestone/v1.2-initial` to `main`,
|
||||
push the tag, push the milestone branch, create the Gitea
|
||||
release).
|
||||
|
||||
## 8. Files updated by this plan
|
||||
|
||||
- **New:** `.ciagent/inboxos/plans/01-PLAN-v1.2.md` (this file)
|
||||
- **Filename choice:** the v1.1 plan lives at
|
||||
`plans/01-PLAN.md` (committed in `78e42ee` and
|
||||
`01-PLAN-CHECK.md`); the v1.2 plan is written to
|
||||
`plans/01-PLAN-v1.2.md` to avoid an in-place overwrite of
|
||||
the v1.1 audit trail. The `01-PLAN-CHECK.md` companion is
|
||||
not duplicated for v1.2 — the plan-checker verdict for an
|
||||
empty plan is "no plan to check," recorded inline in §0
|
||||
and the EXECUTE / VERIFY commits that follow.
|
||||
- **Untouched:** all inboxos code, test, schema, and doc files
|
||||
(the empty plan produces no source-tree changes)
|
||||
- **Untouched:** `.ciagent/inboxos/plans/01-PLAN.md` (v1.1
|
||||
plan, preserved)
|
||||
- **Untouched:** `.ciagent/inboxos/plans/01-PLAN-CHECK.md`
|
||||
(v1.1 plan-check, preserved)
|
||||
- **Untouched:** `.ciagent/inboxos/plans/05-PLAN.md` (v1.0
|
||||
phase 5 plan, preserved)
|
||||
Reference in New Issue
Block a user