feat: Cascade skill set for the IIS+SQL Server flavor#41
Merged
Conversation
Adds six more .windsurf/skills/ to guide a weaker Windsurf agent working an IIS-flavor fork, each grounded in this repo's real conventions and critical rules: - mssql-function-authoring — T-SQL data layer: GO batches, uniqueidentifier/ datetimeoffset, EXEC procs returning a `value` column, inline TVFs, positional @p0 binding, functions-only, snapshot-in-the-same-commit, and validating the SQL<->zod seam with the read test. - verify-before-done — the local check sequence (typecheck/lint/build, DB tests against a throwaway SQL Server) plus the manual browser walk; forbids claiming "done" without evidence. - error-logging-flow — 5xx persist to the error log and surface on /errors; next(err) over console.error; how the frontend auto-reports via apiFetch. - frontend-crud-page — DataTable (never a raw table), AppForm + typed fields with @app/types schemas (never re-declared), per-domain hooks, the three route-registration files. - types-contract — schema-first/type-inferred, one schema imported by API and frontend, `as const` vocabulary tuples; no drift. - mssql-troubleshoot — diagnostic T-SQL via sqlcmd (ledger, functions, error log, locks, sizes); the SQL Server counterpart to pg-troubleshoot. - pr-workflow — feature -> dev -> main, conventional commits, the PR-template checklist, and what CI enforces. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
…d procs The mssql-* skills were grounded in the template's usp_/fn_ + dbo conventions. Real forks are often proc-centric: mostly stored procedures under db/schema/stored-procedures/, schema-qualified and prefix-less (e.g. crd.adjustment_dtl_delete, dbo.<entity>_<action>) across schemas like dbo/crd. - mssql-function-authoring: add a callout that the existing repo's conventions win over the template's, and a TODO to author a project-specific stored-proc-authoring skill once real procs can be analyzed. - mssql-troubleshoot: note the naming difference and add a prefix-less, all-schema variant of the "objects present" diagnostic query. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
The DB rows of the surface map described the template's usp_/fn_ + dbo + schema/functions/ layout. Real forks are often proc-centric (stored procs under db/schema/stored-procedures/, schema-qualified prefix-less names like crd.adjustment_dtl_delete across dbo/crd). Add a callout that the existing repo's conventions win and that the map's *shape* holds regardless of DB naming, pointing at mssql-function-authoring and a future stored-proc skill. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
f07ec69 to
c549136
Compare
The map table and the add/remove/review steps still described the DB layer purely as usp_/fn_ functions under schema/functions/. Rewrite the DB rows and steps to lead with stored procedures (one .sql per proc, schema-qualified prefix-less names like crd.<entity>_<action> under db/schema/stored-procedures/), keeping the template's usp_/fn_ style as the noted variant. Also widen the grep recipe to match <entity>_<action> proc names and update the description. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This project's procs don't use usp_/fn_ prefixes (e.g. crd.adjustment_dtl_delete), so presenting "writes are usp_ procs, reads are fn_ functions" as the convention is misleading. Replace those asides (map table, add step, review bullet, SQL specifics, the callout, the child-entity example) with "naming + read/write conventions & best practices TBD — determine them from the existing procs," and keep usp_/fn_ only as an explicit "the template uses…" contrast. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Badge the intro and the worked example as app-starter TEMPLATE mechanics: the usp_/fn_ names are the template's, not this project's (which uses prefix-less schema-qualified procs like crd.adjustment_dtl_delete). Call out what transfers regardless of naming (GO batching, NEWID/datetimeoffset, COALESCE, positional binding, the read-test seam) and that exact naming/return conventions are TBD from the project's existing procs. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What
Adds six more Windsurf/Cascade skills under
.windsurf/skills/(a sibling set tofeature-surface-mapin #40), to keep a weaker Windsurf agent on the rails when working an IIS + SQL Server fork. Each is grounded in this repo's real files and critical rules — not generic advice.mssql-function-authoringusp_/fn_patterns, GO batches, positional@p0binding, snapshot-in-same-commit, the read-test seamverify-before-doneerror-logging-flow/errors;next(err)notconsole.error; frontend auto-reports viaapiFetchfrontend-crud-pageDataTable(never raw<table>),AppForm+ typed fields, per-domain hooks, the 3 route-registration filestypes-contractz.infertype, one schema for API + frontend,as constvocab tuplesmssql-troubleshootsqlcmd(ledger, functions, error log, locks, sizes)pg-troubleshootpr-workflowWhy this shape
@app/dbatpackages/db/on T-SQL)..windsurf/skills/is the deliberate "this is the Windsurf/IIS fork" marker — Windsurf reads both.claude/skills/and.windsurf/skills/.tasks/issuescode, plus a "common mistakes" / "don't" section each, since a weak agent may not follow links reliably.descriptionis written so Cascade auto-invokes the skill on the matching kind of work (or via@skill-name).Review note
These are advisory docs (no code paths touched). Skim and keep whichever you'll actually use — they're independent, so dropping any one is a clean delete of its folder.
🤖 Generated with Claude Code
Update (rebased onto
mainafter #40 merged): this branch was originally cut from a pre-#40main, so it didn't includefeature-surface-map. Rebased onto the currentmain; the PR now also revisesfeature-surface-map(a +14 callout) so all skills carry the same guidance: the real repo's DB conventions win over the template'susp_/fn_+dbostyle — real forks are often proc-centric (stored procs underdb/schema/stored-procedures/, schema-qualified prefix-less names likecrd.adjustment_dtl_deleteacrossdbo/crd).mssql-function-authoringandmssql-troubleshootcarry the same note plus a TODO to author a project-specificstored-proc-authoringskill once real procs can be analyzed.