docs(skills): require final app builds#11
Conversation
f736196 to
8e52107
Compare
There was a problem hiding this comment.
Pull request overview
This PR adds final app build requirements to the Purchasely skills and updates the snippet guard to enforce those instructions for the current skill set.
Changes:
- Added
## Completion Build Gateguidance to integrate, review, and debug skills. - Updated integration verification steps to require build/test reruns before success.
- Added changelog coverage and fixed the validate workflow’s renamed integrate skill path.
Reviewed changes
Copilot reviewed 6 out of 6 changed files in this pull request and generated no comments.
Show a summary per file
| File | Description |
|---|---|
scripts/guard-known-bad-snippets.mjs |
Enforces presence and wording of the Completion Build Gate in Purchasely skills. |
purchasely/skills/purchasely-review/SKILL.md |
Adds final build gate instructions for review completion and auto-fix flows. |
purchasely/skills/purchasely-integrate/SKILL.md |
Adds build gate instructions and updates final verification steps. |
purchasely/skills/purchasely-debug/SKILL.md |
Adds build gate instructions for debug fixes and diagnosis-only tasks. |
CHANGELOG.md |
Documents the new final app build requirement under Unreleased. |
.github/workflows/validate.yml |
Updates the hard-coded integrate skill path to the renamed directory. |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
|
@greptileai review |
|
| Filename | Overview |
|---|---|
| scripts/guard-known-bad-snippets.mjs | Adds a pre-walk loop that checks each skill file for the build-gate section; missing error handling around readFileSync could surface as an uncaught exception instead of a structured failure message. |
| .github/workflows/validate.yml | Corrects a stale path in the 'Check plugin folder links' step from purchasely/skills/integrate/SKILL.md to purchasely/skills/purchasely-integrate/SKILL.md. |
| purchasely/skills/purchasely-debug/SKILL.md | Adds the 'Completion Build Gate' section between the PLYError step and Guidelines; wording is consistent with the other skills and satisfies the guard regex. |
| purchasely/skills/purchasely-integrate/SKILL.md | Adds the 'Completion Build Gate' section and renumbers the post-integration verification checklist to make the gate item #1; platform command hints are a useful addition. |
| purchasely/skills/purchasely-review/SKILL.md | Appends the 'Completion Build Gate' section at the end of the file; correctly scopes the fix obligation to Purchasely-related failures only. |
| CHANGELOG.md | Adds a 'Changed' entry under [Unreleased] describing the build gate requirement; format is consistent with existing entries. |
Flowchart
%%{init: {'theme': 'neutral'}}%%
flowchart TD
A[Skill invoked] --> B[Perform task]
B --> C{Code changed?}
C -- Yes --> D[Run Completion Build Gate]
C -- No --> E{Build available?}
E -- Yes --> D
E -- No --> F[Report diagnosis-only outcome]
D --> G{Build succeeds?}
G -- No --> H[Fix error and rerun]
H --> G
G -- Yes --> I[Include commands and outcomes in response]
I --> J[Report success]
subgraph guard [guard-known-bad-snippets.mjs]
K[Read each SKILL.md] --> L{Contains Completion Build Gate?}
L -- No --> M[failures.push]
L -- Yes --> N{Matches fix-and-rerun regex?}
N -- No --> O[failures.push]
N -- Yes --> P[Pass]
end
Prompt To Fix All With AI
Fix the following 1 code review issue. Work through them one at a time, proposing concise fixes.
---
### Issue 1 of 1
scripts/guard-known-bad-snippets.mjs:36-37
`fs.readFileSync` is called without error handling in the new loop. If any file listed in `requiredBuildGateSkillFiles` is missing or renamed, the script throws an uncaught `ENOENT` exception and dumps a Node.js stack trace instead of pushing a structured entry into `failures[]` and exiting via the normal `process.exit(1)` path. This makes CI output harder to parse and breaks the script's consistent failure-reporting contract.
```suggestion
for (const rel of requiredBuildGateSkillFiles) {
let content;
try {
content = fs.readFileSync(path.join(root, rel), 'utf8');
} catch {
failures.push(`${rel} could not be read (file missing or unreadable)`);
continue;
}
```
Reviews (1): Last reviewed commit: "docs(skills): require final app builds" | Re-trigger Greptile
8e52107 to
1dfbd97
Compare
Summary
Test Plan
Notes