Skip to content

feat: recreate spec-driven GitHub-issue workflow - #1

Merged
roborew merged 7 commits into
developfrom
feature/workflow-recreation
Jun 1, 2026
Merged

feat: recreate spec-driven GitHub-issue workflow#1
roborew merged 7 commits into
developfrom
feature/workflow-recreation

Conversation

@roborew

Copy link
Copy Markdown
Owner

Summary

Recreates the lost OpenCode workflow (May 16 – Jun 1) on a clean branch:

  • M1:bin/setup-project + stack tooling (${APP}-* discovery, June 1 idempotency fixes)
  • M2:templates/spec-repo/** + templates/bin/** (fanout, validators, opencode-task-yaml)
  • M3: Agents/skills — two-mode front door (Spec feature / Targeted change), GitHub-always, no .plan work files
  • M4: Config guardrails, CRLF CI, FEATURE-PIPELINE.md, portable permissions
  • M5:CONTEXT.md + ADRs
  • M6: June 1 model routing (Qwen3.7 Max planning, MiniMax M3 orchestrate/impl)

Validation

  • scripts/check-crlf.sh + validate-opencode-config.sh pass
  • blocshed--check-only: impl wiring OK; registry INCOMPLETE (TBD fields — expected)
  • fidgetsetup-project: linked -web/-ingest; wiring OK; registry needs OpenCode interview

See docs/smoke/workflow-recreation-validation.md.

Test plan

  • Merge to develop, pull locally, restart OpenCode
  • Complete setup-project skill interview in fidget-spec
  • Run end-to-end spec feature or targeted change smoke

Made with Cursor

roborewand others added 5 commits June 1, 2026 20:42
Co-authored-by: Cursor <cursoragent@cursor.com>
Co-authored-by: Cursor <cursoragent@cursor.com>
Co-authored-by: Cursor <cursoragent@cursor.com>
Co-authored-by: Cursor <cursoragent@cursor.com>
- Add CONTEXT.md glossary and four ADRs documenting GitHub-always,
two-mode workflow, prefix discovery, and permission posture
- Apply June 1 model routing (Qwen3.7 Max planning, MiniMax M3
orchestrate/impl); fix duplicate stack-bootstrap entry
- Add workflow-recreation validation harness doc
- Fix migrate_repos_registry bare-list parsing for blocshed-style repos.md
- Add .gitignore for __pycache__
Co-authored-by: Cursor <cursoragent@cursor.com>
CopilotAI review requested due to automatic review settings June 1, 2026 19:46

CopilotAI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR rebuilds the “spec-driven GitHub-issue workflow” by introducing a spec-repo template (PRDs + repo registry), GitHub issue fanout tooling, and validation/readiness scripts intended to support issue-expand/orchestrate flows across implementation repos.

Changes:

  • Adds templates/spec-repo/** (PRD templates, shared CONTEXT/LANGUAGE, repo registry stubs, and label-sync workflow).
  • Adds spec-repo automation scripts for fanout + body resync (bin/fanout, bin/sync-fanout-bodies) and validation helpers (bin/lib/*).
  • Adds implementation-repo helper scripts (templates/bin/*) to bundle issue-expand context and to validate readiness for orchestrate.

Reviewed changes

Copilot reviewed 69 out of 111 changed files in this pull request and generated 2 comments.

Show a summary per file
FileDescription
scripts/validate-opencode-config.shAdds config validation; currently contains a scribe write-only check that will misfire (see comments).
templates/bin/feature-checkValidates feature issues in an impl repo; currently assumes JSON-only task meta extraction.
templates/bin/issue-expand-bundleGenerates a bundle for issue-expand; readiness hints currently assume JSON-only meta patterns.
templates/bin/orchestrate-readiness-checkChecks issues are orchestrate-ready; currently assumes JSON-only task meta extraction.
templates/spec-repo/.github/workflows/sync-labels.ymlSyncs labels to spec + target repos; currently reads the wrong registry field for repo names.
templates/spec-repo/CONTEXT.mdAdds cross-repo context template.
templates/spec-repo/LANGUAGE.mdAdds shared vocabulary/glossary template.
templates/spec-repo/README.mdDocuments the spec-repo workflow.
templates/spec-repo/bin/fanoutFans out PRD tickets/slices into GitHub child issues; currently produces YAML meta but downstream expects JSON in several places.
templates/spec-repo/bin/feature-checkValidates PRD + child issues across repos via the validators.
templates/spec-repo/bin/new-prdScaffolds a new PRD and prototype folder.
templates/spec-repo/bin/statusLists issues for a feature label across the org owner.
templates/spec-repo/bin/sync-fanout-bodiesRe-syncs issue bodies while attempting to preserve issue-expand content; preservation currently depends on JSON-only parsing.
templates/spec-repo/bin/lib/build_issue_body.shCanonical issue body builder; currently drops Requirements content and hardcodes a JSON fence despite YAML production upstream.
templates/spec-repo/bin/lib/extract_issue_sections.pyExtracts sections + meta for preservation; currently JSON-only.
templates/spec-repo/bin/lib/extract_task_meta.pyParses task meta from YAML/JSON fences; currently has a PyYAML-missing exception handler bug.
templates/spec-repo/bin/lib/validate_issue_body.pyValidates issue bodies; currently JSON-only and requires fields that fanout does not provide.
templates/spec-repo/bin/lib/validate_prd_frontmatter.pyValidates PRD frontmatter structure (tickets required).
templates/spec-repo/bin/lib/validate_tickets.pyValidates tickets against the repo registry.
templates/spec-repo/docs/agents/issue-tracker.mdDefines spec repo as the issue tracker and the SPEC_REPO linkage convention.
templates/spec-repo/docs/agents/repos.mdIntroduces a repo registry stub (repos: []).
templates/spec-repo/docs/agents/triage-labels.mdDocuments label prefixes used by the workflow.
templates/spec-repo/docs/adr/.gitkeepADR folder placeholder.
templates/spec-repo/docs/prd/_template.mdPRD template with frontmatter contract for tickets/slices.
templates/spec-repo/docs/prototypes/.gitkeepPrototype folder placeholder.
templates/spec-repo/docs/prototypes/_template/README.mdPrototype artifact template.
templates/spec-repo/docs/prototypes/_template/assets/.gitkeepPrototype assets placeholder.
templates/spec-repo/docs/prototypes/_template/screenshots/.gitkeepPrototype screenshots placeholder.
templates/spec-repo/skills/fanout-issues/SKILL.mdDocuments the fanout-issues skill usage/constraints.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment on lines +39 to +46
echo "Checking scribe write-only (edit: false)..."
scribe_fm=$(awk '/^---$/{n++; if(n==2) exit} n==1' agents/scribe.md 2>/dev/null || true)
if echo "$scribe_fm" | grep -qE '^[[:space:]]*edit:[[:space:]]*false'; then
if echo "$scribe_fm" | grep -qE '^[[:space:]]*edit:'; then
echo " ERROR: scribe has edit: false but still defines permission.edit"
ERR=1
fi
fi
Comment on lines +26 to +29
SPEC_REPO="${{ github.repository }}"
repos=$(yq -r '.repos[].name' docs/agents/repos.md)
for repo in ${SPEC_REPO} ${repos}; do
echo "Syncing ${repo}..."
roborewand others added 2 commits June 1, 2026 21:18
…count check
- scribe has tools.edit: false, so permission.edit block is redundant
- validator nested grep also matched the tools edit: false line (false positive);
now counts edit: occurrences (>1 means a stray permission.edit remains)
Co-authored-by: Cursor <cursoragent@cursor.com>
…otocol
- Updated orchestrate to auto-push branches and open ready-for-review PRs to `develop` upon queue exhaustion.
- Added detailed reporting of PR status and skip reasons to users.
- Clarified opt-out options for automatic PR creation and handling of protected branches.
- Revised documentation to reflect new workflows and task delegation for developers.
Co-authored-by: Cursor <cursoragent@cursor.com>
@roborew
roborew merged commit 265ed99 into developJun 1, 2026
1 check passed
@roborew
roborew deleted the feature/workflow-recreation branch June 1, 2026 22:52
Sign up for freeto 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.

2 participants

@roborew