From 4601e36c5232c1be3ace2ee86b239b85bd0fc9ec Mon Sep 17 00:00:00 2001 From: shijiashuai Date: Fri, 24 Apr 2026 02:51:35 +0800 Subject: [PATCH 1/6] chore(infra): streamline CI/CD workflows and add git hooks - Simplify GitHub Actions workflows (ci, pages, release) - Add pre-commit hook for code quality checks - Update .gitignore with BMad V6 directories and local AI overrides --- .githooks/pre-commit | 21 ++++ .github/workflows/ci.yml | 103 +++++------------- .github/workflows/pages.yml | 70 +++---------- .github/workflows/release.yml | 191 +++++++--------------------------- .gitignore | 10 +- 5 files changed, 108 insertions(+), 287 deletions(-) create mode 100755 .githooks/pre-commit diff --git a/.githooks/pre-commit b/.githooks/pre-commit new file mode 100755 index 0000000..90fef09 --- /dev/null +++ b/.githooks/pre-commit @@ -0,0 +1,21 @@ +#!/usr/bin/env bash + +set -euo pipefail + +repo_root="$(git rev-parse --show-toplevel)" +cd "$repo_root" + +mapfile -t source_files < <( + git diff --cached --name-only --diff-filter=ACMR | grep -E '\.(cpp|h|cu|cuh)$' || true +) + +if [ "${#source_files[@]}" -eq 0 ]; then + exit 0 +fi + +if ! command -v clang-format-18 >/dev/null 2>&1; then + echo "pre-commit: clang-format-18 not found; skipping format check" >&2 + exit 0 +fi + +clang-format-18 --dry-run --Werror "${source_files[@]}" diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 6366f28..10577ac 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -1,23 +1,21 @@ name: CI on: + pull_request: + branches: [master, main] push: - branches: [main, master] + branches: [master, main] paths-ignore: - - '**.md' - - 'docs/**' - - 'changelog/**' + - '**/*.md' - 'website/**' - '.github/workflows/pages.yml' - pull_request: - branches: [main, master] workflow_dispatch: permissions: contents: read concurrency: - group: ci-${{ github.workflow }}-${{ github.ref }} + group: ci-${{ github.ref }} cancel-in-progress: true env: @@ -25,22 +23,19 @@ env: FORCE_JAVASCRIPT_ACTIONS_TO_NODE24: true jobs: - format-check: - name: Format Check + format: + name: Format runs-on: ubuntu-latest - if: github.event_name != 'workflow_dispatch' steps: - name: Checkout uses: actions/checkout@v4 - with: - token: ${{ secrets.GITHUB_TOKEN }} - name: Install clang-format run: | sudo apt-get update sudo apt-get install -y clang-format-18 - - name: Format C/C++/CUDA files + - name: Check formatting run: | find . -type f \( -name '*.cpp' -o -name '*.h' -o -name '*.cu' -o -name '*.cuh' \) \ ! -path './build/*' \ @@ -49,34 +44,18 @@ jobs: ! -path './vendor/*' \ ! -path './external/*' \ ! -path './.kiro/*' \ - | xargs clang-format-18 -i - - - name: Commit formatting changes - if: github.event_name == 'push' - run: | - git config user.name "github-actions[bot]" - git config user.email "github-actions[bot]@users.noreply.github.com" - git add -A - git diff --staged --quiet || git commit -m "style: auto-format C/C++/CUDA files [skip ci]" - - build: - name: Build (${{ matrix.os }}) - runs-on: ${{ matrix.os }} - needs: [format-check] - if: always() && (needs.format-check.result == 'success' || needs.format-check.result == 'skipped') - strategy: - fail-fast: false - matrix: - include: - - os: ubuntu-22.04 + | xargs clang-format-18 --dry-run --Werror + build-test: + name: Build and Test + runs-on: ubuntu-22.04 + needs: format steps: - name: Checkout uses: actions/checkout@v4 - - name: Setup CUDA Environment + - name: Setup GCC and CUDA run: | - # Install GCC 10 for CUDA compatibility (GCC 11 has issues with nvcc) sudo apt-get update sudo apt-get install -y gcc-10 g++-10 sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-10 100 @@ -84,42 +63,26 @@ jobs: sudo update-alternatives --install /usr/bin/cc cc /usr/bin/gcc 30 sudo update-alternatives --install /usr/bin/c++ c++ /usr/bin/g++ 30 - # Check for pre-installed CUDA - if command -v nvcc &> /dev/null; then - echo "nvcc already in PATH" + if command -v nvcc >/dev/null 2>&1; then nvcc --version elif [ -d "/usr/local/cuda" ]; then - echo "CUDA_HOME=/usr/local/cuda" >> $GITHUB_ENV - echo "/usr/local/cuda/bin" >> $GITHUB_PATH - echo "CUDACXX=/usr/local/cuda/bin/nvcc" >> $GITHUB_ENV + echo "CUDA_HOME=/usr/local/cuda" >> "$GITHUB_ENV" + echo "/usr/local/cuda/bin" >> "$GITHUB_PATH" + echo "CUDACXX=/usr/local/cuda/bin/nvcc" >> "$GITHUB_ENV" nvcc --version elif [ -d "/usr/lib/nvidia-cuda-toolkit" ]; then - echo "CUDA_HOME=/usr/lib/nvidia-cuda-toolkit" >> $GITHUB_ENV - echo "/usr/lib/nvidia-cuda-toolkit/bin" >> $GITHUB_PATH - echo "CUDACXX=/usr/lib/nvidia-cuda-toolkit/bin/nvcc" >> $GITHUB_ENV + echo "CUDA_HOME=/usr/lib/nvidia-cuda-toolkit" >> "$GITHUB_ENV" + echo "/usr/lib/nvidia-cuda-toolkit/bin" >> "$GITHUB_PATH" + echo "CUDACXX=/usr/lib/nvidia-cuda-toolkit/bin/nvcc" >> "$GITHUB_ENV" nvcc --version else - echo "CUDA not found, installing..." sudo apt-get install -y nvidia-cuda-toolkit - echo "CUDA_HOME=/usr/lib/nvidia-cuda-toolkit" >> $GITHUB_ENV - echo "/usr/lib/nvidia-cuda-toolkit/bin" >> $GITHUB_PATH - echo "CUDACXX=/usr/lib/nvidia-cuda-toolkit/bin/nvcc" >> $GITHUB_ENV + echo "CUDA_HOME=/usr/lib/nvidia-cuda-toolkit" >> "$GITHUB_ENV" + echo "/usr/lib/nvidia-cuda-toolkit/bin" >> "$GITHUB_PATH" + echo "CUDACXX=/usr/lib/nvidia-cuda-toolkit/bin/nvcc" >> "$GITHUB_ENV" nvcc --version fi - # Set CUDA host compiler to GCC 10 (must be set before running cmake) - echo "CUDAHOSTCXX=/usr/bin/g++-10" >> $GITHUB_ENV - - # Verify GCC version - echo "Using GCC version:" - gcc --version - - - name: Setup ccache - uses: hendrikmuhs/ccache-action@v1.2 - with: - key: ${{ runner.os }}-cuda-build - max-size: 500M - - name: Configure CMake run: | cmake -S . -B build \ @@ -128,19 +91,7 @@ jobs: -DBUILD_TESTS=ON - name: Build - run: cmake --build build -j$(nproc) - - - name: Run Tests - working-directory: build - run: ctest --output-on-failure --timeout 300 + run: cmake --build build -j"$(nproc)" - ci-status: - name: CI Status - runs-on: ubuntu-latest - needs: [format-check, build] - if: always() && (needs.format-check.result == 'success' || needs.format-check.result == 'skipped') && needs.build.result == 'success' - steps: - - name: Check Status - run: | - echo "::notice::All tests passed" - echo "CI passed successfully" + - name: Run tests + run: ctest --test-dir build --output-on-failure --timeout 300 diff --git a/.github/workflows/pages.yml b/.github/workflows/pages.yml index 8910edc..94b0fc3 100644 --- a/.github/workflows/pages.yml +++ b/.github/workflows/pages.yml @@ -1,17 +1,12 @@ -# ═══════════════════════════════════════════════════════════════ -# Tiny-LLM GitHub Pages - Production Deployment -# Features: PWA, Modern Theme, Search Optimization -# ═══════════════════════════════════════════════════════════════ - name: GitHub Pages on: - push: + pull_request: branches: [master, main] paths: - 'website/**' - '.github/workflows/pages.yml' - pull_request: + push: branches: [master, main] paths: - 'website/**' @@ -31,17 +26,12 @@ env: FORCE_JAVASCRIPT_ACTIONS_TO_NODE24: true jobs: - # ═══════════════════════════════════════════════════════════════ - # BUILD JOB - # ═══════════════════════════════════════════════════════════════ build: name: Build Pages runs-on: ubuntu-latest steps: - - name: Checkout repository + - name: Checkout uses: actions/checkout@v4 - with: - fetch-depth: 0 - name: Setup Ruby uses: ruby/setup-ruby@v1 @@ -49,7 +39,7 @@ jobs: ruby-version: '3.3' bundler-cache: false - - name: Install dependencies + - name: Install site dependencies working-directory: website run: bundle install @@ -57,62 +47,32 @@ jobs: id: pages uses: actions/configure-pages@v5 - - name: Build site with Jekyll + - name: Build site working-directory: website + env: + JEKYLL_ENV: production + JEKYLL_GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} run: | bundle exec jekyll build \ --baseurl "${{ steps.pages.outputs.base_path }}" \ --destination ../_site \ --trace - env: - JEKYLL_ENV: production - JEKYLL_GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - - - name: Verify build output - run: | - echo "Verifying build output..." - test -d ./_site || { echo "Error: _site directory not found"; exit 1; } - test -f ./_site/index.html || echo "Warning: index.html not found" - echo "Build successful!" - ls -la ./_site/ | head -20 + test -f ../_site/index.html - name: Upload Pages artifact uses: actions/upload-pages-artifact@v3 with: path: ./_site - # ═══════════════════════════════════════════════════════════════ - # DEPLOY JOB - # ═══════════════════════════════════════════════════════════════ deploy: - name: Deploy to GitHub Pages + name: Deploy Pages if: github.event_name != 'pull_request' - environment: - name: github-pages - url: ${{ steps.deploy.outputs.page_url }} runs-on: ubuntu-latest needs: build + environment: + name: github-pages + url: ${{ steps.deployment.outputs.page_url }} steps: - - name: Deploy to GitHub Pages - id: deploy + - name: Deploy + id: deployment uses: actions/deploy-pages@v4 - with: - token: ${{ secrets.GITHUB_TOKEN }} - - # ═══════════════════════════════════════════════════════════════ - # VALIDATION JOB (PR only) - # ═══════════════════════════════════════════════════════════════ - validate: - name: Validate Build - if: github.event_name == 'pull_request' - runs-on: ubuntu-latest - needs: build - steps: - - name: Download built artifact - uses: actions/download-artifact@v4 - with: - name: github-pages - path: ./_site - - - name: List built files - run: ls -laR ./_site/ diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 503f90c..63c6844 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -4,96 +4,47 @@ on: push: tags: - 'v*.*.*' - workflow_dispatch: - inputs: - version: - description: 'Release version (e.g., v2.0.2)' - required: true - type: string permissions: contents: write - packages: write env: FORCE_JAVASCRIPT_ACTIONS_TO_NODE24: true jobs: - validate: - name: Validate Release - runs-on: ubuntu-latest - outputs: - version: ${{ steps.version.outputs.version }} - tag: ${{ steps.version.outputs.tag }} - steps: - - name: Checkout - uses: actions/checkout@v4 - - - name: Determine Version - id: version - run: | - if [[ "${{ github.event_name }}" == "workflow_dispatch" ]]; then - VERSION="${{ github.event.inputs.version }}" - else - VERSION="${GITHUB_REF#refs/tags/}" - fi - # Validate version format - if [[ ! "$VERSION" =~ ^v[0-9]+\.[0-9]+\.[0-9]+$ ]]; then - echo "::error::Invalid version format: $VERSION (expected vX.Y.Z)" - exit 1 - fi - echo "version=$VERSION" >> "$GITHUB_OUTPUT" - echo "tag=$VERSION" >> "$GITHUB_OUTPUT" - echo "Version: $VERSION" - - - name: Check Tag Exists - if: github.event_name == 'workflow_dispatch' - run: | - git fetch --tags - if git tag | grep -q "^${{ steps.version.outputs.tag }}$"; then - echo "::error::Tag ${{ steps.version.outputs.tag }} already exists" - exit 1 - fi - - - name: Create Tag (if workflow_dispatch) - if: github.event_name == 'workflow_dispatch' - run: | - git config user.name "github-actions[bot]" - git config user.email "github-actions[bot]@users.noreply.github.com" - git tag -a ${{ steps.version.outputs.tag }} -m "Release ${{ steps.version.outputs.version }}" - git push origin ${{ steps.version.outputs.tag }} - build: name: Build Release Artifacts - needs: validate runs-on: ubuntu-22.04 steps: - name: Checkout uses: actions/checkout@v4 - - name: Setup CUDA Environment + - name: Setup GCC and CUDA run: | - # Check for pre-installed CUDA - if command -v nvcc &> /dev/null; then - echo "nvcc already in PATH" + sudo apt-get update + sudo apt-get install -y gcc-10 g++-10 + sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-10 100 + sudo update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-10 100 + sudo update-alternatives --install /usr/bin/cc cc /usr/bin/gcc 30 + sudo update-alternatives --install /usr/bin/c++ c++ /usr/bin/g++ 30 + + if command -v nvcc >/dev/null 2>&1; then nvcc --version elif [ -d "/usr/local/cuda" ]; then - echo "CUDA_HOME=/usr/local/cuda" >> $GITHUB_ENV - echo "/usr/local/cuda/bin" >> $GITHUB_PATH - echo "CUDACXX=/usr/local/cuda/bin/nvcc" >> $GITHUB_ENV + echo "CUDA_HOME=/usr/local/cuda" >> "$GITHUB_ENV" + echo "/usr/local/cuda/bin" >> "$GITHUB_PATH" + echo "CUDACXX=/usr/local/cuda/bin/nvcc" >> "$GITHUB_ENV" nvcc --version elif [ -d "/usr/lib/nvidia-cuda-toolkit" ]; then - echo "CUDA_HOME=/usr/lib/nvidia-cuda-toolkit" >> $GITHUB_ENV - echo "/usr/lib/nvidia-cuda-toolkit/bin" >> $GITHUB_PATH - echo "CUDACXX=/usr/lib/nvidia-cuda-toolkit/bin/nvcc" >> $GITHUB_ENV + echo "CUDA_HOME=/usr/lib/nvidia-cuda-toolkit" >> "$GITHUB_ENV" + echo "/usr/lib/nvidia-cuda-toolkit/bin" >> "$GITHUB_PATH" + echo "CUDACXX=/usr/lib/nvidia-cuda-toolkit/bin/nvcc" >> "$GITHUB_ENV" nvcc --version else - echo "CUDA not found, installing..." - sudo apt-get update sudo apt-get install -y nvidia-cuda-toolkit - echo "CUDA_HOME=/usr/lib/nvidia-cuda-toolkit" >> $GITHUB_ENV - echo "/usr/lib/nvidia-cuda-toolkit/bin" >> $GITHUB_PATH - echo "CUDACXX=/usr/lib/nvidia-cuda-toolkit/bin/nvcc" >> $GITHUB_ENV + echo "CUDA_HOME=/usr/lib/nvidia-cuda-toolkit" >> "$GITHUB_ENV" + echo "/usr/lib/nvidia-cuda-toolkit/bin" >> "$GITHUB_PATH" + echo "CUDACXX=/usr/lib/nvidia-cuda-toolkit/bin/nvcc" >> "$GITHUB_ENV" nvcc --version fi @@ -101,116 +52,46 @@ jobs: run: | cmake -S . -B build \ -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_CUDA_HOST_COMPILER=/usr/bin/g++-10 \ -DBUILD_TESTS=ON - name: Build - run: cmake --build build -j$(nproc) + run: cmake --build build -j"$(nproc)" - - name: Run Tests - working-directory: build - run: ctest --output-on-failure --timeout 300 + - name: Run tests + run: ctest --test-dir build --output-on-failure --timeout 300 - - name: Prepare Release Artifacts + - name: Package release run: | + version="${GITHUB_REF#refs/tags/}" mkdir -p release cp build/tiny_llm_demo release/ 2>/dev/null || true - cp -r include release/ 2>/dev/null || true - cp CMakeLists.txt release/ 2>/dev/null || true - tar -czvf tiny-llm-${{ needs.validate.outputs.version }}-linux-x64.tar.gz -C release . 2>/dev/null || echo "No binaries to package" + cp -r include release/ + cp CMakeLists.txt release/ + tar -czf "tiny-llm-${version}-linux-x64.tar.gz" -C release . - - name: Upload Artifacts + - name: Upload artifacts uses: actions/upload-artifact@v4 with: name: release-artifacts - path: | - *.tar.gz + path: tiny-llm-*.tar.gz retention-days: 7 - release: - name: Create Release - needs: [validate, build] + publish: + name: Publish Release runs-on: ubuntu-latest + needs: build steps: - - name: Checkout - uses: actions/checkout@v4 - - - name: Download Artifacts + - name: Download artifacts uses: actions/download-artifact@v4 with: name: release-artifacts path: ./artifacts - - name: Generate Release Notes - id: notes - run: | - VERSION="${{ needs.validate.outputs.version }}" - VER_NUM="${VERSION#v}" - - CHANGELOG_EN="website/changelog/en/${VER_NUM}.md" - CHANGELOG_ZH="website/changelog/zh/${VER_NUM}.md" - - { - echo "release_notes<> "$GITHUB_OUTPUT" - - - name: Create GitHub Release + - name: Create GitHub release uses: softprops/action-gh-release@v2 with: - tag_name: ${{ needs.validate.outputs.tag }} - name: Tiny-LLM ${{ needs.validate.outputs.version }} - body: ${{ steps.notes.outputs.release_notes }} - draft: false - prerelease: ${{ contains(needs.validate.outputs.version, '-rc') || contains(needs.validate.outputs.version, '-beta') || contains(needs.validate.outputs.version, '-alpha') }} - files: | - artifacts/*.tar.gz + files: artifacts/*.tar.gz + generate_release_notes: true env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} diff --git a/.gitignore b/.gitignore index ab5839c..4350473 100644 --- a/.gitignore +++ b/.gitignore @@ -43,10 +43,14 @@ Makefile .vscode/launch.json .vscode/tasks.json .vscode/.ropeproject +compile_commands.json *.swp *.swo *~ +# Local AI overrides +CLAUDE.local.md + # OS generated files .DS_Store .DS_Store? @@ -83,4 +87,8 @@ coverage/ # Profiling data *.prof -*.nvprof \ No newline at end of file +*.nvprof + +# BMad Method V6 +_bmad/ +_bmad-output/ From 200c46a7272ffb6398e5db47ab9f6e5fbe59f948 Mon Sep 17 00:00:00 2001 From: shijiashuai Date: Fri, 24 Apr 2026 02:51:42 +0800 Subject: [PATCH 2/6] feat(ai-tools): add BMad V6, OpenSpec workflow and Claude Code integration - Install BMad Method V6 with 41 Claude Code skills - Add OpenSpec change management workflow and specs - Configure Claude Code with project-specific instructions - Add VSCode extension recommendations - Add GitHub Copilot instructions - Configure clangd for C++ language server --- .clangd | 8 + .claude/commands/opsx/apply.md | 152 ++ .claude/commands/opsx/archive.md | 157 ++ .claude/commands/opsx/explore.md | 173 ++ .claude/commands/opsx/propose.md | 106 ++ .../skills/bmad-advanced-elicitation/SKILL.md | 136 ++ .../bmad-advanced-elicitation/methods.csv | 51 + .claude/skills/bmad-agent-analyst/SKILL.md | 59 + .../bmad-skill-manifest.yaml | 11 + .claude/skills/bmad-agent-architect/SKILL.md | 54 + .../bmad-skill-manifest.yaml | 11 + .claude/skills/bmad-agent-dev/SKILL.md | 69 + .../bmad-agent-dev/bmad-skill-manifest.yaml | 11 + .claude/skills/bmad-agent-pm/SKILL.md | 59 + .../bmad-agent-pm/bmad-skill-manifest.yaml | 11 + .../skills/bmad-agent-tech-writer/SKILL.md | 57 + .../bmad-skill-manifest.yaml | 11 + .../bmad-agent-tech-writer/explain-concept.md | 20 + .../bmad-agent-tech-writer/mermaid-gen.md | 20 + .../bmad-agent-tech-writer/validate-doc.md | 19 + .../bmad-agent-tech-writer/write-document.md | 20 + .../skills/bmad-agent-ux-designer/SKILL.md | 55 + .../bmad-skill-manifest.yaml | 11 + .claude/skills/bmad-brainstorming/SKILL.md | 6 + .../bmad-brainstorming/brain-methods.csv | 62 + .../steps/step-01-session-setup.md | 214 +++ .../steps/step-01b-continue.md | 124 ++ .../steps/step-02a-user-selected.md | 229 +++ .../steps/step-02b-ai-recommended.md | 239 +++ .../steps/step-02c-random-selection.md | 211 +++ .../steps/step-02d-progressive-flow.md | 266 +++ .../steps/step-03-technique-execution.md | 401 +++++ .../steps/step-04-idea-organization.md | 305 ++++ .claude/skills/bmad-brainstorming/template.md | 15 + .claude/skills/bmad-brainstorming/workflow.md | 53 + .../SKILL.md | 6 + .../steps/step-01-document-discovery.md | 179 ++ .../steps/step-02-prd-analysis.md | 168 ++ .../steps/step-03-epic-coverage-validation.md | 169 ++ .../steps/step-04-ux-alignment.md | 129 ++ .../steps/step-05-epic-quality-review.md | 241 +++ .../steps/step-06-final-assessment.md | 126 ++ .../templates/readiness-report-template.md | 4 + .../workflow.md | 47 + .../skills/bmad-checkpoint-preview/SKILL.md | 29 + .../bmad-checkpoint-preview/generate-trail.md | 38 + .../step-01-orientation.md | 105 ++ .../step-02-walkthrough.md | 89 + .../step-03-detail-pass.md | 106 ++ .../step-04-testing.md | 74 + .../bmad-checkpoint-preview/step-05-wrapup.md | 24 + .claude/skills/bmad-code-review/SKILL.md | 6 + .../steps/step-01-gather-context.md | 85 + .../bmad-code-review/steps/step-02-review.md | 34 + .../bmad-code-review/steps/step-03-triage.md | 49 + .../bmad-code-review/steps/step-04-present.md | 129 ++ .claude/skills/bmad-code-review/workflow.md | 55 + .claude/skills/bmad-correct-course/SKILL.md | 6 + .../skills/bmad-correct-course/checklist.md | 288 ++++ .../skills/bmad-correct-course/workflow.md | 267 +++ .../skills/bmad-create-architecture/SKILL.md | 6 + .../architecture-decision-template.md | 12 + .../data/domain-complexity.csv | 13 + .../data/project-types.csv | 7 + .../steps/step-01-init.md | 153 ++ .../steps/step-01b-continue.md | 173 ++ .../steps/step-02-context.md | 224 +++ .../steps/step-03-starter.md | 329 ++++ .../steps/step-04-decisions.md | 318 ++++ .../steps/step-05-patterns.md | 359 ++++ .../steps/step-06-structure.md | 379 +++++ .../steps/step-07-validation.md | 359 ++++ .../steps/step-08-complete.md | 76 + .../bmad-create-architecture/workflow.md | 32 + .../bmad-create-epics-and-stories/SKILL.md | 6 + .../steps/step-01-validate-prerequisites.md | 255 +++ .../steps/step-02-design-epics.md | 212 +++ .../steps/step-03-create-stories.md | 255 +++ .../steps/step-04-final-validation.md | 131 ++ .../templates/epics-template.md | 61 + .../bmad-create-epics-and-stories/workflow.md | 51 + .claude/skills/bmad-create-prd/SKILL.md | 6 + .../data/domain-complexity.csv | 15 + .../bmad-create-prd/data/prd-purpose.md | 197 +++ .../bmad-create-prd/data/project-types.csv | 11 + .../bmad-create-prd/steps-c/step-01-init.md | 178 ++ .../steps-c/step-01b-continue.md | 161 ++ .../steps-c/step-02-discovery.md | 208 +++ .../steps-c/step-02b-vision.md | 142 ++ .../steps-c/step-02c-executive-summary.md | 158 ++ .../steps-c/step-03-success.md | 214 +++ .../steps-c/step-04-journeys.md | 201 +++ .../bmad-create-prd/steps-c/step-05-domain.md | 194 +++ .../steps-c/step-06-innovation.md | 211 +++ .../steps-c/step-07-project-type.md | 222 +++ .../steps-c/step-08-scoping.md | 216 +++ .../steps-c/step-09-functional.md | 219 +++ .../steps-c/step-10-nonfunctional.md | 230 +++ .../bmad-create-prd/steps-c/step-11-polish.md | 221 +++ .../steps-c/step-12-complete.md | 115 ++ .../bmad-create-prd/templates/prd-template.md | 10 + .claude/skills/bmad-create-prd/workflow.md | 61 + .claude/skills/bmad-create-story/SKILL.md | 6 + .claude/skills/bmad-create-story/checklist.md | 357 ++++ .../bmad-create-story/discover-inputs.md | 88 + .claude/skills/bmad-create-story/template.md | 49 + .claude/skills/bmad-create-story/workflow.md | 380 +++++ .claude/skills/bmad-create-ux-design/SKILL.md | 6 + .../steps/step-01-init.md | 135 ++ .../steps/step-01b-continue.md | 127 ++ .../steps/step-02-discovery.md | 190 +++ .../steps/step-03-core-experience.md | 217 +++ .../steps/step-04-emotional-response.md | 220 +++ .../steps/step-05-inspiration.md | 235 +++ .../steps/step-06-design-system.md | 253 +++ .../steps/step-07-defining-experience.md | 255 +++ .../steps/step-08-visual-foundation.md | 225 +++ .../steps/step-09-design-directions.md | 225 +++ .../steps/step-10-user-journeys.md | 242 +++ .../steps/step-11-component-strategy.md | 249 +++ .../steps/step-12-ux-patterns.md | 238 +++ .../steps/step-13-responsive-accessibility.md | 265 +++ .../steps/step-14-complete.md | 171 ++ .../ux-design-template.md | 13 + .../skills/bmad-create-ux-design/workflow.md | 35 + .claude/skills/bmad-dev-story/SKILL.md | 6 + .claude/skills/bmad-dev-story/checklist.md | 80 + .claude/skills/bmad-dev-story/workflow.md | 450 +++++ .claude/skills/bmad-distillator/SKILL.md | 177 ++ .../agents/distillate-compressor.md | 116 ++ .../agents/round-trip-reconstructor.md | 68 + .../resources/compression-rules.md | 51 + .../resources/distillate-format-reference.md | 227 +++ .../resources/splitting-strategy.md | 78 + .../scripts/analyze_sources.py | 300 ++++ .../scripts/tests/test_analyze_sources.py | 204 +++ .claude/skills/bmad-document-project/SKILL.md | 6 + .../skills/bmad-document-project/checklist.md | 245 +++ .../documentation-requirements.csv | 12 + .../bmad-document-project/instructions.md | 128 ++ .../templates/deep-dive-template.md | 345 ++++ .../templates/index-template.md | 169 ++ .../templates/project-overview-template.md | 103 ++ .../templates/project-scan-report-schema.json | 160 ++ .../templates/source-tree-template.md | 135 ++ .../skills/bmad-document-project/workflow.md | 25 + .../workflows/deep-dive-instructions.md | 299 ++++ .../workflows/deep-dive-workflow.md | 34 + .../workflows/full-scan-instructions.md | 1107 ++++++++++++ .../workflows/full-scan-workflow.md | 34 + .claude/skills/bmad-domain-research/SKILL.md | 6 + .../domain-steps/step-01-init.md | 137 ++ .../domain-steps/step-02-domain-analysis.md | 229 +++ .../step-03-competitive-landscape.md | 238 +++ .../domain-steps/step-04-regulatory-focus.md | 206 +++ .../domain-steps/step-05-technical-trends.md | 234 +++ .../step-06-research-synthesis.md | 444 +++++ .../bmad-domain-research/research.template.md | 29 + .../skills/bmad-domain-research/workflow.md | 51 + .claude/skills/bmad-edit-prd/SKILL.md | 6 + .../skills/bmad-edit-prd/data/prd-purpose.md | 197 +++ .../steps-e/step-e-01-discovery.md | 242 +++ .../steps-e/step-e-01b-legacy-conversion.md | 204 +++ .../bmad-edit-prd/steps-e/step-e-02-review.md | 245 +++ .../bmad-edit-prd/steps-e/step-e-03-edit.md | 250 +++ .../steps-e/step-e-04-complete.md | 163 ++ .claude/skills/bmad-edit-prd/workflow.md | 62 + .../bmad-editorial-review-prose/SKILL.md | 86 + .../bmad-editorial-review-structure/SKILL.md | 179 ++ .../bmad-generate-project-context/SKILL.md | 6 + .../project-context-template.md | 21 + .../steps/step-01-discover.md | 186 +++ .../steps/step-02-generate.md | 321 ++++ .../steps/step-03-complete.md | 278 ++++ .../bmad-generate-project-context/workflow.md | 39 + .claude/skills/bmad-help/SKILL.md | 75 + .claude/skills/bmad-index-docs/SKILL.md | 66 + .claude/skills/bmad-market-research/SKILL.md | 6 + .../bmad-market-research/research.template.md | 29 + .../steps/step-01-init.md | 184 ++ .../steps/step-02-customer-behavior.md | 239 +++ .../steps/step-03-customer-pain-points.md | 251 +++ .../steps/step-04-customer-decisions.md | 261 +++ .../steps/step-05-competitive-analysis.md | 173 ++ .../steps/step-06-research-completion.md | 478 ++++++ .../skills/bmad-market-research/workflow.md | 51 + .claude/skills/bmad-party-mode/SKILL.md | 125 ++ .claude/skills/bmad-prfaq/SKILL.md | 96 ++ .../bmad-prfaq/agents/artifact-analyzer.md | 60 + .../bmad-prfaq/agents/web-researcher.md | 49 + .../bmad-prfaq/assets/prfaq-template.md | 62 + .claude/skills/bmad-prfaq/bmad-manifest.json | 16 + .../bmad-prfaq/references/customer-faq.md | 55 + .../bmad-prfaq/references/internal-faq.md | 51 + .../bmad-prfaq/references/press-release.md | 60 + .../skills/bmad-prfaq/references/verdict.md | 79 + .claude/skills/bmad-product-brief/SKILL.md | 82 + .../agents/artifact-analyzer.md | 60 + .../agents/opportunity-reviewer.md | 44 + .../agents/skeptic-reviewer.md | 44 + .../agents/web-researcher.md | 49 + .../bmad-product-brief/bmad-manifest.json | 17 + .../prompts/contextual-discovery.md | 57 + .../prompts/draft-and-review.md | 86 + .../bmad-product-brief/prompts/finalize.md | 75 + .../prompts/guided-elicitation.md | 70 + .../resources/brief-template.md | 60 + .../bmad-qa-generate-e2e-tests/SKILL.md | 6 + .../bmad-qa-generate-e2e-tests/checklist.md | 33 + .../bmad-qa-generate-e2e-tests/workflow.md | 136 ++ .claude/skills/bmad-quick-dev/SKILL.md | 6 + .../bmad-quick-dev/compile-epic-context.md | 62 + .../skills/bmad-quick-dev/spec-template.md | 88 + .../step-01-clarify-and-route.md | 91 + .claude/skills/bmad-quick-dev/step-02-plan.md | 47 + .../bmad-quick-dev/step-03-implement.md | 39 + .../skills/bmad-quick-dev/step-04-review.md | 49 + .../skills/bmad-quick-dev/step-05-present.md | 63 + .claude/skills/bmad-quick-dev/step-oneshot.md | 61 + .claude/skills/bmad-quick-dev/workflow.md | 75 + .claude/skills/bmad-retrospective/SKILL.md | 6 + .claude/skills/bmad-retrospective/workflow.md | 1479 +++++++++++++++++ .../bmad-review-adversarial-general/SKILL.md | 37 + .../bmad-review-edge-case-hunter/SKILL.md | 67 + .claude/skills/bmad-shard-doc/SKILL.md | 105 ++ .claude/skills/bmad-sprint-planning/SKILL.md | 6 + .../skills/bmad-sprint-planning/checklist.md | 33 + .../sprint-status-template.yaml | 56 + .../skills/bmad-sprint-planning/workflow.md | 263 +++ .claude/skills/bmad-sprint-status/SKILL.md | 6 + .claude/skills/bmad-sprint-status/workflow.md | 261 +++ .../skills/bmad-technical-research/SKILL.md | 6 + .../research.template.md | 29 + .../technical-steps/step-01-init.md | 137 ++ .../step-02-technical-overview.md | 239 +++ .../step-03-integration-patterns.md | 248 +++ .../step-04-architectural-patterns.md | 202 +++ .../step-05-implementation-research.md | 233 +++ .../step-06-research-synthesis.md | 487 ++++++ .../bmad-technical-research/workflow.md | 52 + .claude/skills/bmad-validate-prd/SKILL.md | 6 + .../data/domain-complexity.csv | 15 + .../bmad-validate-prd/data/prd-purpose.md | 197 +++ .../bmad-validate-prd/data/project-types.csv | 11 + .../steps-v/step-v-01-discovery.md | 221 +++ .../steps-v/step-v-02-format-detection.md | 188 +++ .../steps-v/step-v-02b-parity-check.md | 206 +++ .../steps-v/step-v-03-density-validation.md | 171 ++ .../step-v-04-brief-coverage-validation.md | 211 +++ .../step-v-05-measurability-validation.md | 225 +++ .../step-v-06-traceability-validation.md | 214 +++ ...-v-07-implementation-leakage-validation.md | 202 +++ .../step-v-08-domain-compliance-validation.md | 240 +++ .../step-v-09-project-type-validation.md | 260 +++ .../steps-v/step-v-10-smart-validation.md | 206 +++ .../step-v-11-holistic-quality-validation.md | 261 +++ .../step-v-12-completeness-validation.md | 239 +++ .../steps-v/step-v-13-report-complete.md | 229 +++ .claude/skills/bmad-validate-prd/workflow.md | 61 + .claude/skills/openspec-apply-change/SKILL.md | 156 ++ .../skills/openspec-archive-change/SKILL.md | 114 ++ .claude/skills/openspec-explore/SKILL.md | 288 ++++ .claude/skills/openspec-propose/SKILL.md | 110 ++ .claude/skills/verify/SKILL.md | 32 + .github/copilot-instructions.md | 38 + .vscode/extensions.json | 6 + CLAUDE.md | 56 + openspec/MIGRATION.md | 113 ++ .../archive/core-architecture/design.md | 148 ++ .../archive/core-architecture/proposal.md | 22 + .../initial-implementation/proposal.md | 22 + .../archive/initial-implementation/tasks.md | 106 ++ .../.openspec.yaml | 2 + .../normalize-archive-readiness/design.md | 127 ++ .../normalize-archive-readiness/proposal.md | 30 + .../specs/ai-assisted-development/spec.md | 34 + .../specs/project-presentation/spec.md | 34 + .../specs/repository-governance/spec.md | 45 + .../normalize-archive-readiness/tasks.md | 36 + openspec/config.yaml | 25 + openspec/schemas/api/inference-engine.yaml | 77 + openspec/schemas/db/schema-v1.dbml | 178 ++ openspec/specs/inference-engine/spec.md | 245 +++ 283 files changed, 38484 insertions(+) create mode 100644 .clangd create mode 100644 .claude/commands/opsx/apply.md create mode 100644 .claude/commands/opsx/archive.md create mode 100644 .claude/commands/opsx/explore.md create mode 100644 .claude/commands/opsx/propose.md create mode 100644 .claude/skills/bmad-advanced-elicitation/SKILL.md create mode 100644 .claude/skills/bmad-advanced-elicitation/methods.csv create mode 100644 .claude/skills/bmad-agent-analyst/SKILL.md create mode 100644 .claude/skills/bmad-agent-analyst/bmad-skill-manifest.yaml create mode 100644 .claude/skills/bmad-agent-architect/SKILL.md create mode 100644 .claude/skills/bmad-agent-architect/bmad-skill-manifest.yaml create mode 100644 .claude/skills/bmad-agent-dev/SKILL.md create mode 100644 .claude/skills/bmad-agent-dev/bmad-skill-manifest.yaml create mode 100644 .claude/skills/bmad-agent-pm/SKILL.md create mode 100644 .claude/skills/bmad-agent-pm/bmad-skill-manifest.yaml create mode 100644 .claude/skills/bmad-agent-tech-writer/SKILL.md create mode 100644 .claude/skills/bmad-agent-tech-writer/bmad-skill-manifest.yaml create mode 100644 .claude/skills/bmad-agent-tech-writer/explain-concept.md create mode 100644 .claude/skills/bmad-agent-tech-writer/mermaid-gen.md create mode 100644 .claude/skills/bmad-agent-tech-writer/validate-doc.md create mode 100644 .claude/skills/bmad-agent-tech-writer/write-document.md create mode 100644 .claude/skills/bmad-agent-ux-designer/SKILL.md create mode 100644 .claude/skills/bmad-agent-ux-designer/bmad-skill-manifest.yaml create mode 100644 .claude/skills/bmad-brainstorming/SKILL.md create mode 100644 .claude/skills/bmad-brainstorming/brain-methods.csv create mode 100644 .claude/skills/bmad-brainstorming/steps/step-01-session-setup.md create mode 100644 .claude/skills/bmad-brainstorming/steps/step-01b-continue.md create mode 100644 .claude/skills/bmad-brainstorming/steps/step-02a-user-selected.md create mode 100644 .claude/skills/bmad-brainstorming/steps/step-02b-ai-recommended.md create mode 100644 .claude/skills/bmad-brainstorming/steps/step-02c-random-selection.md create mode 100644 .claude/skills/bmad-brainstorming/steps/step-02d-progressive-flow.md create mode 100644 .claude/skills/bmad-brainstorming/steps/step-03-technique-execution.md create mode 100644 .claude/skills/bmad-brainstorming/steps/step-04-idea-organization.md create mode 100644 .claude/skills/bmad-brainstorming/template.md create mode 100644 .claude/skills/bmad-brainstorming/workflow.md create mode 100644 .claude/skills/bmad-check-implementation-readiness/SKILL.md create mode 100644 .claude/skills/bmad-check-implementation-readiness/steps/step-01-document-discovery.md create mode 100644 .claude/skills/bmad-check-implementation-readiness/steps/step-02-prd-analysis.md create mode 100644 .claude/skills/bmad-check-implementation-readiness/steps/step-03-epic-coverage-validation.md create mode 100644 .claude/skills/bmad-check-implementation-readiness/steps/step-04-ux-alignment.md create mode 100644 .claude/skills/bmad-check-implementation-readiness/steps/step-05-epic-quality-review.md create mode 100644 .claude/skills/bmad-check-implementation-readiness/steps/step-06-final-assessment.md create mode 100644 .claude/skills/bmad-check-implementation-readiness/templates/readiness-report-template.md create mode 100644 .claude/skills/bmad-check-implementation-readiness/workflow.md create mode 100644 .claude/skills/bmad-checkpoint-preview/SKILL.md create mode 100644 .claude/skills/bmad-checkpoint-preview/generate-trail.md create mode 100644 .claude/skills/bmad-checkpoint-preview/step-01-orientation.md create mode 100644 .claude/skills/bmad-checkpoint-preview/step-02-walkthrough.md create mode 100644 .claude/skills/bmad-checkpoint-preview/step-03-detail-pass.md create mode 100644 .claude/skills/bmad-checkpoint-preview/step-04-testing.md create mode 100644 .claude/skills/bmad-checkpoint-preview/step-05-wrapup.md create mode 100644 .claude/skills/bmad-code-review/SKILL.md create mode 100644 .claude/skills/bmad-code-review/steps/step-01-gather-context.md create mode 100644 .claude/skills/bmad-code-review/steps/step-02-review.md create mode 100644 .claude/skills/bmad-code-review/steps/step-03-triage.md create mode 100644 .claude/skills/bmad-code-review/steps/step-04-present.md create mode 100644 .claude/skills/bmad-code-review/workflow.md create mode 100644 .claude/skills/bmad-correct-course/SKILL.md create mode 100644 .claude/skills/bmad-correct-course/checklist.md create mode 100644 .claude/skills/bmad-correct-course/workflow.md create mode 100644 .claude/skills/bmad-create-architecture/SKILL.md create mode 100644 .claude/skills/bmad-create-architecture/architecture-decision-template.md create mode 100644 .claude/skills/bmad-create-architecture/data/domain-complexity.csv create mode 100644 .claude/skills/bmad-create-architecture/data/project-types.csv create mode 100644 .claude/skills/bmad-create-architecture/steps/step-01-init.md create mode 100644 .claude/skills/bmad-create-architecture/steps/step-01b-continue.md create mode 100644 .claude/skills/bmad-create-architecture/steps/step-02-context.md create mode 100644 .claude/skills/bmad-create-architecture/steps/step-03-starter.md create mode 100644 .claude/skills/bmad-create-architecture/steps/step-04-decisions.md create mode 100644 .claude/skills/bmad-create-architecture/steps/step-05-patterns.md create mode 100644 .claude/skills/bmad-create-architecture/steps/step-06-structure.md create mode 100644 .claude/skills/bmad-create-architecture/steps/step-07-validation.md create mode 100644 .claude/skills/bmad-create-architecture/steps/step-08-complete.md create mode 100644 .claude/skills/bmad-create-architecture/workflow.md create mode 100644 .claude/skills/bmad-create-epics-and-stories/SKILL.md create mode 100644 .claude/skills/bmad-create-epics-and-stories/steps/step-01-validate-prerequisites.md create mode 100644 .claude/skills/bmad-create-epics-and-stories/steps/step-02-design-epics.md create mode 100644 .claude/skills/bmad-create-epics-and-stories/steps/step-03-create-stories.md create mode 100644 .claude/skills/bmad-create-epics-and-stories/steps/step-04-final-validation.md create mode 100644 .claude/skills/bmad-create-epics-and-stories/templates/epics-template.md create mode 100644 .claude/skills/bmad-create-epics-and-stories/workflow.md create mode 100644 .claude/skills/bmad-create-prd/SKILL.md create mode 100644 .claude/skills/bmad-create-prd/data/domain-complexity.csv create mode 100644 .claude/skills/bmad-create-prd/data/prd-purpose.md create mode 100644 .claude/skills/bmad-create-prd/data/project-types.csv create mode 100644 .claude/skills/bmad-create-prd/steps-c/step-01-init.md create mode 100644 .claude/skills/bmad-create-prd/steps-c/step-01b-continue.md create mode 100644 .claude/skills/bmad-create-prd/steps-c/step-02-discovery.md create mode 100644 .claude/skills/bmad-create-prd/steps-c/step-02b-vision.md create mode 100644 .claude/skills/bmad-create-prd/steps-c/step-02c-executive-summary.md create mode 100644 .claude/skills/bmad-create-prd/steps-c/step-03-success.md create mode 100644 .claude/skills/bmad-create-prd/steps-c/step-04-journeys.md create mode 100644 .claude/skills/bmad-create-prd/steps-c/step-05-domain.md create mode 100644 .claude/skills/bmad-create-prd/steps-c/step-06-innovation.md create mode 100644 .claude/skills/bmad-create-prd/steps-c/step-07-project-type.md create mode 100644 .claude/skills/bmad-create-prd/steps-c/step-08-scoping.md create mode 100644 .claude/skills/bmad-create-prd/steps-c/step-09-functional.md create mode 100644 .claude/skills/bmad-create-prd/steps-c/step-10-nonfunctional.md create mode 100644 .claude/skills/bmad-create-prd/steps-c/step-11-polish.md create mode 100644 .claude/skills/bmad-create-prd/steps-c/step-12-complete.md create mode 100644 .claude/skills/bmad-create-prd/templates/prd-template.md create mode 100644 .claude/skills/bmad-create-prd/workflow.md create mode 100644 .claude/skills/bmad-create-story/SKILL.md create mode 100644 .claude/skills/bmad-create-story/checklist.md create mode 100644 .claude/skills/bmad-create-story/discover-inputs.md create mode 100644 .claude/skills/bmad-create-story/template.md create mode 100644 .claude/skills/bmad-create-story/workflow.md create mode 100644 .claude/skills/bmad-create-ux-design/SKILL.md create mode 100644 .claude/skills/bmad-create-ux-design/steps/step-01-init.md create mode 100644 .claude/skills/bmad-create-ux-design/steps/step-01b-continue.md create mode 100644 .claude/skills/bmad-create-ux-design/steps/step-02-discovery.md create mode 100644 .claude/skills/bmad-create-ux-design/steps/step-03-core-experience.md create mode 100644 .claude/skills/bmad-create-ux-design/steps/step-04-emotional-response.md create mode 100644 .claude/skills/bmad-create-ux-design/steps/step-05-inspiration.md create mode 100644 .claude/skills/bmad-create-ux-design/steps/step-06-design-system.md create mode 100644 .claude/skills/bmad-create-ux-design/steps/step-07-defining-experience.md create mode 100644 .claude/skills/bmad-create-ux-design/steps/step-08-visual-foundation.md create mode 100644 .claude/skills/bmad-create-ux-design/steps/step-09-design-directions.md create mode 100644 .claude/skills/bmad-create-ux-design/steps/step-10-user-journeys.md create mode 100644 .claude/skills/bmad-create-ux-design/steps/step-11-component-strategy.md create mode 100644 .claude/skills/bmad-create-ux-design/steps/step-12-ux-patterns.md create mode 100644 .claude/skills/bmad-create-ux-design/steps/step-13-responsive-accessibility.md create mode 100644 .claude/skills/bmad-create-ux-design/steps/step-14-complete.md create mode 100644 .claude/skills/bmad-create-ux-design/ux-design-template.md create mode 100644 .claude/skills/bmad-create-ux-design/workflow.md create mode 100644 .claude/skills/bmad-dev-story/SKILL.md create mode 100644 .claude/skills/bmad-dev-story/checklist.md create mode 100644 .claude/skills/bmad-dev-story/workflow.md create mode 100644 .claude/skills/bmad-distillator/SKILL.md create mode 100644 .claude/skills/bmad-distillator/agents/distillate-compressor.md create mode 100644 .claude/skills/bmad-distillator/agents/round-trip-reconstructor.md create mode 100644 .claude/skills/bmad-distillator/resources/compression-rules.md create mode 100644 .claude/skills/bmad-distillator/resources/distillate-format-reference.md create mode 100644 .claude/skills/bmad-distillator/resources/splitting-strategy.md create mode 100644 .claude/skills/bmad-distillator/scripts/analyze_sources.py create mode 100644 .claude/skills/bmad-distillator/scripts/tests/test_analyze_sources.py create mode 100644 .claude/skills/bmad-document-project/SKILL.md create mode 100644 .claude/skills/bmad-document-project/checklist.md create mode 100644 .claude/skills/bmad-document-project/documentation-requirements.csv create mode 100644 .claude/skills/bmad-document-project/instructions.md create mode 100644 .claude/skills/bmad-document-project/templates/deep-dive-template.md create mode 100644 .claude/skills/bmad-document-project/templates/index-template.md create mode 100644 .claude/skills/bmad-document-project/templates/project-overview-template.md create mode 100644 .claude/skills/bmad-document-project/templates/project-scan-report-schema.json create mode 100644 .claude/skills/bmad-document-project/templates/source-tree-template.md create mode 100644 .claude/skills/bmad-document-project/workflow.md create mode 100644 .claude/skills/bmad-document-project/workflows/deep-dive-instructions.md create mode 100644 .claude/skills/bmad-document-project/workflows/deep-dive-workflow.md create mode 100644 .claude/skills/bmad-document-project/workflows/full-scan-instructions.md create mode 100644 .claude/skills/bmad-document-project/workflows/full-scan-workflow.md create mode 100644 .claude/skills/bmad-domain-research/SKILL.md create mode 100644 .claude/skills/bmad-domain-research/domain-steps/step-01-init.md create mode 100644 .claude/skills/bmad-domain-research/domain-steps/step-02-domain-analysis.md create mode 100644 .claude/skills/bmad-domain-research/domain-steps/step-03-competitive-landscape.md create mode 100644 .claude/skills/bmad-domain-research/domain-steps/step-04-regulatory-focus.md create mode 100644 .claude/skills/bmad-domain-research/domain-steps/step-05-technical-trends.md create mode 100644 .claude/skills/bmad-domain-research/domain-steps/step-06-research-synthesis.md create mode 100644 .claude/skills/bmad-domain-research/research.template.md create mode 100644 .claude/skills/bmad-domain-research/workflow.md create mode 100644 .claude/skills/bmad-edit-prd/SKILL.md create mode 100644 .claude/skills/bmad-edit-prd/data/prd-purpose.md create mode 100644 .claude/skills/bmad-edit-prd/steps-e/step-e-01-discovery.md create mode 100644 .claude/skills/bmad-edit-prd/steps-e/step-e-01b-legacy-conversion.md create mode 100644 .claude/skills/bmad-edit-prd/steps-e/step-e-02-review.md create mode 100644 .claude/skills/bmad-edit-prd/steps-e/step-e-03-edit.md create mode 100644 .claude/skills/bmad-edit-prd/steps-e/step-e-04-complete.md create mode 100644 .claude/skills/bmad-edit-prd/workflow.md create mode 100644 .claude/skills/bmad-editorial-review-prose/SKILL.md create mode 100644 .claude/skills/bmad-editorial-review-structure/SKILL.md create mode 100644 .claude/skills/bmad-generate-project-context/SKILL.md create mode 100644 .claude/skills/bmad-generate-project-context/project-context-template.md create mode 100644 .claude/skills/bmad-generate-project-context/steps/step-01-discover.md create mode 100644 .claude/skills/bmad-generate-project-context/steps/step-02-generate.md create mode 100644 .claude/skills/bmad-generate-project-context/steps/step-03-complete.md create mode 100644 .claude/skills/bmad-generate-project-context/workflow.md create mode 100644 .claude/skills/bmad-help/SKILL.md create mode 100644 .claude/skills/bmad-index-docs/SKILL.md create mode 100644 .claude/skills/bmad-market-research/SKILL.md create mode 100644 .claude/skills/bmad-market-research/research.template.md create mode 100644 .claude/skills/bmad-market-research/steps/step-01-init.md create mode 100644 .claude/skills/bmad-market-research/steps/step-02-customer-behavior.md create mode 100644 .claude/skills/bmad-market-research/steps/step-03-customer-pain-points.md create mode 100644 .claude/skills/bmad-market-research/steps/step-04-customer-decisions.md create mode 100644 .claude/skills/bmad-market-research/steps/step-05-competitive-analysis.md create mode 100644 .claude/skills/bmad-market-research/steps/step-06-research-completion.md create mode 100644 .claude/skills/bmad-market-research/workflow.md create mode 100644 .claude/skills/bmad-party-mode/SKILL.md create mode 100644 .claude/skills/bmad-prfaq/SKILL.md create mode 100644 .claude/skills/bmad-prfaq/agents/artifact-analyzer.md create mode 100644 .claude/skills/bmad-prfaq/agents/web-researcher.md create mode 100644 .claude/skills/bmad-prfaq/assets/prfaq-template.md create mode 100644 .claude/skills/bmad-prfaq/bmad-manifest.json create mode 100644 .claude/skills/bmad-prfaq/references/customer-faq.md create mode 100644 .claude/skills/bmad-prfaq/references/internal-faq.md create mode 100644 .claude/skills/bmad-prfaq/references/press-release.md create mode 100644 .claude/skills/bmad-prfaq/references/verdict.md create mode 100644 .claude/skills/bmad-product-brief/SKILL.md create mode 100644 .claude/skills/bmad-product-brief/agents/artifact-analyzer.md create mode 100644 .claude/skills/bmad-product-brief/agents/opportunity-reviewer.md create mode 100644 .claude/skills/bmad-product-brief/agents/skeptic-reviewer.md create mode 100644 .claude/skills/bmad-product-brief/agents/web-researcher.md create mode 100644 .claude/skills/bmad-product-brief/bmad-manifest.json create mode 100644 .claude/skills/bmad-product-brief/prompts/contextual-discovery.md create mode 100644 .claude/skills/bmad-product-brief/prompts/draft-and-review.md create mode 100644 .claude/skills/bmad-product-brief/prompts/finalize.md create mode 100644 .claude/skills/bmad-product-brief/prompts/guided-elicitation.md create mode 100644 .claude/skills/bmad-product-brief/resources/brief-template.md create mode 100644 .claude/skills/bmad-qa-generate-e2e-tests/SKILL.md create mode 100644 .claude/skills/bmad-qa-generate-e2e-tests/checklist.md create mode 100644 .claude/skills/bmad-qa-generate-e2e-tests/workflow.md create mode 100644 .claude/skills/bmad-quick-dev/SKILL.md create mode 100644 .claude/skills/bmad-quick-dev/compile-epic-context.md create mode 100644 .claude/skills/bmad-quick-dev/spec-template.md create mode 100644 .claude/skills/bmad-quick-dev/step-01-clarify-and-route.md create mode 100644 .claude/skills/bmad-quick-dev/step-02-plan.md create mode 100644 .claude/skills/bmad-quick-dev/step-03-implement.md create mode 100644 .claude/skills/bmad-quick-dev/step-04-review.md create mode 100644 .claude/skills/bmad-quick-dev/step-05-present.md create mode 100644 .claude/skills/bmad-quick-dev/step-oneshot.md create mode 100644 .claude/skills/bmad-quick-dev/workflow.md create mode 100644 .claude/skills/bmad-retrospective/SKILL.md create mode 100644 .claude/skills/bmad-retrospective/workflow.md create mode 100644 .claude/skills/bmad-review-adversarial-general/SKILL.md create mode 100644 .claude/skills/bmad-review-edge-case-hunter/SKILL.md create mode 100644 .claude/skills/bmad-shard-doc/SKILL.md create mode 100644 .claude/skills/bmad-sprint-planning/SKILL.md create mode 100644 .claude/skills/bmad-sprint-planning/checklist.md create mode 100644 .claude/skills/bmad-sprint-planning/sprint-status-template.yaml create mode 100644 .claude/skills/bmad-sprint-planning/workflow.md create mode 100644 .claude/skills/bmad-sprint-status/SKILL.md create mode 100644 .claude/skills/bmad-sprint-status/workflow.md create mode 100644 .claude/skills/bmad-technical-research/SKILL.md create mode 100644 .claude/skills/bmad-technical-research/research.template.md create mode 100644 .claude/skills/bmad-technical-research/technical-steps/step-01-init.md create mode 100644 .claude/skills/bmad-technical-research/technical-steps/step-02-technical-overview.md create mode 100644 .claude/skills/bmad-technical-research/technical-steps/step-03-integration-patterns.md create mode 100644 .claude/skills/bmad-technical-research/technical-steps/step-04-architectural-patterns.md create mode 100644 .claude/skills/bmad-technical-research/technical-steps/step-05-implementation-research.md create mode 100644 .claude/skills/bmad-technical-research/technical-steps/step-06-research-synthesis.md create mode 100644 .claude/skills/bmad-technical-research/workflow.md create mode 100644 .claude/skills/bmad-validate-prd/SKILL.md create mode 100644 .claude/skills/bmad-validate-prd/data/domain-complexity.csv create mode 100644 .claude/skills/bmad-validate-prd/data/prd-purpose.md create mode 100644 .claude/skills/bmad-validate-prd/data/project-types.csv create mode 100644 .claude/skills/bmad-validate-prd/steps-v/step-v-01-discovery.md create mode 100644 .claude/skills/bmad-validate-prd/steps-v/step-v-02-format-detection.md create mode 100644 .claude/skills/bmad-validate-prd/steps-v/step-v-02b-parity-check.md create mode 100644 .claude/skills/bmad-validate-prd/steps-v/step-v-03-density-validation.md create mode 100644 .claude/skills/bmad-validate-prd/steps-v/step-v-04-brief-coverage-validation.md create mode 100644 .claude/skills/bmad-validate-prd/steps-v/step-v-05-measurability-validation.md create mode 100644 .claude/skills/bmad-validate-prd/steps-v/step-v-06-traceability-validation.md create mode 100644 .claude/skills/bmad-validate-prd/steps-v/step-v-07-implementation-leakage-validation.md create mode 100644 .claude/skills/bmad-validate-prd/steps-v/step-v-08-domain-compliance-validation.md create mode 100644 .claude/skills/bmad-validate-prd/steps-v/step-v-09-project-type-validation.md create mode 100644 .claude/skills/bmad-validate-prd/steps-v/step-v-10-smart-validation.md create mode 100644 .claude/skills/bmad-validate-prd/steps-v/step-v-11-holistic-quality-validation.md create mode 100644 .claude/skills/bmad-validate-prd/steps-v/step-v-12-completeness-validation.md create mode 100644 .claude/skills/bmad-validate-prd/steps-v/step-v-13-report-complete.md create mode 100644 .claude/skills/bmad-validate-prd/workflow.md create mode 100644 .claude/skills/openspec-apply-change/SKILL.md create mode 100644 .claude/skills/openspec-archive-change/SKILL.md create mode 100644 .claude/skills/openspec-explore/SKILL.md create mode 100644 .claude/skills/openspec-propose/SKILL.md create mode 100644 .claude/skills/verify/SKILL.md create mode 100644 .github/copilot-instructions.md create mode 100644 .vscode/extensions.json create mode 100644 CLAUDE.md create mode 100644 openspec/MIGRATION.md create mode 100644 openspec/changes/archive/core-architecture/design.md create mode 100644 openspec/changes/archive/core-architecture/proposal.md create mode 100644 openspec/changes/archive/initial-implementation/proposal.md create mode 100644 openspec/changes/archive/initial-implementation/tasks.md create mode 100644 openspec/changes/normalize-archive-readiness/.openspec.yaml create mode 100644 openspec/changes/normalize-archive-readiness/design.md create mode 100644 openspec/changes/normalize-archive-readiness/proposal.md create mode 100644 openspec/changes/normalize-archive-readiness/specs/ai-assisted-development/spec.md create mode 100644 openspec/changes/normalize-archive-readiness/specs/project-presentation/spec.md create mode 100644 openspec/changes/normalize-archive-readiness/specs/repository-governance/spec.md create mode 100644 openspec/changes/normalize-archive-readiness/tasks.md create mode 100644 openspec/config.yaml create mode 100644 openspec/schemas/api/inference-engine.yaml create mode 100644 openspec/schemas/db/schema-v1.dbml create mode 100644 openspec/specs/inference-engine/spec.md diff --git a/.clangd b/.clangd new file mode 100644 index 0000000..014fdf2 --- /dev/null +++ b/.clangd @@ -0,0 +1,8 @@ +CompileFlags: + CompilationDatabase: build + +Index: + Background: Build + +Diagnostics: + UnusedIncludes: None diff --git a/.claude/commands/opsx/apply.md b/.claude/commands/opsx/apply.md new file mode 100644 index 0000000..ae14f0f --- /dev/null +++ b/.claude/commands/opsx/apply.md @@ -0,0 +1,152 @@ +--- +name: "OPSX: Apply" +description: Implement tasks from an OpenSpec change (Experimental) +category: Workflow +tags: [workflow, artifacts, experimental] +--- + +Implement tasks from an OpenSpec change. + +**Input**: Optionally specify a change name (e.g., `/opsx:apply add-auth`). If omitted, check if it can be inferred from conversation context. If vague or ambiguous you MUST prompt for available changes. + +**Steps** + +1. **Select the change** + + If a name is provided, use it. Otherwise: + - Infer from conversation context if the user mentioned a change + - Auto-select if only one active change exists + - If ambiguous, run `openspec list --json` to get available changes and use the **AskUserQuestion tool** to let the user select + + Always announce: "Using change: " and how to override (e.g., `/opsx:apply `). + +2. **Check status to understand the schema** + ```bash + openspec status --change "" --json + ``` + Parse the JSON to understand: + - `schemaName`: The workflow being used (e.g., "spec-driven") + - Which artifact contains the tasks (typically "tasks" for spec-driven, check status for others) + +3. **Get apply instructions** + + ```bash + openspec instructions apply --change "" --json + ``` + + This returns: + - `contextFiles`: artifact ID -> array of concrete file paths (varies by schema) + - Progress (total, complete, remaining) + - Task list with status + - Dynamic instruction based on current state + + **Handle states:** + - If `state: "blocked"` (missing artifacts): show message, suggest using `/opsx:continue` + - If `state: "all_done"`: congratulate, suggest archive + - Otherwise: proceed to implementation + +4. **Read context files** + + Read every file path listed under `contextFiles` from the apply instructions output. + The files depend on the schema being used: + - **spec-driven**: proposal, specs, design, tasks + - Other schemas: follow the contextFiles from CLI output + +5. **Show current progress** + + Display: + - Schema being used + - Progress: "N/M tasks complete" + - Remaining tasks overview + - Dynamic instruction from CLI + +6. **Implement tasks (loop until done or blocked)** + + For each pending task: + - Show which task is being worked on + - Make the code changes required + - Keep changes minimal and focused + - Mark task complete in the tasks file: `- [ ]` → `- [x]` + - Continue to next task + + **Pause if:** + - Task is unclear → ask for clarification + - Implementation reveals a design issue → suggest updating artifacts + - Error or blocker encountered → report and wait for guidance + - User interrupts + +7. **On completion or pause, show status** + + Display: + - Tasks completed this session + - Overall progress: "N/M tasks complete" + - If all done: suggest archive + - If paused: explain why and wait for guidance + +**Output During Implementation** + +``` +## Implementing: (schema: ) + +Working on task 3/7: +[...implementation happening...] +✓ Task complete + +Working on task 4/7: +[...implementation happening...] +✓ Task complete +``` + +**Output On Completion** + +``` +## Implementation Complete + +**Change:** +**Schema:** +**Progress:** 7/7 tasks complete ✓ + +### Completed This Session +- [x] Task 1 +- [x] Task 2 +... + +All tasks complete! You can archive this change with `/opsx:archive`. +``` + +**Output On Pause (Issue Encountered)** + +``` +## Implementation Paused + +**Change:** +**Schema:** +**Progress:** 4/7 tasks complete + +### Issue Encountered + + +**Options:** +1.