Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -307,6 +307,10 @@ Before writing code, form a concrete plan:
changed behavior needs updated tests.
7. **Assess risk** — will this change affect other callers? Does it change a
public interface? Could it break downstream consumers?
8. **Verify API contracts per code path** — if the fix removes or empties
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Guidance scope narrower than the bug class it targets

The trigger "removes or empties" covers the PR #657 incident but the broader class of API contract violations also includes changing a parameter value or adding a default that is invalid for some code paths.

The code-review skill's equivalent guidance (line 65) already uses the broader "modifies parameters" wording. Consider aligning:

Suggested change
8. **Verify API contracts per code path** — if the fix removes or empties
8. **Verify API contracts per code path** — if the fix removes, empties,
or changes a parameter sent to an external API, check the API documentation
and trace each call site to verify the parameter is valid for that operation.
Different operations (e.g., approve vs request-changes) often have different
required fields.

Flagged by 5/10 review agents

a parameter sent to an external API, check the API documentation or
test each code path that uses the function. Different operations
(e.g., approve vs request-changes) often have different required fields.
Comment on lines +310 to +313
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Merge conflict — duplicate step 8 numbering

The PR branch predates commit 4f39be1 on main which added step 8 ("Search for old literal values when changing constants or defaults") at this same position. The PR is currently in a CONFLICTING merge state with two items numbered 8.

A rebase onto current main is needed, and this item should be renumbered to step 9. The ordering (risk assessment → literal value search → API contract verification) reads naturally.

Flagged by 4/10 review agents


When requirements are ambiguous, distinguish between "vague but actionable"
(you can make a reasonable conservative interpretation) and "genuinely
Expand Down
8 changes: 8 additions & 0 deletions internal/scaffold/scaffold_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -369,6 +369,14 @@ func TestCodeAgentContent(t *testing.T) {
assert.Contains(t, s, "code-implementation")
}

func TestCodeImplementationSkillAPIContractGuidance(t *testing.T) {
content, err := FullsendRepoFile("skills/code-implementation/SKILL.md")
require.NoError(t, err)
s := string(content)
assert.Contains(t, s, "Verify API contracts per code path")
assert.Contains(t, s, "removes or empties")
}

func TestCodeWorkflowContent(t *testing.T) {
content, err := FullsendRepoFile(".github/workflows/code.yml")
require.NoError(t, err)
Expand Down
Loading