Skip to content

Merge origin/main into feature/ADR-296-concurrency - #79

Merged
jodavis merged 10 commits into
feature/ADR-296-concurrencyfrom
merge/main-into-ADR-296-concurrency
Jul 22, 2026
Merged

Merge origin/main into feature/ADR-296-concurrency#79
jodavis merged 10 commits into
feature/ADR-296-concurrencyfrom
merge/main-into-ADR-296-concurrency

Conversation

@jodavis-claude

@jodavis-claude jodavis-claude commented Jul 21, 2026

Copy link
Copy Markdown
Collaborator

Summary

  • Syncs feature/ADR-296-concurrency with origin/main. The branch was reset to the current origin/feature/ADR-296-concurrency tip (it had moved forward to include ADR-308's task-readiness-checker work, ADR-308: Task readiness checker and dependency-aware base-branch resolver #70) and re-merged from origin/main after that move surfaced additional conflicts.
  • plugins/dev-team/skills/workflow-orchestrate/scripts/dev_team.py: main's inline PipelineContext dataclass collides with this branch's already-extracted pipeline_context.py module (added by ADR-335). Resolved by dropping main's inline redefinition — the extracted module is a strict superset (same fields plus extra_frontmatter preservation) and dev_team.py already imports PipelineContext from it.
  • plugins/dev-team/skills/ensure-working-branch/SKILL.md: two related conflicts.
    • Step numbering/content: kept this branch's new step 1 ("Worktree-freshness check," from ADR-308) but adopted main's later efficiency fix (0c75f3f) of reading git-repo/documentation from the context file's cached Project Configuration section instead of invoking get-project-configuration fresh — ADR-308 had branched off the pre-efficiency-fix version and never picked that change up, so keeping its literal text would have been a silent regression.
    • documentation.specs.searchdocumentation.dev-specs.search: adopted main's renamed key (from Add write-design-spec PM design phase; rename spec pipeline to dev-spec #76), since documentation.specs now refers to the new PM design doc, not the dev spec.
  • plugins/dev-team/skills/spec-task-breakdown/SKILL.mddev-spec-task-breakdown/SKILL.md merged cleanly as a rename both times; this branch never touched that file.

Test plan

  • python -m py_compile on dev_team.py and pipeline_context.py
  • pytest test_dev_team.py test_pipeline_context.py — 137 passed, 1 pre-existing failure (test_home_relative_script_is_expanded, a Windows HOME/expanduser() env quirk unrelated to this merge)
  • merge_config.py --repo-root . parses cleanly
  • Repo-wide grep for leftover <<<<<<</=======/>>>>>>> conflict markers — none found
  • Grep for stale documentation.specs references in the resolved file — none found

🤖 Generated with Claude Code

jodavis-claude and others added 9 commits July 15, 2026 06:56
* ADR-317: Add playbook-contract knowledge skill

Defines the normative two-layer playbook directory contract (required
SKILL.md + spec-template.md; optional dev-team.md overlay and scripts),
TODO marker semantics with mandatory manual fallbacks, vendor-neutrality
rules with compliant/violating step-prose examples, the Method marker
convention (format, lifecycle, post-harvest target shape), and bare-name
playbook resolution order.

* ADR-317: Restructure violating vendor-neutrality example to lead with quoted bad step prose

Addresses PR #62 review comment: the Violating bullet previously led with
the litmus question instead of a concrete example of violating step prose,
unlike the Compliant bullet which quotes a complete step. Now both bullets
quote step prose first, with the litmus question explained as the
diagnostic used to catch the violation.

* ADR-317: Broaden playbook-contract use-case to any reusable process

Review feedback: the "Use this skill when" bullet described playbooks
narrowly as capturing "how to build a family of similar components,"
but a playbook can capture any reusable process discovered while
implementing a spec (a testing strategy, a documentation format,
etc.), not only component-building. Reworded to list component-family
construction as one example among several rather than the sole use
case.

* ADR-317: Remove dev-team.md overlay concept from playbook contract

Review feedback: no dev-team artifacts should live in the playbook
directory contract until a real need for one proves itself. Removed
the dev-team.md optional overlay from the directory tree diagram and
its explanatory bullet, dropped the resulting "two-layer" framing from
the section heading and frontmatter description (only the required
core plus optional scripts/assets remain), and reworded the intro
paragraph to state plainly that the contract has no dev-team-specific
overlay file.

* ADR-317: Remove dev-team.md overlay references from spec

The overlay concept was dropped from playbook-contract per PR #62 review
feedback (no dev-team artifacts in playbooks until a real need proves
itself). Updates the spec's design decisions, directory tree diagrams,
Component Breakdown, Open Questions, and task exit criteria (including
retroactive updates to the already-completed Task 1) to match.

Closes #64.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01JNYTYW974in8rcD7cWd3Ca

---------

Co-authored-by: Claude on behlaf of jodavis <ElwoodMoves@hotmail.com>
Co-authored-by: Claude Sonnet 5 <noreply@anthropic.com>
* ADR-318: Build the skill dry-run harness for Playbook Harvesting

Fixtures and a documented run procedure that verify the Testable prose
components (harvest-playbook, spec-first-draft instance mode,
spec-task-breakdown seeding) introduced by the Playbook Harvesting feature,
per missing-test-harness.

Key decisions:
- Fixture directory: plugins/dev-team/fixtures/playbook-harvesting/ (shared
  location, since three later skills' dry runs each consume a subset).
- Interview answer key: a Markdown table (question theme -> scripted answer),
  human-readable and easy for a validating subagent to parse.
- Mechanical assertions live inline in RUN.md under each component's
  checklist item, rather than as separate scripts.
- Method-marker format and playbook-directory contract authored directly
  from _spec_PlaybookHarvesting.md's own definitions, since ADR-317
  (playbook-contract) has not landed yet in this worktree; cross-check
  against the real playbook-contract SKILL.md once ADR-317 lands.
- materialize.py's git-replay logic was driven through genuine red/green
  TDD directly (tests-first, confirmed red, then green) rather than the
  full tdd-tester/tdd-implementer/tdd-refactorer trio spawn, since the
  component is overwhelmingly hand-authored fixture content with only one
  small, cohesive piece of AAA-testable logic.

* ADR-318: validate manifest entry shape before dereferencing dir/message keys

materialize.py's load_manifest() and validate_snapshots_exist() dereferenced
entry["dir"]/entry["message"] without first checking the entry was a dict
carrying both keys as strings. A malformed manifest entry raised an uncaught
KeyError/TypeError with a raw traceback, violating the module's documented
contract of printing a friendly "Error: ..." message and exiting 1.

Adds _validate_entry_shape(), called from load_manifest() for every entry,
which raises MaterializeError with a clear message for a non-dict entry, a
missing dir/message key, or a non-string dir/message value. Adds 5 tests
covering each new failure branch.

Addresses PR review comment on #66.

---------

Co-authored-by: Claude on behlaf of jodavis <ElwoodMoves@hotmail.com>
* Readiness review updates for concurrent implementation and playbook harvesting specs

* Give `SendMessage` tool to Developer sub-agent

* Improve efficiency of sub agent startup by caching more information in the task context file

* TDD isolation using a driver script

* Tweak language in use-context-file/SKILL.md

* Address PR #68 review comments

- Keep each trio member's claude subprocess alive across turns via
  --input-format/--output-format stream-json instead of restarting per
  turn (--resume every call). Confirmed by live smoke test: session_id
  and prompt cache persist across turns, and tool auto-approval needs
  no extra control-request handling. Also caught and fixed a real gap
  found during that smoke test: --output-format stream-json requires
  --verbose alongside --print.
- Make the TDD trio's test-file/production-file split configurable via
  a new testing.test-file-patterns project config key instead of a
  hardcoded Python-only convention.
- Pass the component prompt to tdd_cycle.py over stdin instead of a
  scratch temp file.
- Remove dead fallback in _project_configuration now that context files
  always cache project configuration at creation time.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Fx1tsWZzfZCMemBEiN2TF1

---------

Co-authored-by: Claude on behlaf of jodavis <ElwoodMoves@hotmail.com>
Co-authored-by: Claude Sonnet 5 <noreply@anthropic.com>
…cher (#69)

* ADR-319: Implement harvest-playbook skill and /harvest command dispatcher

Adds plugins/dev-team/skills/harvest-playbook/SKILL.md, the core six-step harvest
procedure (gather inputs from paths -> build candidate method content via Method
markers/litmus-test classification/exemplar diffing -> interview -> author the
playbook directory -> replace consumed Method markers with provenance links ->
present the TODO list and replay-and-diff validation procedure), and
plugins/dev-team/commands/harvest.md, a thin dispatcher documenting the argument
contract and forwarding to the skill.

Key decisions:
- The Testable component (harvest-playbook) was implemented directly rather than
  through the tdd-tester/tdd-implementer/tdd-refactorer trio: the component is pure
  agent-skill prose with no AAA-testable logic of its own, verified instead by the
  fixture-driven dry-run harness (component-taxonomy's explicit "agent-skill prose"
  example of a Testable component verified by whatever mechanism fits). This mirrors
  ADR-318's own precedent of bypassing the trio for its hand-authored-fixture content.
- Treated the dry-run checklist (authored before the skill prose, red) as this task's
  TDD-red analogue in place of Gherkin E2E scenarios, since no Gherkin/BDD harness
  exists anywhere in this repo and missing-test-harness prohibits inventing one; the
  checklist is included in the work summary as reviewable content per the brief.
- Verified green by materializing the fixture exemplar repos, spawning a subagent
  blind to authoring context to run harvest-playbook to completion against the
  fixture spec/exemplars/template-output/interview-answer-key, and grading its output
  against the checklist (all mechanical and judgment-shaped items passed, including
  the derived strip/replace step and the surfaced logging-format divergence).

* ADR-319: address PR review comments on harvest-playbook

- Support partial-spec harvests: scope can be given conversationally in
  step 1, or asked explicitly at the start of step 3, instead of assuming
  the whole artifact is always in scope.
- Add a review step (step 5) that invokes spec-discussion against the
  authored playbook's SKILL.md before Method markers are replaced, so the
  user can leave REVIEW comments the same way they would on a spec.
- Reword the Method provenance line per suggestion ("see" instead of
  "harvested into").
- Drop the replay-and-diff validation procedure from harvest-playbook's
  presented output — it's this feature's own one-time acceptance test
  (see _spec_PlaybookHarvesting.md), not a standard step for every
  harvested playbook. Updated the spec's decision record and Task 3 exit
  criteria to match.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01RBnDBvr47h4fVqNte6feE2

---------

Co-authored-by: Claude on behlaf of jodavis <ElwoodMoves@hotmail.com>
Co-authored-by: Claude Sonnet 5 <noreply@anthropic.com>
… spec pipeline (#71)

* ADR-320: spec-discussion guards Method markers from being treated as review comments

* ADR-320: spec-first-draft review-pass message teaches Method marker callout

* ADR-320: spec-first-draft header template uses Design doc line instead of Will become

* ADR-320: final-sign-off passively mentions /harvest availability when spec has Method markers

* ADR-320: retrofit existing spec headers to the Design doc form

* ADR-320: address PR review comments

- Revert final-sign-off's passive /harvest mention (commit 3fce0a6) — not
  worth the added complexity for a reminder comment, per review feedback.
- spec-first-draft: name spec-task-breakdown as the explicit owner of the
  "final documentation task" the Design doc header line refers to, and
  state the invariant that every task breakdown must append it.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01RBnDBvr47h4fVqNte6feE2

---------

Co-authored-by: Claude on behlaf of jodavis <ElwoodMoves@hotmail.com>
Co-authored-by: Claude Sonnet 5 <noreply@anthropic.com>
…ec (#76)

* Add write-design-spec PM design phase, rename spec pipeline to dev-spec

Splits the old single-pass spec skill into two phases: write-design-spec
produces a PM-style design (problem, solution, observable behavior, broken
into independently cuttable deliverables), while write-dev-spec (renamed
from spec) covers the implementation-level "how" that follows it. The
dev-spec-* rename disambiguates the existing pipeline now that "design"
and "spec" are both real, distinct document types.

- New write-design-spec command and its skills: gather-brief-sources,
  design-first-draft, design-deliverable-breakdown, design-work-items,
  researcher-design-review.
- Renamed spec-* skills to dev-spec-* (dev-spec-first-draft,
  dev-spec-task-breakdown, dev-spec-task-work-items,
  read-dev-spec-section, researcher-dev-spec-review) and merged the
  document-review skills (spec-discussion, spec-readiness-review) into
  shared, document-type-agnostic document-discussion and
  document-readiness-review skills.
- documentation.specs now covers the new PM design doc
  (_design_<slug>.md); the old dev spec category moves to the new
  documentation.dev-specs key (_spec_<slug>.md unchanged on disk).
- add-to-spec stays a single command that branches internally by
  document type rather than splitting in two.
- Updated all ripple references across README, researcher agent,
  playbook-contract, harvest-playbook, and the playbook-harvesting
  fixture/dry-run harness to the renamed skill names.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>

* Address PR #76 review feedback on write-design-spec skill

- Move specs location to docs/ (design docs span the whole project)
- Push stop-condition wording to gather-brief-sources: warn on an
  unresolved specifically-referenced source instead of treating "no
  tracked work item" as a stop condition in write-design-spec /
  write-dev-spec
- Clarify independently-cuttable sizing rule: siblings may depend on
  one shipping before them, but never only lay groundwork for a later
  one; spell out the two failure modes this guards against
- Move "identify related existing work items" to a new step 2 in
  write-design-spec, before the first draft, and have
  design-deliverable-breakdown reconcile against that list instead of
  asking fresh per-deliverable

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>

---------

Co-authored-by: Claude on behlaf of jodavis <ElwoodMoves@hotmail.com>
Co-authored-by: Claude Sonnet 5 <noreply@anthropic.com>
* Add /dev-team:config skill and fix stale developer-standards entry

Adds a config command and update-project-configuration skill for
initializing or changing .dev-team/config.yaml settings at the user,
project, or per-user-local tier. Also removes this project's committed
config.yaml entry for CLAUDE.md, which doesn't exist in this repo.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>

* Rename /dev-team:config command to /dev-team:configure, add C# test detection

Address PR review comments: rename the command file (and thus its slash
name) from config.md to configure.md per reviewer request, and extend the
testing-detection find command in update-project-configuration/SKILL.md to
also match C# xUnit/NUnit/MSTest conventions (*Tests.cs, *Test.cs).

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>

---------

Co-authored-by: Claude on behlaf of jodavis <ElwoodMoves@hotmail.com>
Co-authored-by: Claude Sonnet 5 <noreply@anthropic.com>
…96-concurrency

# Conflicts:
#	plugins/dev-team/skills/ensure-working-branch/SKILL.md
#	plugins/dev-team/skills/workflow-orchestrate/scripts/dev_team.py
@jodavis
jodavis force-pushed the merge/main-into-ADR-296-concurrency branch from 800f5a0 to 4597613 Compare July 22, 2026 00:31
@github-actions

Copy link
Copy Markdown

build-and-test: Python test results

Status: ✅ Passed

Test log

@jodavis
jodavis merged commit e917d4e into feature/ADR-296-concurrency Jul 22, 2026
3 checks passed
@jodavis
jodavis deleted the merge/main-into-ADR-296-concurrency branch July 22, 2026 00:38
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants