Skip to content

feat(skills): add stash-deployment, install it for every integration - #826

Merged
coderdan merged 3 commits into
mainfrom
docs/stash-deployment-skill
Jul 30, 2026
Merged

feat(skills): add stash-deployment, install it for every integration#826
coderdan merged 3 commits into
mainfrom
docs/stash-deployment-skill

Conversation

@coderdan

@coderdan coderdan commented Jul 29, 2026

Copy link
Copy Markdown
Contributor

Why

The rollout/cutover lifecycle is documented in stash-encryption and stash-cli as a command sequence, with the deploy boundaries described in passing. The boundaries are the hard part.

An agent that reads the lifecycle as one unit of work — twin column, dual-write, backfill, read switch, drop — produces a plan that loses data. Ciphertext can only be written by the application, client-side, so no UPDATE and no migration can encrypt an existing row; the plaintext column has to stay authoritative until every row has a ciphertext twin and the deployed code reads it. Nothing in the tooling makes that shape obvious from the command list alone.

This came out of a real staged rollout onto Prisma Compute, where every interesting failure was a deployment failure rather than an API one.

What

New skills/stash-deployment/SKILL.md:

  • The three-deploy ladder — rollout (nullable twin + dual-write) → backfill → read cutover → drop — with its two out-of-band steps and two human gates, and what each gate is actually verifying.
  • A failure table — for each way of collapsing the ladder, the data that is lost.
  • Rollback per stage, making explicit that only the final drop is irreversible.
  • CS_* as a build-time input wherever the encryption client is constructed at module load (local builds mask this via the device profile), plus the keyset rule for backfills: ciphertext written under credentials the deployed app does not resolve to fails only at read time.
  • A Prisma Postgres / Prisma Compute section — EQL installing through the Prisma Next migration graph (prisma-next migrate), one merge deploying one stage, the additive-only deploy policy that makes the plaintext drop fail the build and the apply-before-merge sequence that avoids it, preview-branch databases masking destructive migrations and inviting a wrong-database apply, and running one-off jobs against a hosted database.

Scoped to EQL v3 throughout, with the v2 tail (encrypt cutover rename swap, <col>_plaintext) pointed back at stash-encryption.

Registration

