Skip to content
cccskills
FreePublished on GitHub

product-demo-seeding

Seed coherent, disposable Kandev demo scenarios for screenshots, product films, landing-page media, and reproducible UI captures. Use when media needs believable tasks, workflows, agents, executors, integrations, plans, sessions, diffs, reviews, or native-mobile states; invoke before product-video-capture and never use a developer's main instance or data.

The English summary is being prepared. Showing the original description.

kdlbs/kandev1,020 stars(GitHub 1,020 + cccskills 0)
Works withJira

Run score Not tested

See how to install

Files included (5)

  • SKILL.md7.2 KB
  • evals/contract.test.mjs2.7 KB
  • evals/evals.json3.2 KB
  • references/isolation-and-seeding.md10.4 KB
  • references/story-recipes.md4.3 KB

SKILL.md (original)

Review the instructions the agent will receive before you install.

Product Demo Seeding

Build a truthful product state before recording pixels. Treat narrative, data, and UI route as one artifact.

Current-Main Source Gate

Product capture represents current Kandev, so old checkouts and old builds are invalid even when their scripts still run.

  1. Fetch origin/main immediately before capture setup.
  2. Create a clean detached capture worktree from origin/main; do not reuse the task worktree or a landing branch.
  3. Record both SHAs and prove HEAD equals origin/main. Require an empty git status --porcelain before building and before capture.
  4. Install dependencies and build frontend/backend from that worktree. Verify it contains scripts/dev-isolated and apps/web/e2e/.
  5. Stage specs, raw masters, configs, proofs, logs, and delivery candidates under a fresh artifact root outside production assets.

Reject stale UI, selector, script, or capture choreography until current source is built and the complete route passes rehearsal. Never substitute an old server, cached bundle, or last month's working selectors for this gate.

Workflow

  1. Read /e2e and the relevant existing specs/page objects under apps/web/e2e/.
  2. Write a one-sentence story: user goal, visible action, visible result.
  3. Identify separate desktop and native-mobile routes. Mobile must use native mobile surfaces, not a desktop crop.
  4. Explore manually with scripts/dev-isolated --web when needed. For reproducible capture, use the worker-scoped E2E fixture and ApiClient.
  5. Create a fresh fictional repository, workspace, workflow, tasks, sessions, and provider state through supported E2E/API methods.
  6. Seed only enough state to make the story legible. Dense believable data beats empty fixtures; excessive data hides the action.
  7. Open the intended UI and verify every visible label, control, and transition before recording.
  8. Rehearse without a recorder, discard rehearsal mutations, then reseed an identical pristine baseline for each take.
  9. Hand the scenario, routes, selectors, semantic target bounds, complete intentional pointer journeys, provenance, and cleanup command to /product-video-capture.

Safety Contract

  • Allocate a fresh temp HOME, KANDEV_HOME_DIR, database, repository/worktree root, unique ports, unique display, unique browser profile, and artifact root. Names and ownership must identify one take.
  • Use deterministic mock GitHub and Jira providers plus a controlled agent. Use fixed IDs and timestamps, authors, titles, bodies, states, checks, and ordering.
  • No credentials or network access to real provider services is permitted. Unset provider tokens and fail closed if mock routing cannot be proven in backend logs.
  • Never copy the developer's database for marketing capture. scripts/dev-isolated --copy-db is outside this workflow.
  • Never query, mutate, stop, or reuse the developer's instance, DB, or data.
  • Keep temporary capture specs or harness code under CAPTURE_ROOT, outside the source worktree. If the runner requires an in-worktree file, write only its exact path to a take-owned excludes file under CAPTURE_ROOT and pass it through command-local core.excludesFile configuration inherited by the capture process. Prove the clean-worktree status gate still returns an empty git status --porcelain, stage a source copy, then remove the file and exclusion during teardown. Never mutate the shared .git/info/exclude; linked worktrees and sibling agents may depend on it.
  • Stop if isolation cannot be proven from process args, ports, paths, and logs.

Read isolation-and-seeding.md before starting an instance.

Truthfulness Contract

  • Seed real records and drive real controls. Do not fabricate menu items, executor families, integrations, checks, or agent support in the DOM.
  • Prefer coherent API-seeded labels over capture-time text replacement. If fixture sanitation is unavoidable, document exact substitutions; never add controls, hide product bugs, or change behavior.
  • Use current product capabilities. Inspect selectors and API helpers again instead of copying an old capture spec blindly.
  • If a responsive surface is broken, report the product bug and choose another truthful native route only when it demonstrates the same capability.
  • Keep local paths, test directives, generic mock responses, fixture names, and host identity out of visible frames.
  • Give capture-only mock executors a logical command label such as mock-agent; never expose the temporary executable's absolute host path in a visible command, profile, or session label.

