Claude-skill-registry amcs-{SKILL_NAME}-{ACTION}
{ONE_SENTENCE_PURPOSE}. Use when {TRIGGER_CONDITION}.
git clone https://github.com/majiayu000/claude-skill-registry
T=$(mktemp -d) && git clone --depth=1 https://github.com/majiayu000/claude-skill-registry "$T" && mkdir -p ~/.claude/skills && cp -r "$T/skills/data/amcs-template" ~/.claude/skills/majiayu000-claude-skill-registry-amcs-skill-name-action && rm -rf "$T"
skills/data/amcs-template/SKILL.mdAMCS {Skill Title}
{2-3 sentence overview of what this skill does and why it exists in the AMCS workflow.}
When to Use
Invoke this skill {POSITION_IN_WORKFLOW} when {CONDITION}. This node {RUNS_IN_PARALLEL/SEQUENTIALLY} with {OTHER_NODES} and feeds into {DOWNSTREAM_NODES}.
Input Contract
inputs: - name: {input_1_name} type: {schema_reference} # e.g., amcs://schemas/sds-1.0.json required: true/false description: {What this input provides} - name: {input_2_name} type: {type} required: true/false description: {What this input provides} - name: seed type: integer required: true description: Determinism seed (use seed+{NODE_INDEX} for this node)
Output Contract
outputs: - name: {output_name} type: {schema_reference} description: | {Multi-line description of output structure} - field_1: {description} - field_2: {description} - _hash: SHA-256 hash for provenance tracking
Determinism Requirements
- Seed:
for any stochastic operationsrun_seed + {NODE_INDEX} - Temperature: {VALUE} (or N/A if no LLM generation)
- Top-p: {VALUE} (or N/A)
- Retrieval: {NONE | Pinned by content hash}
- Hashing: Hash final output for provenance tracking
- Key Invariant: Same inputs + seed => identical outputs
Constraints & Policies
{List all constraints this skill must enforce}
- {CONSTRAINT_1}: {RULE}
- {CONSTRAINT_2}: {RULE}
- {POLICY_1}: {ENFORCEMENT}
- {VALIDATION_1}: {CHECKS}
Example:
- Tempo MUST fall within blueprint's
for primary genretempo_range - Tags MUST NOT conflict per
taxonomies/tag_conflict_matrix.json - Profanity filter applies to all text fields
- Maximum {X} {ITEMS} to avoid {PROBLEM}
Implementation Guidance
{Detailed step-by-step implementation instructions}
Step 1: {First Major Step}
{Detailed instructions for this step}
- {Sub-step 1}
- {Sub-step 2}
- {Sub-step 3}
Example:
# Code example showing pattern
Step 2: {Second Major Step}
{Detailed instructions}
Algorithm:
- {Algorithm step}
- {Algorithm step}
- Score = {FORMULA}
Target: {THRESHOLD}
Example:
{Concrete example with data}
Issues:
- If {CONDITION}:
"{ERROR_MESSAGE}"
Step {N}: Validate and Return
- Validate output against
{SCHEMA_REFERENCE} - Compute SHA-256 hash of output
- Return output with hash in metadata
Example Output:
{ "{field}": "{value}", "_hash": "abc123...", "_metadata": {} }
Examples
Example 1: {Typical Use Case}
Input:
{ "{input_field}": "{value}", "seed": 42 }
Output:
{ "{output_field}": "{value}", "_hash": "abc123..." }
Example 2: {Edge Case or Variation}
Input:
{ "{input_field}": "{different_value}", "seed": 100 }
Output:
{ "{output_field}": "{result}", "_hash": "def456..." }
Example 3: {Error Case}
Input:
{ "{invalid_input}": "{bad_value}" }
Expected Error:
ValueError: {ERROR_MESSAGE}
Testing
Basic Functionality Test
Test that the skill produces valid output for typical inputs.
Determinism Test
Critical: Run with same inputs + seed 10 times, verify identical outputs.
Test Pattern:
@pytest.mark.parametrize("run_number", range(10)) async def test_{skill}_determinism(sample_input, context, run_number): result = await {skill_function}(sample_input, context) if run_number == 0: pytest.first_hash = result["_hash"] assert result["_hash"] == pytest.first_hash
Input Validation Test
Test that invalid inputs are rejected with clear error messages.
Policy Enforcement Test
Test that constraints and policies are properly enforced.
Common Pitfalls
- {Pitfall 1}: {Description of what goes wrong and how to avoid}
- {Pitfall 2}: {Description}
- {Pitfall 3}: {Description}
- Determinism Loss: {What breaks determinism in this skill}
- Hash Omission: Missing provenance hash breaks traceability
Troubleshooting
Issue: {Common Problem}
Symptoms: {What the user sees}
Cause: {Why this happens}
Solution: {How to fix it}
Issue: Determinism Test Failing
Symptoms: Different outputs from same inputs + seed
Cause:
- Unseeded randomness
- Non-deterministic retrieval
- Datetime dependencies
- High temperature/top-p
Solution:
- Use
for all random operationscontext.seed - Pin retrieval by content hash
- Remove datetime.now() calls
- Set temperature ≤ 0.3, top_p ≤ 0.9
Related Skills
- {UPSTREAM_SKILL}: Provides inputs to this skill
- {DOWNSTREAM_SKILL}: Consumes outputs from this skill
- {PARALLEL_SKILL}: Runs in parallel with this skill
References
- PRD:
docs/project_plans/PRDs/{prd_file}.prd.md - Workflow:
(section {X})docs/project_plans/PRDs/claude_code_orchestration.prd.md - Blueprint:
docs/hit_song_blueprint/AI/{genre}_blueprint.md - Schema:
schemas/{schema_name}.json