Skip to content

feat(agents): add plan + review agent skills - #129

Open
lmeyerov wants to merge 2 commits into
masterfrom
dev/agent-skills-review-plan
Open

lmeyerov wants to merge 2 commits into
masterfrom
dev/agent-skills-review-plan

Conversation

@lmeyerov

Copy link
Copy Markdown
Contributor

Summary

Adds repo-local agent skills under .agents/skills/, ported from graphistrygpt and adapted for graph-app-kit:

  • plan: opt-in, file-based task plans (plans/<task>/plan.md) with anti-drift rules for multi-session / multi-PR work. Validation commands now point at this repo's tooling (src/python/bin/lint.sh + pytest, docker build).
  • review: multi-wave PR review. Each dimension and file gets its own findings, every finding gets an adversarial verification pass, and the loop runs until findings converge. Adapted by:
    • removing graphistrygpt-only material (React/TS, client/backend authz parity, k8s probes, notebook/toast contracts, Storybook/Playwright)
    • adding a CI / release supply chain dimension: who can fire each trigger, permissions:, OIDC vs long-lived keys, environment gates, SHA pinning, script injection. This matters because publish.yml and dockerhubpublish.yml ship customer-facing artifacts.
    • adding a deployment templates dimension for the public CloudFormation stacks in src/bootstraps/
    • adding a Streamlit views dimension and this repo's placement and env conventions (src/envs/*.env → compose → os.environ)
  • anti_pattern_scan.sh: a new signal catalog (AP003/009/010/011 for Python, AP016 for committed env creds, AP020–AP026 for workflows, AP030 for templates). Default range is origin/master...HEAD. Also fixes two pipefail/SIGPIPE bugs in the upstream script:
    • printf | grep -q marked every line [pre-existing] on large diffs
    • rg | head -1 inside $() aborted the scan under set -e
  • AGENTS.md pointer; plans/ gitignored; CHANGELOG entry.

A stacked follow-up PR uses these skills to fix the P0 publish workflow exposure.

Verification

  • bash .agents/skills/review/tests/test_verdict_triage.sh → [ok] verdict triage tests passed
  • bash .agents/skills/review/scripts/lint_anti_pattern_suppressions.sh → [ok]
  • bash .agents/skills/review/scripts/anti_pattern_scan.sh 4b825dc642cb6eb9a060e54bf8d69288fbee4904 (whole repo as added): 80 signals. Every expected hit on the current publish.yml fires: AP020 checkout@v3/configure-aws-credentials@v1, AP023 stored AWS keys, AP024 labeled trigger with secrets, AP025 dispatch with no environment, AP026 secrets in run:. AP030 flags the documented SG ingress ports. No crash.

Docs/tooling only. No runtime or workflow behavior changes.

🤖 Generated with Claude Code

lmeyerov and others added 2 commits October 18, 2026 18:02
Port the `plan` and `review` skills from graphistrygpt into `.agents/skills/`
and retarget them to this repo:

- plan: repo validation commands (flake8 lint.sh + pytest, docker build)
- review: drop frontend/TS, authz-parity, k8s/health-probe and notebook
  specifics; add CI/release supply-chain (GitHub Actions) and CloudFormation
  deployment-template dimensions, Streamlit view checks, repo placement rules
- anti_pattern_scan.sh: new signal catalog for Python, env files, workflows
  (unpinned actions, missing permissions, script injection, long-lived AWS
  keys, risky triggers, ungated secrets) and templates; default range
  origin/master...HEAD; fix pipefail/SIGPIPE bugs that misreported added lines
  as pre-existing on large diffs and aborted the scan on `rg | head`
- AGENTS.md pointer, gitignore plans/, changelog

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…is empty

Under set -e, `[ -n "" ] && ...` as the last command of the eval'd loop
returned 1 and silently exited the scan for any range without e.g. Python
or env files. Found while running the review skill on the stacked publish PR.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.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.

1 participant