Skip to content

feat(params): Parameterized skills with interactive CLI input wizard & template interpolation #14

Description

@00200200

Problem Statement / Background

Many skills require project-specific inputs (e.g., target staging URL, database branch, test coverage threshold). Hardcoding these in static markdown forces teams to create duplicated variations of the same skill.

Inspiration from State-of-the-Art Tools

cookiecutter, copier, and jinja2 allow declarative parameter schemas with default values, validation regexes, and interactive prompts.

Proposed Solution & Architecture

  1. Support parameters block in frontmatter:
    parameters:
      min_coverage: { type: int, default: 80, help: "Minimum test coverage %" }
      framework: { type: string, choices: [pytest, jest, vitest] }
  2. When running or compiling with cinch sync --interactive, prompt the developer for values or load from .cinch.env.
  3. Render variables using safe stdlib string templates or Jinja2 syntax.

Acceptance Criteria & Test Plan

  • Schema validation for typed parameters (string, int, boolean, choice).
  • Interactive prompts in terminal when parameters are unset.
  • Support parameter overrides via CLI flags (--param min_coverage=90) and environment variables.
  • Unit tests for template rendering.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or requesthelp wantedExtra attention is needed

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions