{
  "schemaVersion": "1.0",
  "item": {
    "slug": "si",
    "name": "Supernal Interface CLI",
    "source": "tencent",
    "type": "skill",
    "category": "开发工具",
    "sourceUrl": "https://clawhub.ai/ianderrington/si",
    "canonicalUrl": "https://clawhub.ai/ianderrington/si",
    "targetPlatform": "OpenClaw"
  },
  "install": {
    "downloadMode": "redirect",
    "downloadUrl": "/downloads/si",
    "sourceDownloadUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=si",
    "sourcePlatform": "tencent",
    "targetPlatform": "OpenClaw",
    "installMethod": "Manual import",
    "extraction": "Extract archive",
    "prerequisites": [
      "OpenClaw"
    ],
    "packageFormat": "ZIP package",
    "includedAssets": [
      "SKILL.md"
    ],
    "primaryDoc": "SKILL.md",
    "quickSetup": [
      "Download the package from Yavira.",
      "Extract the archive and review SKILL.md first.",
      "Import or place the package into your OpenClaw setup."
    ],
    "agentAssist": {
      "summary": "Hand the extracted package to your coding agent with a concrete install brief instead of figuring it out manually.",
      "steps": [
        "Download the package from Yavira.",
        "Extract it into a folder your agent can access.",
        "Paste one of the prompts below and point your agent at the extracted folder."
      ],
      "prompts": [
        {
          "label": "New install",
          "body": "I downloaded a skill package from Yavira. Read SKILL.md from the extracted folder and install it by following the included instructions. Tell me what you changed and call out any manual steps you could not complete."
        },
        {
          "label": "Upgrade existing",
          "body": "I downloaded an updated skill package from Yavira. Read SKILL.md from the extracted folder, compare it with my current installation, and upgrade it while preserving any custom configuration unless the package docs explicitly say otherwise. Summarize what changed and any follow-up checks I should run."
        }
      ]
    },
    "sourceHealth": {
      "source": "tencent",
      "slug": "si",
      "status": "healthy",
      "reason": "direct_download_ok",
      "recommendedAction": "download",
      "checkedAt": "2026-05-09T15:16:21.664Z",
      "expiresAt": "2026-05-16T15:16:21.664Z",
      "httpStatus": 200,
      "finalUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=si",
      "contentType": "application/zip",
      "probeMethod": "head",
      "details": {
        "probeUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=si",
        "contentDisposition": "attachment; filename=\"si-1.0.0.zip\"",
        "redirectLocation": null,
        "bodySnippet": null,
        "slug": "si"
      },
      "scope": "item",
      "summary": "Item download looks usable.",
      "detail": "Yavira can redirect you to the upstream package for this item.",
      "primaryActionLabel": "Download for OpenClaw",
      "primaryActionHref": "/downloads/si"
    },
    "validation": {
      "installChecklist": [
        "Use the Yavira download entry.",
        "Review SKILL.md after the package is downloaded.",
        "Confirm the extracted package contains the expected setup assets."
      ],
      "postInstallChecks": [
        "Confirm the extracted package includes the expected docs or setup files.",
        "Validate the skill or prompts are available in your target agent workspace.",
        "Capture any manual follow-up steps the agent could not complete."
      ]
    },
    "downloadPageUrl": "https://openagent3.xyz/downloads/si",
    "agentPageUrl": "https://openagent3.xyz/skills/si/agent",
    "manifestUrl": "https://openagent3.xyz/skills/si/agent.json",
    "briefUrl": "https://openagent3.xyz/skills/si/agent.md"
  },
  "agentAssist": {
    "summary": "Hand the extracted package to your coding agent with a concrete install brief instead of figuring it out manually.",
    "steps": [
      "Download the package from Yavira.",
      "Extract it into a folder your agent can access.",
      "Paste one of the prompts below and point your agent at the extracted folder."
    ],
    "prompts": [
      {
        "label": "New install",
        "body": "I downloaded a skill package from Yavira. Read SKILL.md from the extracted folder and install it by following the included instructions. Tell me what you changed and call out any manual steps you could not complete."
      },
      {
        "label": "Upgrade existing",
        "body": "I downloaded an updated skill package from Yavira. Read SKILL.md from the extracted folder, compare it with my current installation, and upgrade it while preserving any custom configuration unless the package docs explicitly say otherwise. Summarize what changed and any follow-up checks I should run."
      }
    ]
  },
  "documentation": {
    "source": "clawhub",
    "primaryDoc": "SKILL.md",
    "sections": [
      {
        "title": "si - Supernal Interface CLI",
        "body": "Test generation, contract scanning, story-based testing, and MCP setup for web applications."
      },
      {
        "title": "Installation",
        "body": "npm install -g @supernal/interface"
      },
      {
        "title": "Contract Generation & Scanning",
        "body": "# Scan Next.js pages → generate route contracts\nsi scan-routes\nsi scan-routes -p ./src/pages -o ./src/routes/Routes.ts\nsi scan-routes --framework nextjs --watch        # Watch mode\nsi scan-routes --git-commit                      # Auto-commit\n\n# Scan components → generate name contracts (data-testid)\nsi scan-names\nsi scan-names -c ./src/components -o ./src/names/Components.ts\nsi scan-names --flat                             # Components.Header vs Header.submitButton\n\n# iOS-specific scanning\nsi scan-ios-views      # SwiftUI views → component names\nsi scan-ios-routes     # SwiftUI navigation → route contracts\nsi scan-ios-names      # Swift accessibility identifiers"
      },
      {
        "title": "Validation",
        "body": "si validate --all                    # Validate everything\nsi validate --routes <file>          # Validate route contracts\nsi validate --names <file>           # Validate name contracts\nsi validate --tools                  # Validate @Tool decorators\nsi validate --no-cache               # Force refresh\n\nsi validate-graph                    # Detect broken links, orphan routes"
      },
      {
        "title": "Test Generation",
        "body": "# From @Tool decorators\nsi generate-tests\nsi generate-tests --tools src/tools/index.ts\nsi generate-tests --include-e2e      # Add Playwright E2E tests\nsi generate-tests -f jest            # Framework: jest (default)\n\n# From Gherkin feature files\nsi generate-story-tests <path>       # Multi-platform test generation"
      },
      {
        "title": "Story System (BDD Testing)",
        "body": "# Record story videos\nsi story record <story-file>         # Record .story.ts execution\n\n# Test without video\nsi story test <feature-file>         # Run Gherkin scenarios\n\n# Validate before running\nsi story validate <feature-file>     # Check syntax, steps, components\n\n# List available steps\nsi story list-steps                  # Show allowed Gherkin patterns\nsi list-steps                        # Alias"
      },
      {
        "title": "Testing Commands",
        "body": "# Graph-based testing (routes graph)\nsi test graph                        # All modes: visual, perf, a11y, SEO\nsi test graph --modes visual,performance\nsi test graph --start-url /dashboard\n\n# Shortcuts\nsi test visual                       # Visual regression (screenshots)\nsi test performance                  # Core Web Vitals, Lighthouse\nsi test a11y                         # WCAG compliance (axe-core)\n\n# Record test video\nsi test record <test-file>           # Playwright video capture\nsi record <test-file>                # Alias"
      },
      {
        "title": "Project Setup",
        "body": "# Initialize in Next.js project\nsi init                              # Current directory\nsi init ./my-project                 # Specific directory\nsi init --scan-only                  # Report only, no generation\nsi init --inject                     # Inject data-testid into components\nsi init --migrate                    # Migrate imports to contracts\nsi init --dry-run                    # Preview changes\nsi init --revert                     # Restore from backups\n\n# Route migration\nsi migrate-routes                    # Migrate hardcoded strings → Routes"
      },
      {
        "title": "MCP Setup",
        "body": "# Fully automated MCP setup (zero manual steps)\nsi setup-mcp                         # Configure IDE + create server\nsi setup-mcp --force                 # Overwrite existing\nsi setup-mcp --skip-test             # Skip server startup test\nsi setup-mcp --manual                # Create files only, skip IDE config\n\n# Claude Code integration\nsi setup-claude                      # Install skills + agents"
      },
      {
        "title": "Utilities",
        "body": "si cache-tools <file>                # Cache @Tool decorators\nsi benchmark-cache                   # Test caching performance\nsi feedback                          # File GitHub issue"
      },
      {
        "title": "New Project Setup",
        "body": "cd my-nextjs-project\nsi init\nsi scan-routes\nsi scan-names\nsi setup-mcp"
      },
      {
        "title": "Pre-PR Validation",
        "body": "si validate --all\nsi test visual                       # Check for visual regressions\nsi test a11y                         # Accessibility compliance"
      },
      {
        "title": "Story-Driven Development",
        "body": "# 1. Write Gherkin feature\necho 'Feature: Login\n  Scenario: Valid credentials\n    Given I am on the login page\n    When I enter valid credentials\n    Then I should see the dashboard' > login.feature\n\n# 2. Validate\nsi story validate login.feature\n\n# 3. Create story implementation (.story.ts)\n# 4. Record demonstration\nsi story record login.story.ts\n\n# 5. Generate tests\nsi generate-story-tests login.feature"
      },
      {
        "title": "Contract-First Development",
        "body": "# Generate contracts from existing code\nsi scan-routes --git-commit\nsi scan-names --git-commit\n\n# Validate contracts stay in sync\nsi validate --routes ./src/routes/Routes.ts\nsi validate --names ./src/names/Components.ts"
      },
      {
        "title": "Integration with Other Tools",
        "body": "ToolRelationshipscTask management, project health — use sc for dev workfloworchAgent orchestration — si focuses on testing/contractsuniversal-commandsi uses universal-command pattern internally for CLI/API/MCP"
      },
      {
        "title": "Environment",
        "body": "Routes file: ./src/routes/Routes.ts (default)\nNames file: ./src/names/Components.ts (default)\nTests output: ./tests/generated/ (default)\nFramework: Next.js (default), React Router supported"
      }
    ],
    "body": "si - Supernal Interface CLI\n\nTest generation, contract scanning, story-based testing, and MCP setup for web applications.\n\nInstallation\nnpm install -g @supernal/interface\n\nQuick Reference\nContract Generation & Scanning\n# Scan Next.js pages → generate route contracts\nsi scan-routes\nsi scan-routes -p ./src/pages -o ./src/routes/Routes.ts\nsi scan-routes --framework nextjs --watch        # Watch mode\nsi scan-routes --git-commit                      # Auto-commit\n\n# Scan components → generate name contracts (data-testid)\nsi scan-names\nsi scan-names -c ./src/components -o ./src/names/Components.ts\nsi scan-names --flat                             # Components.Header vs Header.submitButton\n\n# iOS-specific scanning\nsi scan-ios-views      # SwiftUI views → component names\nsi scan-ios-routes     # SwiftUI navigation → route contracts\nsi scan-ios-names      # Swift accessibility identifiers\n\nValidation\nsi validate --all                    # Validate everything\nsi validate --routes <file>          # Validate route contracts\nsi validate --names <file>           # Validate name contracts\nsi validate --tools                  # Validate @Tool decorators\nsi validate --no-cache               # Force refresh\n\nsi validate-graph                    # Detect broken links, orphan routes\n\nTest Generation\n# From @Tool decorators\nsi generate-tests\nsi generate-tests --tools src/tools/index.ts\nsi generate-tests --include-e2e      # Add Playwright E2E tests\nsi generate-tests -f jest            # Framework: jest (default)\n\n# From Gherkin feature files\nsi generate-story-tests <path>       # Multi-platform test generation\n\nStory System (BDD Testing)\n# Record story videos\nsi story record <story-file>         # Record .story.ts execution\n\n# Test without video\nsi story test <feature-file>         # Run Gherkin scenarios\n\n# Validate before running\nsi story validate <feature-file>     # Check syntax, steps, components\n\n# List available steps\nsi story list-steps                  # Show allowed Gherkin patterns\nsi list-steps                        # Alias\n\nTesting Commands\n# Graph-based testing (routes graph)\nsi test graph                        # All modes: visual, perf, a11y, SEO\nsi test graph --modes visual,performance\nsi test graph --start-url /dashboard\n\n# Shortcuts\nsi test visual                       # Visual regression (screenshots)\nsi test performance                  # Core Web Vitals, Lighthouse\nsi test a11y                         # WCAG compliance (axe-core)\n\n# Record test video\nsi test record <test-file>           # Playwright video capture\nsi record <test-file>                # Alias\n\nProject Setup\n# Initialize in Next.js project\nsi init                              # Current directory\nsi init ./my-project                 # Specific directory\nsi init --scan-only                  # Report only, no generation\nsi init --inject                     # Inject data-testid into components\nsi init --migrate                    # Migrate imports to contracts\nsi init --dry-run                    # Preview changes\nsi init --revert                     # Restore from backups\n\n# Route migration\nsi migrate-routes                    # Migrate hardcoded strings → Routes\n\nMCP Setup\n# Fully automated MCP setup (zero manual steps)\nsi setup-mcp                         # Configure IDE + create server\nsi setup-mcp --force                 # Overwrite existing\nsi setup-mcp --skip-test             # Skip server startup test\nsi setup-mcp --manual                # Create files only, skip IDE config\n\n# Claude Code integration\nsi setup-claude                      # Install skills + agents\n\nUtilities\nsi cache-tools <file>                # Cache @Tool decorators\nsi benchmark-cache                   # Test caching performance\nsi feedback                          # File GitHub issue\n\nCommon Patterns\nNew Project Setup\ncd my-nextjs-project\nsi init\nsi scan-routes\nsi scan-names\nsi setup-mcp\n\nPre-PR Validation\nsi validate --all\nsi test visual                       # Check for visual regressions\nsi test a11y                         # Accessibility compliance\n\nStory-Driven Development\n# 1. Write Gherkin feature\necho 'Feature: Login\n  Scenario: Valid credentials\n    Given I am on the login page\n    When I enter valid credentials\n    Then I should see the dashboard' > login.feature\n\n# 2. Validate\nsi story validate login.feature\n\n# 3. Create story implementation (.story.ts)\n# 4. Record demonstration\nsi story record login.story.ts\n\n# 5. Generate tests\nsi generate-story-tests login.feature\n\nContract-First Development\n# Generate contracts from existing code\nsi scan-routes --git-commit\nsi scan-names --git-commit\n\n# Validate contracts stay in sync\nsi validate --routes ./src/routes/Routes.ts\nsi validate --names ./src/names/Components.ts\n\nIntegration with Other Tools\nTool\tRelationship\nsc\tTask management, project health — use sc for dev workflow\norch\tAgent orchestration — si focuses on testing/contracts\nuniversal-command\tsi uses universal-command pattern internally for CLI/API/MCP\nEnvironment\nRoutes file: ./src/routes/Routes.ts (default)\nNames file: ./src/names/Components.ts (default)\nTests output: ./tests/generated/ (default)\nFramework: Next.js (default), React Router supported"
  },
  "trust": {
    "sourceLabel": "tencent",
    "provenanceUrl": "https://clawhub.ai/ianderrington/si",
    "publisherUrl": "https://clawhub.ai/ianderrington/si",
    "owner": "ianderrington",
    "version": "1.0.0",
    "license": null,
    "verificationStatus": "Indexed source record"
  },
  "links": {
    "detailUrl": "https://openagent3.xyz/skills/si",
    "downloadUrl": "https://openagent3.xyz/downloads/si",
    "agentUrl": "https://openagent3.xyz/skills/si/agent",
    "manifestUrl": "https://openagent3.xyz/skills/si/agent.json",
    "briefUrl": "https://openagent3.xyz/skills/si/agent.md"
  }
}