feat(skills): replace curated verification-before-completion with native original#107
Conversation
…ive original
Replace the upstream obra/superpowers verification-before-completion skill
with a groundwork-native original. The skill is a universal gate discipline
(like ground) preventing false completion claims, not a pipeline-specific
integration point. Evidence standards belong in pipeline contracts.
Preserves core discipline from upstream: Iron Law, gate function
(identify/run/read/verify/claim), common-failures table, anti-rationalization
patterns, red flags, and key verification patterns.
Adds: YAML frontmatter with origin metadata, Lifecycle Role section
establishing pipeline position, Corruption Modes section (performative
verification, partial verification, stale evidence, claim-first), and
cross-references to test-first/documentation/propose.
Removes: superpowers-specific vocabulary ("your human partner", "if you lie
you'll be replaced").
Refs #94
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
When codex exec review emits no final agent message, --output-last-message writes an empty file and the workflow silently skips inline comments. Parse codex-review.jsonl for the last agent_message event as a fallback and fail the step if no final message exists in either output. Refs #101
When Codex output cannot be parsed into line-addressable findings, the workflow previously returned without posting any PR comment. Add an issue-comment fallback that upserts the overall review text (with truncation safety) so every run leaves visible review output. Refs #101
Post the overall Codex review comment on every run, then parse and post line-addressable findings as an additional layer. This guarantees visible review output even when inline parsing succeeds or fails. Refs #101
|
I did not identify any introduced defects that would break existing behavior, tests, or core workflow correctness. The changes appear internally consistent across manifests, docs, tests, and CI wiring. Raw outputs: codex-review.md, codex-review.jsonl |
Use REVIEW_BOT_TOKEN when present for github-script API calls, with fallback to the default github.token. This allows customizing the comment author without changing behavior when no custom token is configured. Refs #101
Remove hardcoded github-actions[bot] checks so overall and summary comments are updated/deleted by marker regardless of which token identity posts them. Refs #101
| for (const comment of existingComments) { | ||
| if (comment.user?.login === "github-actions[bot]" && comment.body?.includes(MARKER)) { | ||
| if (comment.body?.includes(MARKER)) { | ||
| await github.rest.pulls.deleteReviewComment({ |
There was a problem hiding this comment.
[P2] Restrict inline comment deletion to bot-authored comments
This loop now deletes any review comment whose body contains <!-- codex-inline-review -->, regardless of author. A human reviewer can accidentally or intentionally include that marker (for example by quoting prior bot output), and their comment will be deleted on the next run. The previous author check prevented this data loss, so deletion should stay scoped to the bot account(s) used by this workflow.
| const existingOverall = issueComments.find( | ||
| (comment) => | ||
| typeof comment.body === "string" && | ||
| comment.body.includes(OVERALL_MARKER) | ||
| ); |
There was a problem hiding this comment.
[P2] Scope overall review upsert to bot-authored issue comments
The overall-review upsert selects the first issue comment containing <!-- codex-overall-review --> without checking author, so it can overwrite someone else’s PR comment if they include that marker text. This is a regression from safer ownership checks and can silently clobber user-authored discussion; matching should include the expected bot identity before updating.
Resolve comment ownership via REVIEW_COMMENT_AUTHOR_LOGIN or authenticated token login, then use that login for comment upsert/cleanup. This prevents clobbering non-bot comments while still supporting custom comment tokens. Refs #101
This reverts commit 2b2990d.
This reverts commit 11759f2.
This reverts commit 7b4a753.
Drop the static 'Codex final review output.' line so the overall PR comment starts directly with review content.
Summary
verification-before-completionskill (obra/superpowers) with a groundwork-native originalground) preventing false completion claims, not a pipeline-specific integration pointChanges
Created:
skills/verification-before-completion/SKILL.md— native skill preserving Iron Law, gate function, common-failures table, anti-rationalization patterns, red flags. Adds Lifecycle Role, Corruption Modes, cross-references. Removes superpowers-specific vocabulary.skills/verification-before-completion/LICENSE-UPSTREAM— MIT attribution to obra/superpowersUpdated:
agents.toml— dependency changed fromobra/superpowerstopentaxis93/groundworkskills/skills.toml— updated provider, removedrevpinCHANGELOG.md— added Changed entry, corrected curated skill countARCHITECTURE.md— updated upstream skills list (TDD, verification, code review no longer upstream)docs/architecture/pipeline-contract.md— "Curated middle skills" → "Middle skills"crates/groundwork-cli/src/main.rs— addedverification-before-completionto shipped skills test expectationIssue(s)
Closes #94
Test plan
managed_specs_follow_shipped_skill_order_and_flat_paths)verification-before-completionverified intactsuperpowers:verificationreferences in active files🤖 Generated with Claude Code