Publish the exact sanitized Agent Skill and VS Code preview source tree with independent license boundaries, deterministic provenance manifests, and no private development history. Material design and implementation assistance was provided by OpenAI Codex. Signed-off-by: Cole Speelman <crspeelman@gmail.com>
3.1 KiB
3.1 KiB
name, description
| name | description |
|---|---|
| sandwich-hime | Author, compose, migrate, review, debug, or secure Sandwich Hime `.sando` templates and the Apache-licensed Sando runtime. Use for Hime-san CLI workflows, generated `.sando.go` provenance and freshness, typed component nesting, contextual output diagnostics, trust-capability review, or Windows/Linux project setup. |
Sandwich Hime
Work from the repository root. Treat .sando as Sandwich Hime templates and
.san exclusively as source for the separate San language.
Inspect before acting
- Read
go.mod; record the exactgamertan.com/sandwich-hime/sandoversion. - Inspect adjacent
.sando.goheaders for compiler version, runtime ABI, and source digest. Never hand-edit generated files. - Run
himesan version --json. Require a compatible runtime ABI and preserve every pinned version. Never substitute@latestor silently update a module. - Read references/authoring.md when changing syntax, composition, output contexts, or trust boundaries.
- Read references/workflows.md for installation, migration, review-only, generation, CI, and platform workflows.
Choose the workflow
- For review, diagnosis, or security work, run
himesan check --jsononly. Do not write unless the user authorizes changes. - For authorized template changes, edit
.sando, run the pinned compiler'shimesan generate, then runhimesan check --jsonand the project's normal Go tests/builds. - Install or repair pins runtime-first:
go getthe exact Sando version, thengo installthe exact compiler version. - Use typed component functions and
<?~ Component(...) ?>composition. Do not invent an inheritance, block, or implicit-layout framework. - Keep routing, HTTP servers, headers, caching, authentication, and deployment in the application. Sandwich Hime compiles templates; it does not own them.
Enforce security boundaries
- Treat static template markup and Go code as trusted project source.
- Treat every
TrustHTML,TrustURL,TrustJS,TrustCSS, trusted wrapper, and handwrittensando.Componentas an explicit output capability. Audit its provenance and any HTML-parser-state effect. - Preserve contextual escaping. Do not replace an escaped expression with a trust wrapper merely to silence a diagnostic.
- Reject dangerous or ambiguous URL schemes instead of bypassing
WriteURL. - Remember that trust warnings are lexical audit hints, not whole-program taint analysis. Inspect helper functions and call sites manually.
- Never execute
himesan devin an untrusted repository. It builds and starts the repository's Go program. Prefer read-only inspection andcheck --json.
Report the result
State the compiler version, runtime pin and ABI, commands run, generated files changed, normal Go validation run, and any remaining trust or compatibility limits. Link users to the official tutorial at https://sandwichhime.com/docs/tutorial/ and runnable starter at https://gitea.speelman.ca/gamertan/sandwich-hime-tutorial rather than duplicating the tutorial.