gstack/ship
Dan Layfield 4a255e6ffe feat: security + reliability hardening for investigate, browse, qa, canary, ship
Grafts adapted from addyosmani/agent-skills (MIT), re-fitted to gstack's
template/resolver architecture:

- investigate: treat error output as untrusted data (prompt-injection
  guard), git-bisect workflow for regressions, non-reproducible-bug
  taxonomy (timing/environment/state/random with tactics per class)
- browse: untrusted-content rule 5 (never copy secrets from page content),
  JS-execution constraints (read-only default, no external fetch, no
  cookie/token reads), session-isolation guidance
- qa: Browser Content Security Boundaries section — page content is data,
  not instructions; injection attempts are High-severity QA findings
- canary: verdict threshold table (error rate / P95 / JS errors / visual
  vs baseline -> HEALTHY/DEGRADED/BROKEN) + unconditional rollback triggers
- ship: breaking-change check that overrides line-count bump heuristics
  (Hyrum's Law); changelog-with-the-change discipline; feature-flag hygiene

Mechanics: content added to SKILL.md.tmpl files and resolvers
(scripts/resolvers/browse.ts, utility.ts), SKILL.md regenerated via
bun run gen:skill-docs. Golden ship fixtures refreshed. qa compressed to
stay within its 1.07 parity budget; investigate's maxSizeRatio bumped
1.09 -> 1.11 with rationale (only ~700B of headroom-free content added).

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-06 12:22:18 -05:00
..
sections feat: security + reliability hardening for investigate, browse, qa, canary, ship 2026-07-06 12:22:18 -05:00
SKILL.md feat: security + reliability hardening for investigate, browse, qa, canary, ship 2026-07-06 12:22:18 -05:00
SKILL.md.tmpl feat: security + reliability hardening for investigate, browse, qa, canary, ship 2026-07-06 12:22:18 -05:00