Skip to content

v0.5.4 — SDLC process improvements

Latest

Choose a tag to compare

@WojcikMM WojcikMM released this 28 Oct 16:57
ab406a9

[v0.5.4]

Added

  • Parallel delivery with git worktrees — independent packages can be delivered concurrently on sdp/<delivery-id> branches/worktrees. /plan-task records a parallel-safety verdict (independent, additive-overlap, sequenced) when other packages are open, the developer edits shared hotspots additively, and the acceptance brief reports read-only merge readiness. Single-package flow is unchanged.

Changed

  • Package-scoped state — plans, run records, and history live in spec/<slug>/deliveries/<delivery-id>/. Shared specs are read-only during delivery and feature/story status is derived, so parallel packages do not conflict in spec files.
  • ACTIVE.md is a local pointer (slug, title, current_gate, current_delivery) with no body; agents must not append notes, summaries, or history to it and move any legacy body content to the package HISTORY.md, run record, or gate artifacts. delivery_status and pending_audit moved to DELIVERY-RUN.json schema version 3; feature_status is derived. Package resolution order: explicit ID, sdp/<delivery-id> branch, ACTIVE.md, only open package.
  • TECH.md delivery policy — added integration branch, parallel delivery, and merge hotspot lines.

Migration

  • Move existing PLAN.md, run record, and history entries into the package folder and move delivery state out of ACTIVE.md; see README "Upgrading to package-scoped state". Installer behavior is unchanged.

[v0.5.3]

Added

  • scripts/sync-templates.sh — regenerates the APM sdp-templates skill-asset mirror from the canonical .apm/templates/ directory (apm run sync-templates) and checks for drift without modifying files (apm run check-templates), replacing the manual byte-for-byte copy obligation.
  • Proportional assurance profiles — added Lean, Balanced (default), and Compliance delivery profiles. Review remains independent, while specialist security and QA stages run when policy, risk, or independently observable behavior requires them. Compliance retains strict hashes, manifests, environment identity, and evidence retention when a project needs them.
  • Natural-language correction flow — after the acceptance brief, users can accept, reject, or describe what is wrong without supplying delivery/candidate identifiers. Bounded corrections are repaired and rechecked; changed contracts return to planning.
  • Durable comment policy — production comments must not contain story/task/epic/AC identifiers, implementation narration, change history, completed planning notes, or obvious code restatements. Developer and reviewer agents now enforce this policy.
  • Implementation autonomy — plans explicitly preserve developer ownership of naming, idiomatic local design, helper reuse/extraction, and adjacent tests inside the approved outcome and change boundary.

Changed

  • Simplified /deliver workflow — bare /deliver now resolves spec/ACTIVE.md, approves the current visible PLAN.md, executes it, runs proportionate assurance, and stops at human acceptance. Delivery IDs, plan revisions, digests, and candidate hashes are no longer required when active state is unambiguous. Advanced Compliance, resume, inspect, and reject actions remain available.
  • Risk-based security is now the default — epic policy is risk-based | per-story | epic-level | waived. Specialist security review is triggered by authentication, authorization, secrets, untrusted input, sensitive data, cryptography, trust boundaries, dependency/infrastructure security, regulated controls, or explicit policy.
  • Reviewer and QA responsibilities are separated — reviewer owns technical correctness, maintainability, scope, and test quality. QA runs when independently exercising observable behavior adds evidence beyond review and focused tests.
  • PLAN.md is implementation-focused — removed normal-mode orchestration bookkeeping such as upstream hashes, model references, resource counters, file manifests, and immutable revision metadata. Plans retain outcome, non-goals, decisions, boundary, ordered work, verification, applicable recovery, and autonomy limits.
  • Delivery evidence is compact by default — DELIVERY-RUN.json schema version 2 is a small resume checkpoint, and HISTORY.md stores one final delivery summary plus unresolved blocks/escalations instead of duplicating successful stage narratives and command logs.
  • State model consolidated — ACTIVE.md now uses current_delivery, feature_status, and delivery_status, replacing overlapping current_story, status, and final_status fields.
  • Earlier gates can be right-sized — small resolved changes may explicitly reference existing product/design contracts instead of generating redundant artifacts, while still requiring an outcome, plan, verification, independent review, and human acceptance.
  • Global standards made proportional — softened universal requirements around assertions, health endpoints, metrics, branching, ADRs, test placement, and migration rollback so project-specific policy can live in TECH.md.
  • All agents and prompts aligned — role files now contain role-specific behavior rather than repeating the entire run-state and compliance contract. Bare /deliver, profile routing, conversational correction, and compact evidence are consistent across agents, prompts, instructions, templates, and README.
  • Skills refined — API/UI/error-handling skills reinforce durable comments, migration guidance supports safe forward recovery for approved irreversible operations, and test guidance permits multiple assertions that verify one behavioral outcome.
  • Documentation and installer guidance updated — README now documents the simplified workflow, delivery profiles, security/QA triggers, state migration, and Compliance fallback. Installer behavior is unchanged; output now points users to the SDP Delivery Policy in TECH.md.
  • Generated context refreshed — root AGENTS.md and the APM template-asset mirror were regenerated from canonical .apm/ sources.

Breaking Changes

  • Existing clients must migrate current_story to current_delivery, status to feature_status, and final_status to the closest delivery_status.
  • Existing active plans should be regenerated with the simplified PLAN.md template.
  • New delivery checkpoints use DELIVERY-RUN.json schema version 2; unresolved pending_audit obligations must be preserved during migration.
  • Old agents, prompts, instructions, and templates must not be mixed with the redesigned workflow. Upgrade SDP-managed files together and preserve project TECH.md with SDP_TECH_MODE=skip when appropriate.

Removed

  • Mandatory plan digests, upstream artifact hashes, full working-tree manifests, environment fingerprints, exact candidate IDs, and immutable plan archives from Lean/Balanced delivery. These remain available through project-configured Compliance policy.
  • Required approve-and-run <delivery-id> <revision> and accept <delivery-id> <candidate-id> syntax from the normal user workflow.

[v0.5.2]

Customization-layer refactor addressing SDP-REVIEW.md, with synchronized documentation and installer notices. No version bump in apm.yml/plugin.json.

Added

  • APM-compatible template assets — canonical .apm/templates/ files are mirrored into the sdp-templates skill because APM 0.29 rejects unknown primitive directories during apm pack; process instructions now resolve either direct-installer or APM asset paths.
  • sdp.orchestrator agent and /deliver prompt — a supervised-delivery entry point that dispatches sdp.developer, sdp.reviewer, sdp.security, and sdp.qa in sequence within one session, ends at a human acceptance checkpoint, and never writes product code itself. Manual mode (/implement, /run-review, /audit-security, /qa-validate) remains fully valid and is the required fallback.
  • Final Human Acceptance checkpoint — a sdp.qa Pass now sets final_status: awaiting-acceptance and produces an acceptance brief instead of marking the story/feature done automatically. Only an explicit human accept/reject/request-changes decision closes a delivery package; acceptance never itself authorizes commit/merge/deploy/next-package.
  • spec/ACTIVE.md fields — added final_status (not-started | in-delivery | awaiting-acceptance | accepted | rejected) and pending_audit (list of outstanding epic audit IDs).
  • Plan digest — PLAN.md approval now records a content fingerprint of the plan body; any later edit to the body invalidates the approval regardless of the status field, binding approval to a specific revision instead of a filename.
  • Symmetric upstream-approval enforcement — every gate agent (sdp.analyst, sdp.architect, sdp.planner, sdp.developer/sdp.orchestrator) now explicitly refuses to proceed unless its upstream artifact is status: approved with approved_by/approved_at filled in, not just the developer/PLAN.md pair.
  • Capability Sizing — replaced the fixed Gate 4 Scope Budget (8 files / 300 lines / S-M-L) with an independent Size (S/M/L/XL) x Risk (Low/Moderate/High) x Uncertainty (Resolved/Bounded/Open) rating and outcome-based split criteria, carried from DESIGN.md through EPIC.md/BACKLOG.md/PLAN.md.
  • Delivery Contract — PLAN.md restructured into a Human Decision Brief plus an Execution Contract (Delivery Identity, Change Boundary, Work Graph, Verification Matrix, Autonomy Policy, Operational Limits, Recovery).
  • Delivery Run Record: new DELIVERY-RUN.json template for baseline/candidate manifests, steps, results, obligations, resource use and acceptance. HISTORY defines the worker envelope and validation contract. Both manual and supervised runs use the same data format; no runtime engine or dependency is added.
  • Model Policy — TECH.md gained a section mapping each gate role to a model profile label, with an explicit instruction not to invent unavailable model IDs.
  • Deferred-audit closure tracking: the final package dispatches an aggregate audit against the original epic baseline, then final QA before closure. Intermediate acceptance retains obligations; multi-story/multi-epic packages preserve all policies.

Changed

  • Central rejected-candidate counter replaces "same story fails the same hardening step twice" — escalation to the user now triggers after the delivery package's 2nd rejected candidate, counting rejections from review, security, or QA in any combination, not per-stage.
  • Delivery package replaces "one story at a time" as the Gate 4-6 unit of work — a package may bundle tightly related stories sharing one coherent, demonstrable outcome; unrelated work is never bundled.
  • sdp.developer, sdp.reviewer, sdp.security, sdp.qa now describe dual-mode operation: standalone manual handoffs are unchanged, and each also returns a structured result to sdp.orchestrator instead of self-chaining when invoked under /deliver.
  • write-tests skill's test-deletion guidance ("fix or delete failing tests") replaced with a requirement for a root-cause explanation and confirmation that equivalent required coverage remains.
  • README.md — added a "Manual vs. Supervised Delivery" section, updated the Quick Start walkthrough, 6-gate diagram, feedback loop table, feature folder structure, and agents/prompts/templates reference tables.
  • Added documented tool allowlists and worker subagent restrictions. The read-only reviewer returns records for the next role/coordinator to persist; terminal permissions are not represented as a sandbox.
  • Added explicit approve-and-run/run/resume/accept/reject/request-changes routing with fresh candidate checks and no automatic next-package selection.
  • Both installers now report mixed-version upgrade risks and Model Policy setup; copy/force/TECH handling is unchanged. Normalized the touched Bash installer to LF so the raw syntax gate passes. Corrected Bash README examples to apply environment variables to bash, not curl.
  • Regenerated root AGENTS.md using the installed APM CLI; no manual edits or archived build changes.

Not Changed

  • Installer copy behavior: both already recursively copy .apm/ to .github/, including the new agent, prompt and run template. Default preservation and explicit force behavior remain intact.
  • apm.yml / plugin.json — no version bump; these point at the .apm/ directories generically and needed no path changes.
  • No durable execution service, authenticated approval system, automatic model selector, or live cross-harness compatibility guarantee is introduced.

What's Changed

  • feat: Enhance installation scripts and introduce orchestrator agent f… by @wojcikmm-dnv in #9

Full Changelog: spec-development-protocol-v0.5.1...spec-development-protocol-v0.5.4