Deliverables:
- product plan
- architecture
- roadmap
- initial command contract
- plugin-first information architecture
Exit criteria:
- the product is clearly not just another coding agent
- the first implementation slice can be built without redesigning the whole concept
Build:
devflow statusdevflow finishdevflow doctordevflow mistakes add/list/detectdevflow prompt nextdevflow prompt latest- repo-local Codex/Claude plugin hooks for start, prompt intent, prompt rewrite context, tool preflight, tool result mistake detection, and finish guard context
- local
.devflow/state files - git dirty-file capture
- gate evidence capture
- platform execution contract and repeated-mistake memory capture/detection
- repo-local Codex plugin wrappers for the start/status/doctor and finish evidence loops
- repo-local Codex/Claude skills for status, doctor, harness, work, gates, review, split, next, rewrite, sessions, explain, and finish workflows
- Claude-compatible command shortcuts for explicit slash-command access to the same workflows
- Markdown next-session handoff output and latest prompt projection
Exit criteria:
- the maintainer can see the current repo/work/gate state before starting work
- the maintainer can inspect Windows/PowerShell, WSL/Linux, or macOS execution rules before asking an agent to run commands, and native hooks can block or record known high-confidence shell/tool mistakes when available
- a completed task can record changed files, commands run, skipped checks, risks, and a next-session prompt
- the product's first daily loop works from plugin skills, CLI, or future MCP tools without a dashboard or hosted sync
Active research notes, reports, paper drafts, pilot fixtures, and scoring
scripts are maintained outside this public repository in the private
devflow-native-research repository. This public roadmap tracks product work.
Build:
devflow initdevflow harness inspectdevflow harness plandevflow harness smoke- template installer
.devflow/config.json- docs/maps/testing/workflow templates
- project health scanner
Exit criteria:
- a new repo can get a complete development workflow scaffold
- health status can detect missing docs, workflow files, and malformed gates
Current implementation note: devflow init has a first confirmation-gated
scaffold path. The CLI renders a scaffold plan by default and writes
.devflow/config.json, AGENTS.md, docs router, workflow, testing strategy,
and architecture map index only with --confirm, skipping existing files
instead of overwriting them. devflow health and MCP devflow.health can now
report missing scaffold files, configured gates, and invalid gate definitions
with missing ids, missing commands, or duplicate ids. Template customization
remains later Phase 2 work.
Current implementation note: devflow harness inspect --targets codex,claude,superpowers,codegraph reports native plugin readiness, MCP launch
readiness, hook presence, Superpowers evidence availability, CodeGraph-style
provider signals, gate availability, and install/repair recommendations.
devflow harness plan converts that inspection into a dry-run adoption plan
without writing files. Native Codex/Claude gaps become create-if-missing
actions, Superpowers is treated as optional profile adoption, and CodeGraph is
treatable as optional context unless an existing provider needs freshness
checks. devflow harness install --confirm executes only native
create-if-missing actions, skips existing files, and ignores optional
Superpowers/CodeGraph actions. devflow harness health validates installed
native harness files by parsing plugin manifests and MCP config, executing hook
scripts with a synthetic payload, accepting Claude Stop decision payloads, and
checking configured gates and required review config. devflow harness repair --confirm now restores broken installed harness files with built-in canonical
content and mergeable required-review config, limited to malformed plugin
manifests, malformed MCP config, hook scripts that fail the health contract,
and missing review.required. Gate command repair remains a reported issue
rather than an automatic rewrite.
devflow harness smoke now wraps non-interactive native host packaging checks:
Codex/Claude CLI availability, temporary Codex local marketplace installation
of devflow@devflow-native-local, Claude plugin validation, manifests, hook
JSON, skills, Claude command shortcuts, and harness health. The same contract
is available through MCP as devflow.harness_smoke, with skipHostCommands
for CI or hosts that cannot launch Codex/Claude.
devflow harness smoke --session-smoke
can also launch a minimal Claude Code --plugin-dir stream and verify actual
Devflow plugin, slash-command, skill, MCP, SessionStart, and
UserPromptSubmit hook evidence before any model-auth result is considered.
Current implementation note: repo-local Codex and Claude plugin harnesses now
include SessionStart, UserPromptSubmit, PreToolUse, post-tool result, and
Stop coverage over the same local CLI/MCP contracts. The prompt hook can add
compact devflow prompt rewrite context for vague maintainer requests so the
agent receives an agent-ready interpretation without replacing the original
prompt. The Codex-compatible hook file stays at
plugins/devflow/hooks/hooks.json; the Claude-specific
plugins/devflow/hooks/claude-hooks.json adds Claude-only
UserPromptExpansion and PostToolUseFailure coverage. PreToolUse can deny
known high-confidence Windows PowerShell shell mismatches before execution, and
post-tool result hooks can call devflow mistakes detect --record so repeated
failures become future devflow doctor context.
The repo-local plugin now exposes the main Devflow feature set as skills for
Codex and Claude, plus Claude-compatible flat Markdown command shortcuts for
start, status, doctor, harness, work, gates, review, finish, next, explain,
rewrite, sessions, and split. These command shortcuts are host UX only; they still route agents
back to the same CLI/MCP contracts and .devflow state.
Build:
devflow split- work item registry
devflow work create/start/update/rename/ready/block/unblock/list
Exit criteria:
- split output can produce platform-specific worktree commands and one self-contained prompt per session
- work items can be registered and listed from local state
Current implementation note: devflow work create, devflow work start,
devflow work update, devflow work rename, devflow work ready,
devflow work block, devflow work unblock, and devflow work list now append and derive local work
item state from
.devflow/state/events.jsonl. MCP exposes the same contract as
devflow.work_create, devflow.work_start, devflow.work_update,
devflow.work_rename, devflow.work_ready, devflow.work_block, and
devflow.work_unblock, and devflow.work_list, and devflow status now reads active, blocked, and
ready-to-finish work items from derived state. work.updated changes title,
description, and owned paths without changing lifecycle status; rename is a
title-only alias. work.unblocked returns a blocked item to active status.
devflow split --register --start and MCP devflow.split with
register: true and start: true can also register generated split sessions
as active work items. Repeated create/start and split registration writes are
idempotent by work item id. Richer work item fields and update/rename commands
remain later Phase 3 work.
Build:
- gate definitions
- command execution and output capture
- pass/fail history
- dirty-file based recommendations
- secret redaction
Exit criteria:
- project-specific verification can be run and recorded
- skipped or failing gates remain visible
Current implementation note: devflow gates run <id> and MCP
devflow.gates_run can execute a configured .devflow/config.json gate as a
single process command, capture stdout/stderr summaries, record exit code and
pass/fail status in .devflow/state/events.jsonl, and surface that evidence
through devflow status. Shell-operator support, richer output redaction, and
multi-step gate descriptors remain later Phase 4 work.
Build:
- local Devflow MCP server
devflow.doctorMCP tooldevflow.statusMCP tooldevflow.harness_inspectMCP tooldevflow.harness_planMCP tooldevflow.harness_healthMCP tooldevflow.harness_smokeMCP tooldevflow.harness_repairMCP tooldevflow.splitMCP tooldevflow.finishMCP tooldevflow.record_gateMCP tooldevflow.gates_runMCP tooldevflow.next_promptMCP tooldevflow.handoff_latestMCP tooldevflow.rewrite_promptMCP tooldevflow.sessions_codexMCP tooldevflow.sessions_attach_planMCP tooldevflow.sessions_attachMCP tooldevflow.sessions_listMCP tooldevflow.sessions_noteMCP tooldevflow.work_createMCP tooldevflow.work_startMCP tooldevflow.work_updateMCP tooldevflow.work_renameMCP tooldevflow.work_readyMCP tooldevflow.work_blockMCP tooldevflow.work_unblockMCP tooldevflow.work_listMCP tooldevflow.review_requestMCP tooldevflow.review_recordMCP tool- Codex native plugin readiness and install surface
- Claude Code plugin draft with slash commands
- Codex MCP config template
- Superpowers profile instructions that treat Devflow as a continuity layer, not a replacement methodology
Exit criteria:
- Codex, Claude Code, or another MCP-capable host can read the same project state as the CLI
- agent-host authentication remains owned by the host
- plugin/slash-command UX calls the same core contracts as the CLI
Current implementation note: packages/mcp has testable handler functions for
devflow.status, devflow.harness_inspect, devflow.harness_plan,
devflow.harness_health, devflow.harness_smoke, confirmed-write
devflow.harness_repair, devflow.split, devflow.explain_term,
devflow.doctor, devflow.finish, devflow.record_gate, devflow.gates_run,
devflow.next_prompt, devflow.handoff_latest, and devflow.rewrite_prompt,
plus adapter-backed devflow.sessions_codex and
dry-run devflow.sessions_attach_plan, confirmed-write
devflow.sessions_attach, read-only devflow.sessions_list, manual
devflow.sessions_note, local work item tools devflow.work_create,
devflow.work_start, devflow.work_update, devflow.work_rename,
devflow.work_ready, devflow.work_block, devflow.work_unblock, and
devflow.work_list, local review request tool devflow.review_request, local
review evidence tool devflow.review_record, and a minimal stdio JSON-RPC
transport. The CLI also has devflow split --json with
optional work registration and devflow explain renderers, plus devflow prompt rewrite for converting
vague maintainer intent into agent-ready requirements. Host-specific Codex and
Claude plugin config templates are present. Project-specific split discovery can now read
.devflow/config.json split.tasks; richer docs/code map inference remains
later work. devflow finish now honors .devflow/config.json
review.required by requiring a passing review.completed record before
canClaimDone becomes true, and devflow review request generates the strict
reviewer prompt that should precede devflow review record. Finish and Stop
surfaces now show both the request and record follow-up commands. The repo-local plugin ships shared start, split, next,
explain, rewrite, sessions, and finish skills for Codex and Claude Code style plugin
workflows. devflow finish keeps .devflow/state/events.jsonl as canonical
handoff history and rewrites .devflow/next-prompt.md as the latest
human-readable projection; CLI devflow prompt latest and MCP
devflow.handoff_latest read that projection for the next session. Repo-local
and installed SessionStart hooks now include the same latest prompt projection
when present, so a new agent session receives the handoff automatically.
Build:
- Codex session adapter
- Claude session adapter
- manual session notes
- session-to-work-item linking
Exit criteria:
- active and historical agent sessions can be attached to a task
- compact status and optional artifacts can show what each session did and where it stopped
Current implementation note: packages/adapters has first read-only Codex
session discovery helpers. findCodexSessionFiles locates candidate JSONL
files under an explicit codexHome/sessions directory without parsing private
contents. parseCodexSessionJsonl extracts safe metadata from caller-provided
JSONL content. discoverCodexSessions accepts caller-supplied Codex-like records and
normalizes them into discovery events with confidence, source, and warning
fields. The CLI exposes this as devflow sessions codex --codex-home <path> --json; MCP exposes the same read-only probe as devflow.sessions_codex. It
does not attach sessions to work items.
The adapter layer also normalizes caller-provided Claude Code, OpenCode, and
Cline session records through the same discovery shape, exposed to MCP as
devflow.sessions_claude, devflow.sessions_opencode, and
devflow.sessions_cline. CLI --history <path> and MCP historyPath can read
only an explicit exported file or directory; these tools remain read-only and
do not probe private history directories automatically.
Core has a pure
createSessionAttachPlan contract that proposes attach candidates and keeps
low-confidence sessions confirmation-gated before any future state write. The
CLI exposes this dry-run planner as devflow sessions attach-plan --input <json-file> --json; MCP exposes the same dry-run planner as
devflow.sessions_attach_plan. The CLI also exposes
devflow sessions attach --input <json-file> --session <id> --confirm --json
to append an approved session.attached event to local state; MCP exposes the
same confirmed write as devflow.sessions_attach. Duplicate session/work item
links return the existing event without appending another JSONL line. Attached
session links are visible through devflow sessions list --json and MCP
devflow.sessions_list. Manual or external session context can be recorded via
devflow sessions note --work <id> --summary <text> --json or MCP
devflow.sessions_note, and appears in the same session list. Session list
supports work item filtering through CLI --work <id> and MCP work or
workItemId, agent filtering through CLI --agent <name> and MCP agent, plus
timestamp filtering through CLI --since <iso-date> and MCP since, and
recent-match limiting through CLI --limit <n> and MCP limit. Explicit
chronological ordering is available before limiting through CLI
--sort observedAt:asc|observedAt:desc and MCP sort. The CLI also has a
human-readable default renderer for quick terminal inspection while --json
keeps the agent contract stable.
Current research-enabling note: packages/core now includes a synthetic
interrupted task resumption fixture contract and a public minimal fixture under
packages/core/test/fixtures/interrupted-task-resumption/minimal/. It compares
no-note, ad hoc chat-summary, and Devflow-state resumption materials without
publishing private traces, hidden labels, scoring scripts, or pilot data.
Build:
devflow status --simple(implemented as a CLI renderer, including work filter, agent filter, session evidence counts, latest session work item, session id, observed time, agent, kind, summary, and changed-file count)devflow finish --guided(implemented as a CLI renderer)devflow explain <term>- glossary seed for common UI, web, git, testing, deployment, and agent terms
- prompt rewrite helper that turns vague intent into agent-ready requirements
(implemented as
devflow prompt rewrite)
Exit criteria:
- a beginner can understand common terms such as sidebar, toast, modal, responsive layout, route, state, middleware, branch, test, and deploy in the context of the current project
- simple/guided output remains a renderer over the same core state, not a separate product model
Build:
- on-demand HTML/text artifact generation from structured
.devflowstate - review sheet artifacts for changed files, gates, skipped checks, and risks
- split board artifacts for parallel work planning
- timeline artifacts for sessions, gates, and handoffs
- handoff artifacts for next-session prompts and unresolved risks
Exit criteria:
- the maintainer can request a visual artifact only when the state is too dense for compact text
- generated HTML is never the source of truth and is not fed back to agents by default
- artifact templates are local, deterministic, and cheap compared with asking the model to regenerate layout every turn
Current implementation note: the earlier dashboard package was removed from the MVP. Phase 8 is now an on-demand artifact layer rather than a persistent web app.
Build:
gh-based PR metadata import- review comment/thread import
- review resolution state
- PR readiness summary
Exit criteria:
- solo PR review flow is visible without manually browsing GitHub comments
Build:
- launch templates
- one primary session plus one reviewer session
- optional parallel worktree tasks
- stuck-session detection
Exit criteria:
- orchestration improves continuity rather than increasing cognitive load
Build:
- global project index
- reusable workflow profiles
- reusable gate profiles
- reusable prompt profiles
- searchable decisions and lessons
Exit criteria:
- starting a new serious project reuses proven workflow structure immediately