Skip to content

Use AI to help formalise intent after rapid local prototyping - #4

Merged
twaugh merged 1 commit into
fullsend-ai:mainfrom
twaugh:vibe-to-spec
Mar 10, 2026
Merged

Use AI to help formalise intent after rapid local prototyping#4
twaugh merged 1 commit into
fullsend-ai:mainfrom
twaugh:vibe-to-spec

Conversation

@twaugh

@twaugh twaugh commented Mar 10, 2026

Copy link
Copy Markdown
Contributor

No description provided.

@twaugh twaugh changed the title Add a suggestion to use AI to help formalise intent after rapid local prototyping Use AI to help formalise intent after rapid local prototyping Mar 10, 2026

@ralphbean ralphbean left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

I like it, thank you!

At some point, I'd like to evaluate alternatives to spec-kit. I know others exist. Are any of them more promising than spec-kit in some way?

(I don't have special reason to disfavor spec-kit. This is just a good time to be flexible if we can be.)

@twaugh

twaugh commented Mar 10, 2026

Copy link
Copy Markdown
Contributor Author

At some point, I'd like to evaluate alternatives to spec-kit. I know others exist. Are any of them more promising than spec-kit in some way?

Agreed. I made sure to word this as "spec-kit"-like, as I don't want to arbitrarily bind to that project.

@twaugh
twaugh merged commit 4c1dd35 into fullsend-ai:main Mar 10, 2026
waynesun09 added a commit that referenced this pull request Apr 12, 2026
Seven specialized agents for working on the fullsend project:

- fullsend-architect (opus): architectural coherence guardian; knows all
  ADRs, five execution layers, story dependencies, repo-as-coordinator invariant
- go-developer (sonnet): CLI specialist; forge abstraction, layered config,
  multi-role GitHub App model, known gaps in PR #132
- doc-architect (sonnet): problem doc and ADR writer; design-exploration
  conventions, org-agnostic authoring rules
- stage-prompt-designer (opus): designs/reviews stage agent prompts;
  triage/implement/review/fix constraints, injection surface rules,
  known failure modes from live operation (Issues #4, #5, #010a)
- security-reviewer (opus): applies fullsend threat model; prompt injection,
  ADR 0017 credential isolation, sandbox integrity, workflow file protection
- workflow-engineer (sonnet): GitHub Actions and dispatch layer; label state
  machine, slash commands, concurrency groups, fixes for Issues #1 #003b
  #4 #5 #7 #9 #010a
- e2e-integrator (opus): full flow tracing; integration gap analysis, demo
  readiness checklist, sprint prioritization across stories

Also adds .claude/AGENTS.md with usage guide and team composition patterns.
ggallen referenced this pull request in ggallen/fullsend May 6, 2026
…on decisions

Resolves remaining low-priority review comments:

**Code Comments (Low Issue #3):**
- Document intentional asymmetry between enable --all and disable --all
- enable --all: discovers current org repos via ListOrgRepos
- disable --all: iterates cfg.Repos (handles deleted repos needing cleanup)

**Concurrency Safety (Low Issue #4):**
- Document read-modify-write pattern in loadRepoConfig
- Acknowledge lack of optimistic concurrency control
- Explain why this is acceptable for admin CLI usage
- Note that production systems would use conditional writes (ETags)

**Remaining Action Items:**
- PR description needs manual update on GitHub to replace "mutual
  exclusivity enforcement" with "when --all is set, positional
  repository arguments are silently ignored"

All tests pass (unrelated flake in run_test.go due to network timeout).

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
ggallen referenced this pull request in ggallen/fullsend May 7, 2026
…on decisions

Resolves remaining low-priority review comments:

**Code Comments (Low Issue #3):**
- Document intentional asymmetry between enable --all and disable --all
- enable --all: discovers current org repos via ListOrgRepos
- disable --all: iterates cfg.Repos (handles deleted repos needing cleanup)

**Concurrency Safety (Low Issue #4):**
- Document read-modify-write pattern in loadRepoConfig
- Acknowledge lack of optimistic concurrency control
- Explain why this is acceptable for admin CLI usage
- Note that production systems would use conditional writes (ETags)

**Remaining Action Items:**
- PR description needs manual update on GitHub to replace "mutual
  exclusivity enforcement" with "when --all is set, positional
  repository arguments are silently ignored"

All tests pass (unrelated flake in run_test.go due to network timeout).

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
ggallen referenced this pull request in ggallen/fullsend May 7, 2026
…on decisions

Resolves remaining low-priority review comments:

**Code Comments (Low Issue #3):**
- Document intentional asymmetry between enable --all and disable --all
- enable --all: discovers current org repos via ListOrgRepos
- disable --all: iterates cfg.Repos (handles deleted repos needing cleanup)

**Concurrency Safety (Low Issue #4):**
- Document read-modify-write pattern in loadRepoConfig
- Acknowledge lack of optimistic concurrency control
- Explain why this is acceptable for admin CLI usage
- Note that production systems would use conditional writes (ETags)

**Remaining Action Items:**
- PR description needs manual update on GitHub to replace "mutual
  exclusivity enforcement" with "when --all is set, positional
  repository arguments are silently ignored"

All tests pass (unrelated flake in run_test.go due to network timeout).

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
ascerra added a commit to ascerra/fullsend that referenced this pull request May 14, 2026
When a human submits a PR and the review agent requests changes, the fix
agent no longer auto-triggers. This is now the default behavior for
human-authored PRs. Bot-authored PRs (from the code agent) continue to
auto-trigger fixes as before.

Humans can opt in to the review-fix loop by adding the `fullsend-fix`
label to their PR. The existing `/fix` command for manual invocation is
unaffected.

Changes across all dispatch paths (org-level shim, reusable dispatcher,
per-repo scaffold):
- Gate fix dispatch on PR author ending in [bot] OR presence of
  `fullsend-fix` label
- Add defense-in-depth check in reusable-fix.yml that verifies PR
  author and label before running the fix agent

E2E tested in ascerra-fullsend-lab org (human-pr-fix-test repo):

1. Human PR, no label (PR fullsend-ai#1) — fix agent SKIPPED ✅
   - Review: https://github.com/ascerra-fullsend-lab/.fullsend/actions/runs/25836235094
   - Shim skipped dispatch-fix-bot: https://github.com/ascerra-fullsend-lab/human-pr-fix-test/actions/runs/25836370170

2. Human PR, fullsend-fix label (PR fullsend-ai#2) — fix agent auto-triggered ✅
   - Review: https://github.com/ascerra-fullsend-lab/.fullsend/actions/runs/25837485822
   - Shim dispatched fix: https://github.com/ascerra-fullsend-lab/human-pr-fix-test/actions/runs/25837620440
   - Fix agent succeeded: https://github.com/ascerra-fullsend-lab/.fullsend/actions/runs/25837623950

3. Bot PR, no label (PR fullsend-ai#4, author: ascerra-fullsend-lab-coder[bot]) — fix agent auto-triggered ✅
   - Code agent created PR: https://github.com/ascerra-fullsend-lab/.fullsend/actions/runs/25838129538
   - Review requested changes: https://github.com/ascerra-fullsend-lab/.fullsend/actions/runs/25838396492
   - Shim dispatched fix (no label needed): https://github.com/ascerra-fullsend-lab/human-pr-fix-test/actions/runs/25838580565
   - Fix agent succeeded: https://github.com/ascerra-fullsend-lab/.fullsend/actions/runs/25838584099

Co-authored-by: Cursor <cursoragent@cursor.com>
ascerra added a commit to ascerra/fullsend that referenced this pull request May 16, 2026
When a human submits a PR and the review agent requests changes, the fix
agent no longer auto-triggers. This is now the default behavior for
human-authored PRs. Bot-authored PRs (from the code agent) continue to
auto-trigger fixes as before.

Humans can opt in to the review-fix loop by adding the `fullsend-fix`
label to their PR. The existing `/fs-fix` command for manual invocation
is unaffected — it intentionally bypasses this gate so authorized users
can always trigger fix regardless of labels.

Changes across dispatch paths (reusable dispatcher, per-repo scaffold):
- Gate fix dispatch on PR author ending in [bot] OR presence of
  `fullsend-fix` label
- Add defense-in-depth check in reusable-fix.yml that verifies PR
  author and label before running the fix agent
- Add inline comment clarifying /fs-fix bypass (per review feedback)

Note: fullsend.yaml shim no longer needs this gate — upstream refactored
it to delegate all routing to the reusable dispatch workflow.

E2E tested in ascerra-fullsend-lab org (human-pr-fix-test repo):

1. Human PR, no label (PR fullsend-ai#1) — fix agent SKIPPED
   - Review: https://github.com/ascerra-fullsend-lab/.fullsend/actions/runs/25836235094
   - Shim skipped dispatch-fix-bot: https://github.com/ascerra-fullsend-lab/human-pr-fix-test/actions/runs/25836370170

2. Human PR, fullsend-fix label (PR fullsend-ai#2) — fix agent auto-triggered
   - Review: https://github.com/ascerra-fullsend-lab/.fullsend/actions/runs/25837485822
   - Shim dispatched fix: https://github.com/ascerra-fullsend-lab/human-pr-fix-test/actions/runs/25837620440
   - Fix agent succeeded: https://github.com/ascerra-fullsend-lab/.fullsend/actions/runs/25837623950

3. Bot PR, no label (PR fullsend-ai#4, author: ascerra-fullsend-lab-coder[bot]) — fix agent auto-triggered
   - Code agent created PR: https://github.com/ascerra-fullsend-lab/.fullsend/actions/runs/25838129538
   - Review requested changes: https://github.com/ascerra-fullsend-lab/.fullsend/actions/runs/25838396492
   - Shim dispatched fix (no label needed): https://github.com/ascerra-fullsend-lab/human-pr-fix-test/actions/runs/25838580565
   - Fix agent succeeded: https://github.com/ascerra-fullsend-lab/.fullsend/actions/runs/25838584099

Co-authored-by: Cursor <cursoragent@cursor.com>
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.

2 participants