stash-deployment joins stash-encryption, stash-indexing and stash-cli in the set every integration installs — deployment safety is cross-cutting in the same way indexing is (#753).

  • SKILL_MAP + BASE_SKILLS in packages/cli/.../install-skills.ts, and the wizard's copy
  • SKILL_PURPOSES blurb in setup-prompt.ts
  • AGENTS.md skill list and the "if you change… check…" table
  • AGENTS-doctrine.md common-skills line
  • Tests pinning those arrays updated (they assert exact ordering)

Verification

  • pnpm --filter stash exec vitest run — 857 passed
  • pnpm --filter @cipherstash/wizard exec vitest run — 290 passed
  • Every command and flag in the skill checked against packages/cli/src/cli/registry.ts on this branch; the Prisma commands against prisma-next 0.14.0 and @prisma/cli 3.0.0-beta.29

Changeset: stash minor, @cipherstash/wizard patch.

Notes for review

  • Based on remove-v2 rather than main, since it describes the post-removal v3-only world.
  • The Prisma Compute observations are stamped "Public Beta, July 2026" — that platform moves fast and some of it (the database list production/preview ambiguity in particular) is feedback we have open with Prisma.
  • The Prisma Next plaintext-drop guidance describes hand-authoring the coverage gate. If the extension pack later ships a factory for it, that section should shrink to a command.

Summary by CodeRabbit

  • New Features
    • Added the stash-deployment skill with guidance for safely rolling out encryption changes through staged deployments, verification gates, backfills, rollback procedures, and credential handling.
    • Deployment guidance is now included by default for supported integrations and generic setups.
    • Setup output now describes the newly installed deployment skill.
  • Documentation
    • Updated project guidance to reference deployment sequencing, platform-specific workflows, database safeguards, and operational troubleshooting.

Summary by CodeRabbit

  • New Features

    • Added the stash-deployment skill to supported integrations and default installations.
    • Added guidance for safely rolling out encryption across four staged deployments, including verification gates, backfills, keyset requirements, and rollback boundaries.
    • Added platform-specific deployment guidance for Prisma Postgres and Prisma Compute.
  • Documentation

    • Updated setup documentation and skill listings to include deployment sequencing and lifecycle guidance.
    • Clarified encryption command behavior and production backfill requirements.
  • Tests

    • Updated skill installation coverage for the new deployment skill.

@coderdan
coderdan requested a review from a team as a code owner July 29, 2026 02:00
@changeset-bot

changeset-bot Bot commented Jul 29, 2026

Copy link
Copy Markdown

🦋 Changeset detected

Latest commit: b95b3e9

The changes in this PR will be included in the next version bump.

This PR includes changesets to release 11 packages
Name Type
stash Minor
@cipherstash/wizard Minor
@cipherstash/basic-example Patch
@cipherstash/e2e Patch
@cipherstash/stack Minor
@cipherstash/stack-drizzle Minor
@cipherstash/stack-supabase Minor
@cipherstash/prisma-next Minor
@cipherstash/bench Patch
@cipherstash/test-kit Patch
@cipherstash/prisma-next-example Patch

Not sure what this means? Click here to learn what changesets are.

Click here if you're a maintainer who wants to add another changeset to this PR

@coderabbitai

coderabbitai Bot commented Jul 29, 2026

Copy link
Copy Markdown

Review Change Stack

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro Plus

Run ID: 66a1b3fa-5d2b-4d3d-ac96-15a8f3819647

📥 Commits

Reviewing files that changed from the base of the PR and between 126faef and b95b3e9.

📒 Files selected for processing (2)
  • .changeset/stash-deployment-skill.md
  • skills/stash-deployment/SKILL.md
🚧 Files skipped from review as they are similar to previous changes (1)
  • .changeset/stash-deployment-skill.md

📝 Walkthrough

Walkthrough

Adds the stash-deployment skill with a four-deploy encryption rollout ladder and Prisma deployment guidance, then registers it in repository documentation, CLI and wizard mappings, prompt descriptions, release metadata, and installation tests.

Changes

Deployment skill rollout

Layer / File(s) Summary
Encryption rollout ladder and operational guidance
skills/stash-deployment/SKILL.md, .changeset/stash-deployment-skill.md
Documents the four-deploy encryption sequence, three human gates, backfill checks, keyset consistency, rollback boundaries, credential handling, and hosted-database operations.
Prisma deployment and migration procedures
skills/stash-deployment/SKILL.md
Adds Prisma Postgres/Compute migration policies, preview database guidance, build-time credential requirements, and Deploy 4 coverage-guard instructions.
Skill metadata and installation wiring
AGENTS.md, packages/cli/..., packages/wizard/..., .changeset/...
Registers stash-deployment in documentation, prompt output, integration mappings, release metadata, and installation expectations.

Estimated code review effort: 2 (Simple) | ~10 minutes

Sequence Diagram(s)

sequenceDiagram
  participant Operator
  participant DeployedApp
  participant BackfillJob
  participant Database
  Operator->>DeployedApp: Deploy dual-write code
  DeployedApp->>Database: Write plaintext and encrypted twin
  Operator->>BackfillJob: Run coverage backfill
  BackfillJob->>Database: Populate missing ciphertext
  Operator->>DeployedApp: Deploy read cutover
  DeployedApp->>Database: Read encrypted twin
  Operator->>DeployedApp: Deploy stop-dual-write code
  Operator->>Database: Apply guarded plaintext drop
Loading

Possibly related issues

  • cipherstash/stack#837: Directly relates to shipped skill mappings and wizard installation behavior.
  • cipherstash/stack#757: Relates to stash env credentials and keyset consistency for backfills.

Possibly related PRs

Suggested reviewers: freshtonic

🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title clearly summarizes the main change: adding the stash-deployment skill and installing it across integrations.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch docs/stash-deployment-skill

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@coderdan
coderdan force-pushed the docs/stash-deployment-skill branch from ab65046 to 3d21324 Compare July 29, 2026 05:27
Base automatically changed from remove-v2 to main July 29, 2026 07:06
The rollout/cutover lifecycle was documented in `stash-encryption` and
`stash-cli` as a command sequence, with the deploy boundaries described in
passing. The boundaries are the hard part. An agent that reads the lifecycle as
one unit of work — twin column, dual-write, backfill, read switch, drop —
produces a plan that loses data, because ciphertext can only be written by the
application and the plaintext column has to stay authoritative until every row
has a ciphertext twin and the deployed code reads it.

`stash-deployment` makes the deploy shape the subject:

- The three-deploy ladder with its two out-of-band steps and two human gates,
  and what each gate is actually verifying.
- A failure table: for each way of collapsing the ladder, the data that is lost.
- Rollback per stage, making explicit that only the final drop is irreversible.
- `CS_*` as a build-time input wherever the encryption client is constructed at
  module load, and the keyset rule for backfills — ciphertext written under
  credentials the deployed app does not resolve to fails only at read time.
- A Prisma Postgres / Prisma Compute section: EQL installing through the Prisma
  Next migration graph, one merge deploying one stage, the additive-only deploy
  policy that makes the plaintext drop fail the build (and the apply-before-merge
  sequence that avoids it), preview-branch databases masking destructive
  migrations and inviting a wrong-database apply, and one-off jobs against a
  hosted database.

Scoped to EQL v3 throughout, with the v2 tail pointed back at
`stash-encryption`. Joins `stash-encryption`, `stash-indexing` and `stash-cli`
in the set every integration installs, so `SKILL_MAP` (both the CLI's and the
wizard's), `BASE_SKILLS`, `SKILL_PURPOSES`, and the doctrine's skill list gain
an entry, and the tests that pin those arrays are updated.
@coderdan
coderdan force-pushed the docs/stash-deployment-skill branch from 3d21324 to 126faef Compare July 29, 2026 07:13

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Actionable comments posted: 2

🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In `@skills/stash-deployment/SKILL.md`:
- Around line 58-70: Add a language identifier such as text to both fenced code
blocks containing the deployment rollout diagram in the deployment
documentation, including the additionally referenced block, so Markdown linting
and deterministic syntax highlighting are satisfied.
- Around line 301-305: Pin the Prisma CLI versions for all production operation
commands in this section, including database list, connection create, connection
remove, database show, and db update. Use the exact tested versions for both
`@prisma/cli` and prisma-next, or invoke the repository’s installed local binaries
consistently.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro Plus

Run ID: 07960dd6-431a-4a14-b6b4-c3e8231ae5a2

📥 Commits

Reviewing files that changed from the base of the PR and between d5a2233 and 126faef.

📒 Files selected for processing (9)
  • .changeset/stash-deployment-skill.md
  • AGENTS.md
  • packages/cli/src/commands/init/doctrine/AGENTS-doctrine.md
  • packages/cli/src/commands/init/lib/__tests__/install-skills.test.ts
  • packages/cli/src/commands/init/lib/install-skills.ts
  • packages/cli/src/commands/init/lib/setup-prompt.ts
  • packages/wizard/src/__tests__/install-skills.test.ts
  • packages/wizard/src/lib/install-skills.ts
  • skills/stash-deployment/SKILL.md

Comment thread skills/stash-deployment/SKILL.md Outdated
Comment thread skills/stash-deployment/SKILL.md
@coderdan

Copy link
Copy Markdown
Contributor Author

Review notes — skills/stash-deployment/SKILL.md

Reviewed after the rebase onto main. The wiring is clean: both SKILL_MAPs (CLI + wizard) updated in the same relative position, SKILL_PURPOSES entry present, tsup copies skills/ wholesale so bundling needs no change, and the three affected CLI unit suites pass (105 tests).

The findings below are all in the shipped skill content. Per AGENTS.md, these files land in customers' repos, so treating a wrong sentence like a wrong line of code.

1. stash encrypt cutover is described as a live EQL v2 command — it was removed

skills/stash-deployment/SKILL.md:158 — "(stash encrypt cutover is the EQL v2 rename swap; it does not apply to a v3 column and reports as much.)"

skills/stash-deployment/SKILL.md:21 — a legacy v2 column ends the ladder with "a rename swap via stash encrypt cutover, then dropping <col>_plaintext); stash-encryption has that path."

The command was removed in the v2 retirement. packages/cli/src/bin/main.ts:378 errors unconditionally:

stash encrypt cutover was the EQL v2 rename/config-promotion command and has been removed.

It is absent from the registry, and packages/cli/src/__tests__/v2-retirement.test.ts asserts that. So it fails on every project — not because the column is v3. An agent told the command still exists for v2 will run it and get an exit-1 removal error.

The stash-encryption cross-reference is also dead: skills/stash-encryption/SKILL.md:828 and :1026 state that v2 columns "cannot be installed, backfilled, cut over, or dropped through stash", and there is no <col>_plaintext path anywhere in that skill.

Suggested fix: drop both mentions; point the v2 case at the manual path stash-encryption actually documents.

2. Deploy 3 has a write-failure window on the recommended sequence

skills/stash-deployment/SKILL.md:176-178 — Deploy 3 removes the dual-write code and drops the plaintext column in one deploy.

skills/stash-deployment/SKILL.md:296-307 — the Prisma Next sequence applies the destructive migration to the production database before merging the PR, and the stage table at :342 repeats it: "(apply the migration before merging)".

During that window the still-deployed application is dual-writing to a column that no longer exists — every insert/update against that table fails with column "..." does not exist until the merge deploys.

:291 says "There is no outage: the previous deployment keeps serving and the database is untouched." That holds for the failed-db init-build case it's attached to, but not for the apply-before-merge sequence, where the database is precisely what changed underneath the running app.

Suggested fix: split Deploy 3 into a code-first stage — stop writing plaintext, deploy, then drop — or state the write-failure window explicitly and scope it (small table, low write volume, maintenance window).

3. Out-of-band index DDL contradicts stash-prisma-next, which this PR now installs alongside it

skills/stash-deployment/SKILL.md:142 — "Then create the eql_v3.* extractor indexes ... after backfill, before the read switch."

skills/stash-prisma-next/SKILL.md:157 — "Never run index DDL out-of-band." Index migrations must go through the migration history, because schema.prisma cannot express functional indexes and Prisma Next migrations execute raw SQL operations.

This skill also documents (:268ff) that every Compute deploy runs prisma-next db init, which reconciles live schema against the contract and does not consult the authored edge — so an out-of-band index is drift, and removing it is a destructive operation the additive-only policy then fails the build on.

Compounding it: the stage table at :338-342 omits the index migration entirely. Deploy 1's manual step is "run the backfill", Deploy 2's is "soak and verify" — so on the Prisma path the index has no correct home.

Suggested fix: make the index step integration-conditional, and give it a row in the stage table (its own PR between Deploy 1 and Deploy 2 for Prisma Next).

4. No wasm-inline path in the bundling prerequisite

skills/stash-deployment/SKILL.md:86 — Deploy 0's checklist offers only "Native module excluded from bundling (serverExternalPackages, esbuild external)". :358 repeats the externalization advice.

This PR installs the skill for the supabase and postgresql integrations, whose flagship deploy targets — Supabase Edge Functions, Workers, Deno — cannot load the native module at all. The answer there is @cipherstash/stack/wasm-inline, which the skill never mentions. An agent deploying an Edge Function from this checklist will chase an externalization fix for a module-load failure that externalization cannot solve.

Suggested fix: add the WASM entry as the alternative branch of the prerequisite, cross-referencing stash-edge.


Separately, this review surfaced an inaccuracy in how other skills describe keyset scoping and credential mismatch. That is pre-existing on main, spans several files, and needs its own change and its own verification against ZeroKMS — not this PR.

auxesis commented Jul 30, 2026

Copy link
Copy Markdown
Contributor

@freshtonic to review

@coderdan
coderdan requested a review from freshtonic July 30, 2026 00:01

@freshtonic freshtonic left a comment

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.

Reviewed the new skill and its install wiring in an isolated worktree, cross-checking every technical claim against the CLI registry, main.ts, and the co-installed sibling skills.

Requesting changes. The wiring is correct and complete — SKILL_MAP + BASE_SKILLS in both CLI and wizard, the SKILL_PURPOSES blurb, the doctrine + AGENTS.md skill lists, and all pinned test arrays are updated consistently; the two unit suites pass (CLI 98, wizard 3), Biome is clean, a valid changeset is present, and the skill is a self-sufficient single SKILL.md (nothing dropped by readBundledSkill inlining). But the shipped content — which lands verbatim in customer repos, where a wrong sentence is a wrong line of code — has four confirmed accuracy defects. These independently reproduce coderdan's own review notes.

Major (block merge)

  • SKILL.md:158 — presents stash encrypt cutover as a live EQL v2 command that just "does not apply to a v3 column." It was removed: packages/cli/src/bin/main.ts:378 throws CliExit(1) unconditionally on every project, and it's absent from the registry. An agent told it still exists will run it and hit an exit-1 removal error.
  • SKILL.md:21 — same dead command in the intro's v2 path ("a rename swap via stash encrypt cutover, then dropping <col>_plaintext"). The cross-reference is also dead — stash-encryption documents no <col>_plaintext/cutover path. Point the v2 case at the manual path that skill actually documents.
  • SKILL.md:172-178, 304, 342 — Deploy 3 write-failure window: the Prisma sequence applies the destructive plaintext-drop migration to production before merging the code that stops dual-writing (repeated at :342). During that window the still-deployed app dual-writes to a dropped column → every insert/update fails with column "..." does not exist. The ":291 no outage" claim only holds for the failed-db init case. Split into code-first (stop writing plaintext → deploy → drop) or scope the window explicitly.
  • SKILL.md:142 — instructs creating eql_v3.* extractor indexes out-of-band, directly contradicting skills/stash-prisma-next/SKILL.md:157 ("Never run index DDL out-of-band") — a skill this PR now co-installs with it on the prisma-next path. Make the index step integration-conditional (its own migration/PR for Prisma) and add it to the stage table at :338-342, which currently omits it.

Minor / nits

  • SKILL.md:86, 358 — the bundling prerequisite offers only native-module externalization (serverExternalPackages), no @cipherstash/stack/wasm-inline path. This skill is installed for the supabase and generic postgresql integrations whose flagship targets (Edge Functions, Workers, Deno) can't load the native module at all. Add the WASM branch and link stash-edge (co-installed but absent from this skill's Related list). Partly mitigated by stash-edge being installed alongside.
  • Nit: SKILL.md:~58-70 ASCII ladder fenced blocks lack a language identifier (use ```text) for markdown-lint.
  • Nit: SKILL.md:301-305 some Prisma production commands are unpinned while others in the skill are version-stamped; be consistent.

Verified correct: the claimed-live commands plan, impl, status, env (--name/--json), eql install, encrypt backfill (--confirm-dual-writes-deployed/--force), and encrypt drop all resolve in registry.ts — only encrypt cutover is absent. Changeset (stash minor + wizard patch) satisfies the skills-only requirement; AGENTS.md skills list/table updated; SECURITY.md needs no change.

Happy to re-review once the four content items are corrected — the structure and wiring are otherwise solid.

coderdan added 2 commits July 30, 2026 10:47
…loy 3 to close the write-failure window

- stash encrypt cutover was removed from the CLI (exits 1 on every project);
  the intro's legacy-v2 path and the Deploy 2 parenthetical now describe the
  manual v3-shaped finish (backfill -> switch reads by name -> encrypt drop)
- Restructure the ladder to four deploys: read cutover -> stop dual-writes
  (Deploy 3, code-only) -> drop plaintext (Deploy 4, migration-only), with a
  Gate 3 between them. Dropping the column while dual-writing code still
  serves traffic fails every insert/update; the Prisma apply-before-merge
  sequence is now explicitly gated on Deploy 3 being live
- Index DDL ships through the integration's migration flow, never ad-hoc —
  aligns with stash-prisma-next's 'never run index DDL out-of-band' and
  stash-indexing's placement guidance; added as a stage in the Prisma PR table
- Add the wasm-inline bundling branch for edge runtimes and stash-edge to
  Related skills; new troubleshooting rows for both failure modes
- text language tags on the ladder and PN-CLI-4020 fences; scope the
  'no outage' claim to the failed build itself
…dentity

Same-credentials was the hard-line shorthand; the real requirement is that
the backfill encrypts under the keyset the deployed app resolves — any
client granted that keyset works. Defer the model to stash-zerokms and the
credential resolution order to stash-auth (stacked above this PR), and add
both to Related skills. Also disambiguate 'keyset-paginated' (SQL sense)
from ZeroKMS keysets.
@coderdan
coderdan requested a review from freshtonic July 30, 2026 01:06

@freshtonic freshtonic left a comment

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.

Re-reviewed at head b95b3e920 (commits 9823eab9 + b95b3e92), re-checking each prior finding and watching for regressions.

All four of my prior MAJOR findings are resolved cleanly:

  • ✅ Dead stash encrypt cutover (:20-24, :182-184) — now accurately described as removed ("exits with an error on every project"), matching main.ts:378; the v2 case points at the real v3 flow (backfill → switch reads → stash encrypt drop), no dead <col>_plaintext cross-ref.
  • ✅ Deploy 3 write-failure window (:197-223, :239-249, :349-368) — now code-first: Deploy 3 stops dual-writes (relaxing NOT NULL), Deploy 4 drops the column in a separate migration-only deploy, and the "no outage" claim is correctly scoped to the failed-build case. A "Why the boundaries" row names the exact hazard.
  • ✅ Out-of-band index DDL (:163-169, :396) — now integration-conditional ("never out-of-band there — see stash-prisma-next"), consistent with stash-prisma-next:157, with its own row in the stage table.
  • ✅ WASM/edge path (:100-104, :448, :464) — @cipherstash/stack/wasm-inline branch added, troubleshooting row, and stash-edge in Related skills.

Also confirmed: the backfill-invariant rephrase in b95b3e92 is technically correct — the invariant turns on keyset/grant identity ("any client granted access to that keyset works"), not credential identity, matching ZeroKMS semantics. Every stash command/flag the edits touched still resolves against registry.ts, and all opening fenced blocks now carry language ids. Install wiring is byte-identical to the head I tested last round (98 CLI + 3 wizard unit tests passing, Biome clean).

However — one NEW blocker introduced by the rewrite:

  • [major] SKILL.md:158-159, 294, 451, 462-463 — six references to stash-zerokms and stash-auth, neither of which exists on the branch, in any SKILL_MAP, or in the bundled skills/ directory (only cli, deployment, drizzle, dynamodb, edge, encryption, indexing, postgres, prisma-next, supabase, supply-chain-security exist). The "Related skills" section lists both as real, so an agent in a customer repo following these pointers finds nothing. Fix (trivial): drop them, or redirect to skills that exist and are co-installed — CS_*/credential resolution is covered by stash-edge; auth strategies live in stash-encryption; there is no keyset/grant skill, so fold that pointer into stash-encryption or remove it.

Nit (non-blocking, defensible deferral): :353-362, :382 — Prisma CLI commands remain unpinned; the PR reasons about this (Prisma Compute beta volatility) and the section advises verifying against current CLI help.

Nice turnaround on the four majors — this is the only thing standing between here and approve.

@coderdan

Copy link
Copy Markdown
Contributor Author

However — one NEW blocker introduced by the rewrite:

  • [major] SKILL.md:158-159, 294, 451, 462-463 — six references to stash-zerokms and stash-auth, neither of which exists on the branch, in any SKILL_MAP, or in the bundled skills/ directory (only cli, deployment, drizzle, dynamodb, edge, encryption, indexing, postgres, prisma-next, supabase, supply-chain-security exist). The "Related skills" section lists both as real, so an agent in a customer repo following these pointers finds nothing. Fix (trivial): drop them, or redirect to skills that exist and are co-installed — CS_*/credential resolution is covered by stash-edge; auth strategies live in stash-encryption; there is no keyset/grant skill, so fold that pointer into stash-encryption or remove it.

There IS! They are stacked on this PR.

@coderdan
coderdan requested a review from freshtonic July 30, 2026 01:28

@freshtonic freshtonic left a comment

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.

Approving because my agent does not apparently understand stacked PRs yet and didn't notice that the blocker is in fact done.

@coderdan
coderdan merged commit c005345 into main Jul 30, 2026
10 checks passed
@coderdan
coderdan deleted the docs/stash-deployment-skill branch July 30, 2026 01:32
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.

4 participants