Skip to content
Back to skills

Showcase Build

ASecurity

Compose a shareable, disclosure-safe, OFFLINE proof bundle of Seshat BI's committed readiness truth -- stages, evidence, blockers, approvals, next actions, metric lineage, a truthful badge/project card, and a four-category disclosure manifest -- for a maintainer or analyst to hand to a reviewer, stakeholder, or prospective contributor. Use when someone asks for a "shareable proof", a "showcase bundle", a "project card", or "something I can send to show what Seshat has governed here". This is ...

  • 2 stars
  • 0 votes
  • 0 copies
  • 1 view
  • Added September 29, 2026
datarustgoshellnodeexpressgitapidatabase

Works with

  • cli
  • api

Security analysis

A100/100

Scanned September 29, 2026

npx -y skills add Kemetra/Seshat-BI --skill showcase-build --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Showcase Build?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Showcase Build
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/kemetra-showcase-build/badge)](https://www.skillsdirectory.com/skills/kemetra-showcase-build)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: showcase-build
description: >-
  Compose a shareable, disclosure-safe, OFFLINE proof bundle of Seshat BI's
  committed readiness truth -- stages, evidence, blockers, approvals, next
  actions, metric lineage, a truthful badge/project card, and a four-category
  disclosure manifest -- for a maintainer or analyst to hand to a reviewer,
  stakeholder, or prospective contributor. Use when someone asks for a
  "shareable proof", a "showcase bundle", a "project card", or "something I
  can send to show what Seshat has governed here". This is a Product Module,
  artifact-writing: it READS the shipped Explorer projection
  (`build_explorer_projection`), the Passport (`seshat.passport`), and the
  disclosure scanner (`seshat.disclosure.scan_disclosure`), composes ONE
  offline HTML bundle, and STOPS. It recomputes NO readiness, defines NO new
  evidence schema, invents NO meaning, and grants NO approval. It is
  fail-closed: a disclosure finding over the FULL composed body blocks
  generation and writes nothing. Generation is local-only
  (`.seshat-output/`); publishing the bundle anywhere is a separate, explicit
  human action this skill never performs.
---

# showcase-build

- **Roadmap feature / spec:** `specs/127-showcase-build/` (Shareable Seshat
  Proof / Showcase Bundle).
- **Authority category:** Product Module / `artifact-writing`
  (`docs/architecture/product-modules.md`).
- **Delivery shape:** a read-only skill over a reusable library function
  (`src/seshat/showcase/build.py`), per the ratified Option B decision
  (`docs/roadmap/decisions/cli-verbs-vs-skill-driven.md`, 2026-07-07). **No
  new top-level CLI verb is added** -- `seshat.cli._DISPATCH` has no
  `showcase` key, and importing `seshat.showcase` adds no network/driver
  import (mirrors the B1/B3 lazy-import guard).

A "shareable proof" is a single offline folder that answers "what has Seshat
governed here, and can I trust it?" -- the readiness spine, the evidence, the
blockers, the approvals, and the metric lineage together, a truthful badge
(never a fabricated score), and a disclosure manifest stating exactly what is
included, redacted, omitted, and unavailable. This skill is the COMPOSER: it
fills the bundle from surfaces that already ship (the Explorer projection,
the Passport, the disclosure scanner); it originates no readiness truth of
its own.

## Module contract (the filled F024 declaration)

- **Authority category:** Product Module
- **Capability level:** `artifact-writing` *(exactly one)*
- **Product layer:** `6` *(delivery/handoff rendering, sibling of the F013
  handoff pack and the F026/F028 read-only lenses)*
- **Owner:** the analyst or maintainer requesting the proof
- **Status:** Authored

### What it does (one line)

> Composes the already-committed readiness projection, an evidence-derived
> badge, and a four-category disclosure manifest into one offline HTML
> bundle, running the fail-closed disclosure scan over the FULL composed
> body before ever writing a file.

### Core Authority it READS

- `seshat.explorer.build.build_explorer_projection` -- stages, evidence
  states (`available` / `missing` / `deferred`), blockers, approvals,
  next actions, metric lineage, and input-defect entries.
- `seshat.passport` (`verify_passport`) -- ONLY when two snapshot paths are
  supplied, to compute the optional before/after section.
- `seshat.disclosure.scan_disclosure` -- the shared fail-closed scanner, run
  over the full composed bundle body (not merely the base projection).
- `seshat.cli.guards.resolve_local_output` -- the contained-output guard.

### Derived evidence it WRITES

- One offline HTML file (default `showcase/index.html`) under the contained
  `.seshat-output/` root, plus any inlined/embedded sidecar content (nothing
  external is ever referenced).

### Approved step it EXECUTES

- none. It composes and writes ONE local file, then STOPS. It runs no
  `seshat check` / `retail validate` of its own, opens no database, and
  calls no Power BI execution adapter.

### Forbidden operations

- MUST NOT recompute readiness, define a new evidence schema, or invent a
  new Explorer/Passport (FR-001/FR-002) -- it renders the existing ones.
- MUST NOT show any stage as `pass` without inspectable evidence (FR-003).
- MUST NOT write outside the contained `.seshat-output/` root (FR-006).
- MUST NOT publish, upload, track users, or call any external network/API
  (FR-007/FR-008) -- every asset is inlined or a data URI.
- MUST NOT grant or imply any approval or publish sign-off (FR-011).
- MUST NOT express a percentage, grade, or any other fabricated confidence
  number anywhere in the badge, card, or manifest (FR-013, FR-026; hard
  rule #9).
- MUST NOT modify `src/seshat/explorer/assets/explorer.css` /
  `explorer.js`, or any source readiness artifact (FR-025).
- MUST NOT add a new top-level CLI verb (FR-005; ratified Option B).

### How it handles a missing or unsafe input

- A missing artifact renders as missing; a malformed readiness file renders
  as an input defect; a deferred live check renders as unavailable -- never
  as a pass (FR-003; Principle V, stop-and-ask, never invent).
- A live disclosure finding (secret, DSN, PII value, or a residual absolute
  path that survives portability normalization) in the FULL composed body
  BLOCKS generation fail-closed: no partial or redacted file is written; the
  findings are printed (FR-009/FR-010).
- Two Passport snapshots that are not comparable (different `scope`,
  different `schema_version`, or fewer than two supplied) omit the
  before/after section gracefully with a truthful note -- never a
  fabricated delta (FR-020/FR-021).

## Scope boundary (read first)

- **Composes, never invents.** Every fact in the bundle traces to the
  reused Explorer projection or a supplied Passport snapshot. A missing
  artifact is missing; a deferred live check is unavailable; a malformed
  file is an input defect. Nothing is inferred into a pass.
- **Read-only over every source.** Generating or browsing the bundle never
  modifies a readiness status file, a database, or a Power BI model. After a
  run, `git status` shows only new files under `.seshat-output/` (typically
  git-ignored).
- **Fail-closed disclosure, full body.** The scan runs over tables, enriched
  lineage, approval receipts, the badge, the manifest, and any before/after
  content -- INCLUDING user-supplied snapshot content the base projection
  never saw. A blocking finding writes nothing.
- **No fake confidence, ever.** The badge states the highest CONTIGUOUS
  `pass` stage and the passed-stage count (e.g. "3/7 stages ready --
  Gold: blocked"). It never states a percentage, a grade, or an invented
  score (hard rule #9). When no stage has passed, it states the truthful
  onboarding status, never an empty or celebratory claim.
- **Four-category manifest, no silent drops.** Every composed item lands
  under exactly one of included / unavailable / omitted / redacted, each
  with a locator. "Redacted" names ONLY the composer's own by-design
  portability normalizations (an absolute path reduced to repo-relative, a
  private/internal URL stripped) -- never the suppression of a disclosure
  finding (those block, they are not redacted).
- **Own shell, untouched Explorer.** The bundle renders `showcase.css` /
  `showcase.js` (its own assets); it never reads or edits
  `explorer.css` / `explorer.js`.
- **Generation is not publication.** Producing the bundle never grants a
  publish approval or PII sign-off. Sharing the file anywhere is a separate,
  explicit human action outside this skill.
- **Generic.** No worked-example specifics baked in; `retail_store_sales`
  (`docs/worked-examples/retail-store-sales.md`) is a cited filled instance,
  never hard-coded (Principle VII). ASCII + UTF-8 no BOM for any text this
  skill's caller writes back into the repo (the skill itself only writes
  under `.seshat-output/`, which is not tracked).

## Procedure (numbered; do not reorder)

1. **Resolve inputs.** Workspace root (default `.`); optional output path
   (must resolve inside `.seshat-output/`); optional `rtl` render mode;
   optional two Passport snapshot file paths for the before/after section.
2. **Compose.** Call
   `seshat.showcase.build.build_showcase_bundle(root, snapshots=...)`. This
   reads the Explorer projection, derives the badge and manifest, applies
   portability normalization (absolute path -> repo-relative; private URL
   stripped -- each listed under the manifest's `redacted` category), and
   computes the optional comparison if two snapshots were supplied.
3. **Disclosure gate.** If `bundle["disclosure"]["status"] != "pass"`: STOP
   fail-closed. Print every finding (`rule`, `locator`, `message`). Write
   NOTHING. This is not a partial-write case -- no file appears.
4. **Resolve the output path.** Call
   `seshat.cli.guards.resolve_local_output(root, output)`. If the path
   escapes `.seshat-output/`, refuse and write nothing (FR-006).
5. **Render and write.** Call
   `seshat.showcase.build.render_showcase_html(bundle, repo=root, rtl=...)`
   and write the result to the resolved path.
6. **Report and STOP.** Print the written path and this reminder verbatim:
   "This is a local offline snapshot generated from committed evidence only.
   Publishing it anywhere is a separate, explicit human action." Do not
   publish, upload, or record any approval. Any judgment call surfaced in
   the bundle (an unresolved assumption, a blocked gate, a retracted
   approval) is a stop-and-ask for the named human (Principle V) -- this
   skill only renders it.

## Refusals

- **Uncontained output path** -- refuse before writing; nothing is written
  outside `.seshat-output/`.
- **Blocking disclosure finding** -- refuse fail-closed; print the findings;
  write nothing (no partial/redacted bundle).
- **A request to publish, upload, or otherwise distribute the bundle** --
  out of scope. This skill only writes a local file; publishing is the
  named human's separate, explicit action.
- **A request for a numeric confidence/health/percent-ready score** --
  refuse; the badge/manifest already state the truthful stage-and-count
  summary (hard rule #9).

## Honest-state rules (never invent, never silently resolve)

| Situation | What the skill does |
|-----------|----------------------|
| No table has reached any stage (or the workspace has no onboarded table) | badge states the truthful onboarding status; never an empty or celebratory claim |
| A readiness file is malformed | rendered as an input defect in the table panel AND listed under the manifest's `omitted` category |
| A secret / DSN / PII value / residual absolute path is present anywhere in the composed body | generation blocks fail-closed; findings printed; nothing written |
| A metric contract is unreadable | rendered as an input-defect lineage node, never a valid metric |
| Two snapshots share scope but one is malformed or a different schema | treated as not comparable; the before/after section is omitted with a note |
| Only one snapshot (or none) is supplied | no before/after section; no fabricated delta |

## See also

- The spec: `specs/127-showcase-build/spec.md`, `plan.md`, `data-model.md`,
  `contracts/showcase-contract.md`, `quickstart.md`, `research.md`.
- The library it composes: `src/seshat/showcase/build.py`,
  `src/seshat/showcase/badge.py`, `src/seshat/showcase/manifest.py`,
  `src/seshat/showcase/compare.py`.
- The reused shipped surfaces: `src/seshat/explorer/build.py`,
  `src/seshat/passport.py`, `src/seshat/disclosure.py`,
  `src/seshat/cli/guards.py`.
- The nearest sibling read-only lenses: `.claude/skills/readiness-viewer/`
  (stage matrix), `.claude/skills/evidence-pack-generator/` (late-stage
  pack) -- this skill's delta is that it renders an OFFLINE, SHAREABLE,
  disclosure-scanned bundle with a badge and a manifest, not an in-repo
  markdown artifact.
- The Option B ratification this delivery shape applies:
  `docs/roadmap/decisions/cli-verbs-vs-skill-driven.md`.
- A cited filled worked example: `docs/worked-examples/retail-store-sales.md`.

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…