Per-Take State Contract

Rehearsal changes product state: integration flows create tasks. A successful rehearsal therefore cannot share recording state.

  • Start from a fresh database for every recorded take. An equivalent reset is acceptable only when it deletes all scenario records and reseeds one canonical baseline with a verified seed hash.
  • Use a rehearsal reset or discard its entire temp root before RECORD. Restart backend/browser ownership as needed so cached client state cannot survive.
  • Before each take, assert exact workspace/workflow/task/provider counts, unique IDs, unique visible task titles, and expected ordering. Reject duplicate or accumulated tasks, fixtures, sessions, or provider-created records.
  • Give desktop GitHub, mobile GitHub, desktop Jira, and mobile Jira independent state ownership. One failed or repeated take must not contaminate another.
  • Never clean visible state with DOM deletion, CSS hiding, or capture-time text replacement. Fix the seed or start fresh.

Story Selection

Use story-recipes.md for Plan, Coordinate, Prepare, Run, Review, integrations, editor/terminal, and mobile recipes. Recipes are patterns, not frozen scripts.

Acceptance Gate

Before capture, verify:

  • Story has a clear initial state, action, and result. Treat 7-11 seconds as a target, never a reason to omit an honest route step, rush readability, or shorten the settled loop.
  • Desktop and mobile each have a native script and safe composition.
  • Visible data forms one fictional project narrative.
  • No production endpoint, credential, local path, fixture copy, or unsupported control is visible.
  • Current build and all story-critical routes passed a recorder-free rehearsal; rehearsal state was reset or discarded.
  • Exact baseline record counts prove no duplicate fixture accumulation before RECORD.
  • Seed teardown removes temporary profiles, specs, processes, ports, database, and repository.

Report seed name, story, source SHA, seed hash, fixed provider fixture version, separate desktop/native-mobile routes, process args, ports, display, browser profile, database/temp/artifact roots, mock-routing proof, any sanitation, and teardown result. This provenance must map every delivered take to its isolated baseline and current-main source.

Reviews

No reviews yet. Tell others what you thought.

Comments

No login needed. Share how it worked for you, ask a question, or note where it did not run.

No comments yet. Be the first to write one.

Comments are published right away. Do not include personal information such as email addresses or phone numbers. Up to 2 URLs.

0 / 1,000 characters

This form is protected by reCAPTCHA, and the Google Privacy Policy and Terms of Service apply.

More skills from this repository

Debug an ACP agent CLI by spawning it, speaking raw JSON-RPC, and capturing every frame to a JSONL file. Use when the user asks to probe an agent's capabilities, compare agents, test a prompt against an agent, inspect raw ACP wire frames, or investigate why an agent fails to initialize.

The English summary is being prepared. Showing the original description.

kdlbs/kandev1KUpdated Oct 26, 2026

Add a new third-party integration (Jira/Linear-style) — per-workspace credentials, 90s auth-health poller, settings page, link/import buttons. Use when scaffolding a new external service integration.

The English summary is being prepared. Showing the original description.

kdlbs/kandev1KUpdated Oct 26, 2026

Delete local branches whose remote has been deleted ([gone]), including their worktrees. Use for branch cleanup after merging PRs.

The English summary is being prepared. Showing the original description.

kdlbs/kandev1KUpdated Oct 26, 2026

Review changed code for quality, security, and architecture compliance. Use only when the user explicitly requests local review or a PR finding requires it.

The English summary is being prepared. Showing the original description.

kdlbs/kandev1KUpdated Oct 26, 2026

commit

Free

Stage and commit changes using Conventional Commits. Use when there are dirty/staged files to commit, the user says "commit", or before pushing a PR.

The English summary is being prepared. Showing the original description.

kdlbs/kandev1KUpdated Oct 26, 2026

Curate the right project context before coding or debugging. Use when starting a new session, switching areas of the codebase, output quality is drifting, a task spans backend/frontend/docs, or external instructions need to be reconciled with Kandev conventions.

The English summary is being prepared. Showing the original description.

kdlbs/kandev1KUpdated Oct 26, 2026

See all skills by kdlbs

Report a problem with this skill