Install spectacles SDD suite (ref: v0.1.0) - #307
Conversation
📝 WalkthroughWalkthroughThis PR establishes the complete GitHub Actions-based SDD (Specification-Driven Development) pipeline infrastructure. It introduces four issue templates (bug, chore, feature, spec) to standardize issue entry, and deploys a comprehensive suite of workflows orchestrating spec submission, triage, multi-tier code generation/execution, review, validation, and monitoring phases with deterministic routing, lifecycle management, and failure recovery. ChangesSDD Pipeline Infrastructure
Estimated code review effort🎯 4 (Complex) | ⏱️ ~60 minutes Possibly related PRs
Poem
🚥 Pre-merge checks | ✅ 5✅ Passed checks (5 passed)
✏️ Tip: You can configure your own custom pre-merge checks in the settings. Comment |
There was a problem hiding this comment.
Actionable comments posted: 2
🧹 Nitpick comments (1)
.github/workflows/sdd-review.yml (1)
45-58: ⚡ Quick winGate the route job on
sdd/head refs too.Right now every
pull_request.opened/synchronizeevent still starts a runner and invokes the routing action, even though non-sdd/PRs are guaranteed to short-circuit later. Moving the head-ref check ontoroutewould match the contract described above this job and avoid unnecessary third-party action executions on unrelated PRs.♻️ Suggested change
route: + if: startsWith(github.event.pull_request.head.ref, 'sdd/') runs-on: ubuntu-latest permissions: contents: read🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the rest with a brief reason, keep changes minimal, and validate. In @.github/workflows/sdd-review.yml around lines 45 - 58, The route job currently always runs and invokes the external action (uses: norrietaylor/spectacles/...sdd-route-review@v0.1.0) even for non-sdd PRs; add a job-level conditional to short-circuit the entire route job by gating it on the PR head ref starting with "sdd/" (use the GitHub Actions expression that checks github.head_ref or startsWith(github.head_ref, 'sdd/')) so the job (route) — including the Decide step (id: decide) — never launches for non-sdd/* head refs.
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
Inline comments:
In @.github/workflows/sdd-dispatch.yml:
- Around line 293-303: The current try/catch around github.rest.issues.addLabels
swallows errors by calling core.info, which lets the run continue even if arming
the tracking issue fails; change the catch to fail the workflow instead (e.g.,
call core.setFailed with a message including err.message or rethrow the error)
so any failure in github.rest.issues.addLabels (with context and tracking
identifiers) stops the job and prevents proceeding without the sdd:dispatched
label.
In @.github/workflows/sdd-monitor.yml:
- Around line 126-138: The App token creation currently uses
actions/create-github-app-token@v3 without scoping permissions, so update the
Mint App token step (actions/create-github-app-token@v3) to include explicit
permission-* inputs to follow least privilege—add permission-actions: read,
permission-pull-requests: read, permission-issues: write and optionally
permission-contents: read if the sdd-monitor action
(norrietaylor/spectacles/.github/actions/sdd-monitor@v0.1.0) needs repo file
access; keep using the generated token (steps.app.outputs.token) for the
sdd-monitor step after adding these inputs.
---
Nitpick comments:
In @.github/workflows/sdd-review.yml:
- Around line 45-58: The route job currently always runs and invokes the
external action (uses: norrietaylor/spectacles/...sdd-route-review@v0.1.0) even
for non-sdd PRs; add a job-level conditional to short-circuit the entire route
job by gating it on the PR head ref starting with "sdd/" (use the GitHub Actions
expression that checks github.head_ref or startsWith(github.head_ref, 'sdd/'))
so the job (route) — including the Decide step (id: decide) — never launches for
non-sdd/* head refs.
🪄 Autofix (Beta)
Fix all unresolved CodeRabbit comments on this PR:
- Push a commit to this branch (recommended)
- Create a new PR with the fixes
ℹ️ Review info
⚙️ Run configuration
Configuration used: Organization UI
Review profile: CHILL
Plan: Pro
Run ID: c27af64a-325f-4abc-b62f-52f7a8701f32
📒 Files selected for processing (18)
.github/ISSUE_TEMPLATE/bug.md.github/ISSUE_TEMPLATE/chore.md.github/ISSUE_TEMPLATE/feature.md.github/ISSUE_TEMPLATE/spec.md.github/workflows/distillery-sync.yml.github/workflows/sdd-dispatch.yml.github/workflows/sdd-execute-haiku.yml.github/workflows/sdd-execute-opus.yml.github/workflows/sdd-execute-sonnet.yml.github/workflows/sdd-monitor.yml.github/workflows/sdd-pr-sanitize.yml.github/workflows/sdd-review.yml.github/workflows/sdd-spec.yml.github/workflows/sdd-triage-dedupe-tasks.yml.github/workflows/sdd-triage-promote-ready.yml.github/workflows/sdd-triage.yml.github/workflows/sdd-validate.yml.gitignore
Installs the spectacles SDD agent suite (ADR 0004) via
scripts/quick-setup.sh. Wrappers pin hosted reusable workflows at@v0.1.0. Labels, variables, and secrets were applied directly; the file artifacts in this PR honor the protected default branch. Merge to activate the workflows.Summary by CodeRabbit
New Features
Documentation
/spec,/fastpath,/approve,/dispatch)