How this skill is triggered — by the user, by Claude, or both
Slash command
/crypto-workbench:crypto-initThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
Initialize a Crypto Workbench target workspace.
Initialize a Crypto Workbench target workspace.
None — this is the entry point for any new crypto target.
Run initialize_workspace(root) from scaffolding.init_workspace, where root is the target project root (typically . — the user's cwd). The function appends .cryptoworkbench/ itself. Do not pass .cryptoworkbench as the root — you will get a nested .cryptoworkbench/.cryptoworkbench/ tree.
Verify these exist after initialization:
corpus/ with subdirs: papers, standards, notes, drafts, prior_impls, fetchedextracted/ with subdirs: reviews, notation_maps, ambiguity_logs, impl_specs, security_reviews, library_mappings, test_vectors, source_indexesworkbench/ with files: current_target.yaml, decisions.md, open_questions.md, implementation_plan.md, config.yamlcache/Run initialize_claude_files(root) from scaffolding.init_claude_files to place a CLAUDE.md in the target project with the Crypto Workbench workflow contract. Existing files are preserved.
Ask the user which path they want:
"How would you like to start?
- Real target now — tell me what paper / spec / scheme you want to work on
- Use a demo — install a bundled example target and walk through the pipeline end-to-end
- Init only — finish here; leave the target deferred and pick it up later"
Then execute the chosen branch:
Ask the user all three fields in one consolidated prompt, not three sequential questions:
"Tell me about the target in one message. I need:
name— short slug (e.g.kyber-768,hkdf-sha512)type— one of: algorithm / scheme / protocol / paperprimary_sources— path(s) to the paper/standard, or URL(s) to fetchYou can answer in any format — a single line, a bullet list, or separate messages if easier."
If the user partially answers, only re-prompt for the missing fields. Do not re-ask fields that were already provided. If the user says "I only have a URL, name it for me" or similar, propose a slug derived from the URL/title and confirm before saving.
Call save_target(workbench_root, {name, type, primary_sources, status: "intake"}) from workbench.target.
If sources are URLs, leave primary_sources as the URLs and tell the user to run crypto-intake next — it is responsible for fetching material when search policy allows.
List bundled examples with list_examples() from scaffolding.install_example.
<name> — OK?"). Do not silently default — silent defaults violate the guided-interaction contract.Call install_example(workbench_root, name=<demo>). This copies the demo paper into corpus/papers/ and writes the preset target to current_target.yaml (with status: demo).
Tell the user clearly that this target is labeled as a demo — any artifact produced downstream will carry a "demo only" note and should not be treated as a real implementation.
Leave current_target.yaml with its default empty fields and status: draft. Do not prompt further. Tell the user they can invoke crypto-intake later; if they run it with a deferred target, downstream skills will prompt for the missing fields at that point.
Report to the user:
crypto-intake to scan and classify source material (or crypto-init again to pick a path when deferred)scaffolding.init_workspace — initialize_workspace(root)scaffolding.init_claude_files — initialize_claude_files(root)scaffolding.install_example — list_examples(), install_example(workbench_root, name)workbench.target — load_target(), save_target(), check_target_fields()config.loader — load_config(path), save_config(path, updates)Shared Python modules ship inside this plugin under ${CLAUDE_PLUGIN_ROOT}/src/. The user's current working directory is their working project — that is where .cryptoworkbench/ lives and where any relative path like workbench_root resolves.
When invoking Python from this skill:
src/ to the Python path. Inline form: PYTHONPATH="${CLAUDE_PLUGIN_ROOT}/src" python .... Inside a script: sys.path.insert(0, "${CLAUDE_PLUGIN_ROOT}/src").workbench_root as a path relative to the user's cwd (typically .cryptoworkbench)..py file — not inline python -c with shell quoting.npx claudepluginhub bacharkachouh/crypto-workbench --plugin crypto-workbenchGuides creation, editing, and verification of skills for AI coding agents using test-driven development with subagent scenarios. Use when authoring or debugging skills.