Marketplaces / vanillagreencom/kendex / dev
dev
Dev-agent workflows for issue implementation and review-fix delegation, invoked by orch or specialist agents.
skill · automation · safety 100/100 (clean) · @ a7ca9af
Install in kendex: kendex add --skill dev after subscribing to vanillagreencom/kendex.
Dev Workflows
Problem with this skill? Run
kendex report— it files to the owning repo automatically. Do not hand-file.
The implementer's side of an orchestrated round: what a specialist agent does between receiving a delegation and returning. orch is both the caller and the runtime — it owns delegation format, round acceptance, and every shell-shape rule.
| Workflow | Purpose |
|---|---|
workflows/dev-implement.md | Implementation: activate → plan → implement → validate → commit → QA labels → summary → artifact → return (§ 1-11) |
workflows/dev-fix.md | Review fixes: evaluate → apply or skip → validate → commit → artifact → return |
Review and QA-review belong to the reviewer skill: ../reviewer/workflows/review.md, ../reviewer/workflows/qa-review.md. Command shapes, literal format tags, and round mechanics are orch's: ../orch/SKILL.md § Harness-Safe Shell, § Format Tags Are Literal, § Round Closure.
Round Contract
Execute workflow sections in order; a "Skip if" condition is the workflow's decision, never your own scope assessment. Never push and never open a PR — the orchestrator does that after review passes.
The completion artifact is the round. dev-return-write writes it after the commit, so every field is final; never hand-author the JSON (schema: orch schemas/dev-return.md).
--issueis the delegation'sArtifact Key:line — the normalized workflow-state key (issue-Nfor GitHub,PROJ-123for Linear), never the tracker-nativeOWNER/REPO#Nor a bare number — and--round-iditsRound ID:line. The orchestrator resolves the receipt by exactly those two values; any substitute strands it.--validateis strictlypassorFAILING: check1,check2, matching your commit message and return. A pass that needed a re-run is stillpass: put the caveat in--validate-noteso it lands in the durable record instead of only in a message.--kindalways matches what was delegated. An investigate-and-recommend round is--kind analysis— it rejects--commit,--validate, and--item, and carries the recommendation in--summaryor--summary-file. Forcingimplementorfixonto such a round asserts a validation that never ran; skipping the artifact reads as an unfinished round.
Acceptance is that artifact plus git state, never your message. The orchestrator polls neither disk nor tracker, so both are required: write the artifact, then return exactly once over the harness's agent-to-agent channel — Claude Code SendMessage, Codex send_input, OpenCode a resume on the stored task_id, Pi background the final assistant message. A disk write is not a return. Send the **Return exactly** body once and go idle: in a Pi persistent pane follow it with complete_subagent (background agents must not call it); on Codex the send_input MESSAGE is the durable return and the runtime's FINAL_ANSWER echo of it is expected, not a separate return to author or expand.
Validation
Deterministic gate findings are fixed here, never carried into review. Fix what is simple and related and re-run; when a failure is complex or unrelated, commit anyway and report it; after the same failure three times, stop looping. Every unresolved failure is reported three times over — in the commit message, in --validate, and in your return.
Long-Running Validation
A full suite can outlast a turn. Invariant, every harness: the completion tail (commit → QA labels → summary → artifact → return) is never dropped, and an interrupted run is never success — re-check its real outcome and resume the tail. How you wait is your harness's:
- Claude Code — the Bash tool caps at ~10 min and a turn has no wall-clock primitive, so background the BARE command with output redirected to a log via
run_in_background, never piped or chained: unpiped, the completion wake's exit code IS the command's, and the log'sEND OF OUTPUT — exit status: Nblock is the authoritative verdict. Then end your turn. That wake is not reliably delivered to in-process teammate sub-agents, so idling after backgrounding is normal, not a stall — the orchestrator's watchdog closes the round. Never poll: a poll is an instant no-op turn that advances no wall clock. - Codex — foreground and block. There is no ~10-min tool cap, and under
approval_policy = neverthe classifier rejects poll-loop shapes anyway. - Pi — pane agents block naturally in their tmux shell; run it in the foreground.
Reflect
Skip if nothing recurred and nothing surprised you. Otherwise put the lesson where it will be read again — architecture docs when patterns, APIs, or documented behavior changed, or the managing project's kendex config (kendex.toml at the kendex project root, kendex-local.toml in a source-catalog checkout) under [skill-instructions], [agent-additional-instructions], or [agent-launch-instructions], followed by kendex refresh. Bar: would this save 5+ minutes in a future session? One surgical addition per lesson, no verbose examples. What you cannot update yourself goes in your return as [process] discovered work.
Configuration
Agent-type placeholders are project-configurable: [AGENT_TYPE] (dev agents receiving implementation delegations), [REVIEW_AGENT], [QA_AGENT]. Commit format: [PREFIX]([ISSUE_ID]): [DESCRIPTION]. DEV_VALIDATE_CMD (kendex.settings.toml [env]) names the project's validation command for the Validate step; unset → the project's documented build/test/lint command.