@ngocsangairvds/vsaf 3.1.13 → 3.1.14
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/assets/templates/CLAUDE.md +1 -1
- package/bin/vsaf.js +6 -30
- package/package.json +2 -3
- package/src/global.js +6 -41
- package/src/project.js +11 -11
- package/src/status.js +2 -2
- package/src/utils.js +5 -14
- package/src/workflow.js +2 -36
- package/.claude/skills/graphify/.graphify_version +0 -1
- package/.claude/skills/graphify/SKILL.md +0 -4
- /package/{_bmad → tools/bmad}/_config/agent-manifest.csv +0 -0
- /package/{_bmad → tools/bmad}/_config/bmad-help.csv +0 -0
- /package/{_bmad → tools/bmad}/_config/files-manifest.csv +0 -0
- /package/{_bmad → tools/bmad}/_config/manifest.yaml +0 -0
- /package/{_bmad → tools/bmad}/_config/skill-manifest.csv +0 -0
- /package/{_bmad → tools/bmad}/bmm/1-analysis/bmad-document-project/templates/srs-feature-template.md +0 -0
- /package/{_bmad → tools/bmad}/bmm/1-analysis/bmad-document-project/templates/srs-system-template.md +0 -0
- /package/{_bmad → tools/bmad}/bmm/config.yaml +0 -0
- /package/{_bmad → tools/bmad}/bmm/module-help.csv +0 -0
- /package/{_bmad → tools/bmad}/core/config.yaml +0 -0
- /package/{_bmad → tools/bmad}/core/module-help.csv +0 -0
- /package/{.claude → tools}/skills/bmad-advanced-elicitation/SKILL.md +0 -0
- /package/{.claude → tools}/skills/bmad-advanced-elicitation/methods.csv +0 -0
- /package/{.claude → tools}/skills/bmad-agent-analyst/SKILL.md +0 -0
- /package/{.claude → tools}/skills/bmad-agent-analyst/bmad-skill-manifest.yaml +0 -0
- /package/{.claude → tools}/skills/bmad-agent-architect/SKILL.md +0 -0
- /package/{.claude → tools}/skills/bmad-agent-architect/bmad-skill-manifest.yaml +0 -0
- /package/{.claude → tools}/skills/bmad-agent-dev/SKILL.md +0 -0
- /package/{.claude → tools}/skills/bmad-agent-dev/bmad-skill-manifest.yaml +0 -0
- /package/{.claude → tools}/skills/bmad-agent-pm/SKILL.md +0 -0
- /package/{.claude → tools}/skills/bmad-agent-pm/bmad-skill-manifest.yaml +0 -0
- /package/{.claude → tools}/skills/bmad-agent-tech-writer/SKILL.md +0 -0
- /package/{.claude → tools}/skills/bmad-agent-tech-writer/bmad-skill-manifest.yaml +0 -0
- /package/{.claude → tools}/skills/bmad-agent-tech-writer/explain-concept.md +0 -0
- /package/{.claude → tools}/skills/bmad-agent-tech-writer/mermaid-gen.md +0 -0
- /package/{.claude → tools}/skills/bmad-agent-tech-writer/validate-doc.md +0 -0
- /package/{.claude → tools}/skills/bmad-agent-tech-writer/write-document.md +0 -0
- /package/{.claude → tools}/skills/bmad-agent-ux-designer/SKILL.md +0 -0
- /package/{.claude → tools}/skills/bmad-agent-ux-designer/bmad-skill-manifest.yaml +0 -0
- /package/{.claude → tools}/skills/bmad-brainstorming/SKILL.md +0 -0
- /package/{.claude → tools}/skills/bmad-brainstorming/brain-methods.csv +0 -0
- /package/{.claude → tools}/skills/bmad-brainstorming/steps/step-01-session-setup.md +0 -0
- /package/{.claude → tools}/skills/bmad-brainstorming/steps/step-01b-continue.md +0 -0
- /package/{.claude → tools}/skills/bmad-brainstorming/steps/step-02a-user-selected.md +0 -0
- /package/{.claude → tools}/skills/bmad-brainstorming/steps/step-02b-ai-recommended.md +0 -0
- /package/{.claude → tools}/skills/bmad-brainstorming/steps/step-02c-random-selection.md +0 -0
- /package/{.claude → tools}/skills/bmad-brainstorming/steps/step-02d-progressive-flow.md +0 -0
- /package/{.claude → tools}/skills/bmad-brainstorming/steps/step-03-technique-execution.md +0 -0
- /package/{.claude → tools}/skills/bmad-brainstorming/steps/step-04-idea-organization.md +0 -0
- /package/{.claude → tools}/skills/bmad-brainstorming/template.md +0 -0
- /package/{.claude → tools}/skills/bmad-brainstorming/workflow.md +0 -0
- /package/{.claude → tools}/skills/bmad-check-implementation-readiness/SKILL.md +0 -0
- /package/{.claude → tools}/skills/bmad-check-implementation-readiness/steps/step-01-document-discovery.md +0 -0
- /package/{.claude → tools}/skills/bmad-check-implementation-readiness/steps/step-02-prd-analysis.md +0 -0
- /package/{.claude → tools}/skills/bmad-check-implementation-readiness/steps/step-03-epic-coverage-validation.md +0 -0
- /package/{.claude → tools}/skills/bmad-check-implementation-readiness/steps/step-04-ux-alignment.md +0 -0
- /package/{.claude → tools}/skills/bmad-check-implementation-readiness/steps/step-05-epic-quality-review.md +0 -0
- /package/{.claude → tools}/skills/bmad-check-implementation-readiness/steps/step-06-final-assessment.md +0 -0
- /package/{.claude → tools}/skills/bmad-check-implementation-readiness/templates/readiness-report-template.md +0 -0
- /package/{.claude → tools}/skills/bmad-check-implementation-readiness/workflow.md +0 -0
- /package/{.claude → tools}/skills/bmad-checkpoint-preview/SKILL.md +0 -0
- /package/{.claude → tools}/skills/bmad-checkpoint-preview/generate-trail.md +0 -0
- /package/{.claude → tools}/skills/bmad-checkpoint-preview/step-01-orientation.md +0 -0
- /package/{.claude → tools}/skills/bmad-checkpoint-preview/step-02-walkthrough.md +0 -0
- /package/{.claude → tools}/skills/bmad-checkpoint-preview/step-03-detail-pass.md +0 -0
- /package/{.claude → tools}/skills/bmad-checkpoint-preview/step-04-testing.md +0 -0
- /package/{.claude → tools}/skills/bmad-checkpoint-preview/step-05-wrapup.md +0 -0
- /package/{.claude → tools}/skills/bmad-code-review/SKILL.md +0 -0
- /package/{.claude → tools}/skills/bmad-code-review/steps/step-01-gather-context.md +0 -0
- /package/{.claude → tools}/skills/bmad-code-review/steps/step-02-review.md +0 -0
- /package/{.claude → tools}/skills/bmad-code-review/steps/step-03-triage.md +0 -0
- /package/{.claude → tools}/skills/bmad-code-review/steps/step-04-present.md +0 -0
- /package/{.claude → tools}/skills/bmad-code-review/workflow.md +0 -0
- /package/{.claude → tools}/skills/bmad-correct-course/SKILL.md +0 -0
- /package/{.claude → tools}/skills/bmad-correct-course/checklist.md +0 -0
- /package/{.claude → tools}/skills/bmad-correct-course/workflow.md +0 -0
- /package/{.claude → tools}/skills/bmad-create-architecture/SKILL.md +0 -0
- /package/{.claude → tools}/skills/bmad-create-architecture/architecture-decision-template.md +0 -0
- /package/{.claude → tools}/skills/bmad-create-architecture/data/domain-complexity.csv +0 -0
- /package/{.claude → tools}/skills/bmad-create-architecture/data/project-types.csv +0 -0
- /package/{.claude → tools}/skills/bmad-create-architecture/steps/step-01-init.md +0 -0
- /package/{.claude → tools}/skills/bmad-create-architecture/steps/step-01b-continue.md +0 -0
- /package/{.claude → tools}/skills/bmad-create-architecture/steps/step-02-context.md +0 -0
- /package/{.claude → tools}/skills/bmad-create-architecture/steps/step-03-starter.md +0 -0
- /package/{.claude → tools}/skills/bmad-create-architecture/steps/step-04-decisions.md +0 -0
- /package/{.claude → tools}/skills/bmad-create-architecture/steps/step-05-patterns.md +0 -0
- /package/{.claude → tools}/skills/bmad-create-architecture/steps/step-06-structure.md +0 -0
- /package/{.claude → tools}/skills/bmad-create-architecture/steps/step-07-validation.md +0 -0
- /package/{.claude → tools}/skills/bmad-create-architecture/steps/step-08-complete.md +0 -0
- /package/{.claude → tools}/skills/bmad-create-architecture/workflow.md +0 -0
- /package/{.claude → tools}/skills/bmad-create-epics-and-stories/SKILL.md +0 -0
- /package/{.claude → tools}/skills/bmad-create-epics-and-stories/steps/step-01-validate-prerequisites.md +0 -0
- /package/{.claude → tools}/skills/bmad-create-epics-and-stories/steps/step-02-design-epics.md +0 -0
- /package/{.claude → tools}/skills/bmad-create-epics-and-stories/steps/step-03-create-stories.md +0 -0
- /package/{.claude → tools}/skills/bmad-create-epics-and-stories/steps/step-04-final-validation.md +0 -0
- /package/{.claude → tools}/skills/bmad-create-epics-and-stories/templates/epics-template.md +0 -0
- /package/{.claude → tools}/skills/bmad-create-epics-and-stories/workflow.md +0 -0
- /package/{.claude → tools}/skills/bmad-create-prd/SKILL.md +0 -0
- /package/{.claude → tools}/skills/bmad-create-prd/data/domain-complexity.csv +0 -0
- /package/{.claude → tools}/skills/bmad-create-prd/data/prd-purpose.md +0 -0
- /package/{.claude → tools}/skills/bmad-create-prd/data/project-types.csv +0 -0
- /package/{.claude → tools}/skills/bmad-create-prd/steps-c/step-01-init.md +0 -0
- /package/{.claude → tools}/skills/bmad-create-prd/steps-c/step-01b-continue.md +0 -0
- /package/{.claude → tools}/skills/bmad-create-prd/steps-c/step-02-discovery.md +0 -0
- /package/{.claude → tools}/skills/bmad-create-prd/steps-c/step-02b-vision.md +0 -0
- /package/{.claude → tools}/skills/bmad-create-prd/steps-c/step-02c-executive-summary.md +0 -0
- /package/{.claude → tools}/skills/bmad-create-prd/steps-c/step-03-success.md +0 -0
- /package/{.claude → tools}/skills/bmad-create-prd/steps-c/step-04-journeys.md +0 -0
- /package/{.claude → tools}/skills/bmad-create-prd/steps-c/step-05-domain.md +0 -0
- /package/{.claude → tools}/skills/bmad-create-prd/steps-c/step-06-innovation.md +0 -0
- /package/{.claude → tools}/skills/bmad-create-prd/steps-c/step-07-project-type.md +0 -0
- /package/{.claude → tools}/skills/bmad-create-prd/steps-c/step-08-scoping.md +0 -0
- /package/{.claude → tools}/skills/bmad-create-prd/steps-c/step-09-functional.md +0 -0
- /package/{.claude → tools}/skills/bmad-create-prd/steps-c/step-10-nonfunctional.md +0 -0
- /package/{.claude → tools}/skills/bmad-create-prd/steps-c/step-11-polish.md +0 -0
- /package/{.claude → tools}/skills/bmad-create-prd/steps-c/step-12-complete.md +0 -0
- /package/{.claude → tools}/skills/bmad-create-prd/templates/prd-template.md +0 -0
- /package/{.claude → tools}/skills/bmad-create-prd/workflow.md +0 -0
- /package/{.claude → tools}/skills/bmad-create-story/SKILL.md +0 -0
- /package/{.claude → tools}/skills/bmad-create-story/checklist.md +0 -0
- /package/{.claude → tools}/skills/bmad-create-story/discover-inputs.md +0 -0
- /package/{.claude → tools}/skills/bmad-create-story/template.md +0 -0
- /package/{.claude → tools}/skills/bmad-create-story/workflow.md +0 -0
- /package/{.claude → tools}/skills/bmad-create-ux-design/SKILL.md +0 -0
- /package/{.claude → tools}/skills/bmad-create-ux-design/steps/step-01-init.md +0 -0
- /package/{.claude → tools}/skills/bmad-create-ux-design/steps/step-01b-continue.md +0 -0
- /package/{.claude → tools}/skills/bmad-create-ux-design/steps/step-02-discovery.md +0 -0
- /package/{.claude → tools}/skills/bmad-create-ux-design/steps/step-03-core-experience.md +0 -0
- /package/{.claude → tools}/skills/bmad-create-ux-design/steps/step-04-emotional-response.md +0 -0
- /package/{.claude → tools}/skills/bmad-create-ux-design/steps/step-05-inspiration.md +0 -0
- /package/{.claude → tools}/skills/bmad-create-ux-design/steps/step-06-design-system.md +0 -0
- /package/{.claude → tools}/skills/bmad-create-ux-design/steps/step-07-defining-experience.md +0 -0
- /package/{.claude → tools}/skills/bmad-create-ux-design/steps/step-08-visual-foundation.md +0 -0
- /package/{.claude → tools}/skills/bmad-create-ux-design/steps/step-09-design-directions.md +0 -0
- /package/{.claude → tools}/skills/bmad-create-ux-design/steps/step-10-user-journeys.md +0 -0
- /package/{.claude → tools}/skills/bmad-create-ux-design/steps/step-11-component-strategy.md +0 -0
- /package/{.claude → tools}/skills/bmad-create-ux-design/steps/step-12-ux-patterns.md +0 -0
- /package/{.claude → tools}/skills/bmad-create-ux-design/steps/step-13-responsive-accessibility.md +0 -0
- /package/{.claude → tools}/skills/bmad-create-ux-design/steps/step-14-complete.md +0 -0
- /package/{.claude → tools}/skills/bmad-create-ux-design/ux-design-template.md +0 -0
- /package/{.claude → tools}/skills/bmad-create-ux-design/workflow.md +0 -0
- /package/{.claude → tools}/skills/bmad-dev-story/SKILL.md +0 -0
- /package/{.claude → tools}/skills/bmad-dev-story/checklist.md +0 -0
- /package/{.claude → tools}/skills/bmad-dev-story/workflow.md +0 -0
- /package/{.claude → tools}/skills/bmad-distillator/SKILL.md +0 -0
- /package/{.claude → tools}/skills/bmad-distillator/agents/distillate-compressor.md +0 -0
- /package/{.claude → tools}/skills/bmad-distillator/agents/round-trip-reconstructor.md +0 -0
- /package/{.claude → tools}/skills/bmad-distillator/resources/compression-rules.md +0 -0
- /package/{.claude → tools}/skills/bmad-distillator/resources/distillate-format-reference.md +0 -0
- /package/{.claude → tools}/skills/bmad-distillator/resources/splitting-strategy.md +0 -0
- /package/{.claude → tools}/skills/bmad-distillator/scripts/analyze_sources.py +0 -0
- /package/{.claude → tools}/skills/bmad-distillator/scripts/tests/test_analyze_sources.py +0 -0
- /package/{.claude → tools}/skills/bmad-document-project/SKILL.md +0 -0
- /package/{.claude → tools}/skills/bmad-document-project/checklist.md +0 -0
- /package/{.claude → tools}/skills/bmad-document-project/documentation-requirements.csv +0 -0
- /package/{.claude → tools}/skills/bmad-document-project/instructions.md +0 -0
- /package/{.claude → tools}/skills/bmad-document-project/templates/deep-dive-template.md +0 -0
- /package/{.claude → tools}/skills/bmad-document-project/templates/index-template.md +0 -0
- /package/{.claude → tools}/skills/bmad-document-project/templates/project-overview-template.md +0 -0
- /package/{.claude → tools}/skills/bmad-document-project/templates/project-scan-report-schema.json +0 -0
- /package/{.claude → tools}/skills/bmad-document-project/templates/source-tree-template.md +0 -0
- /package/{.claude → tools}/skills/bmad-document-project/workflow.md +0 -0
- /package/{.claude → tools}/skills/bmad-document-project/workflows/deep-dive-instructions.md +0 -0
- /package/{.claude → tools}/skills/bmad-document-project/workflows/deep-dive-workflow.md +0 -0
- /package/{.claude → tools}/skills/bmad-document-project/workflows/full-scan-instructions.md +0 -0
- /package/{.claude → tools}/skills/bmad-document-project/workflows/full-scan-workflow.md +0 -0
- /package/{.claude → tools}/skills/bmad-domain-research/SKILL.md +0 -0
- /package/{.claude → tools}/skills/bmad-domain-research/domain-steps/step-01-init.md +0 -0
- /package/{.claude → tools}/skills/bmad-domain-research/domain-steps/step-02-domain-analysis.md +0 -0
- /package/{.claude → tools}/skills/bmad-domain-research/domain-steps/step-03-competitive-landscape.md +0 -0
- /package/{.claude → tools}/skills/bmad-domain-research/domain-steps/step-04-regulatory-focus.md +0 -0
- /package/{.claude → tools}/skills/bmad-domain-research/domain-steps/step-05-technical-trends.md +0 -0
- /package/{.claude → tools}/skills/bmad-domain-research/domain-steps/step-06-research-synthesis.md +0 -0
- /package/{.claude → tools}/skills/bmad-domain-research/research.template.md +0 -0
- /package/{.claude → tools}/skills/bmad-domain-research/workflow.md +0 -0
- /package/{.claude → tools}/skills/bmad-edit-prd/SKILL.md +0 -0
- /package/{.claude → tools}/skills/bmad-edit-prd/data/prd-purpose.md +0 -0
- /package/{.claude → tools}/skills/bmad-edit-prd/steps-e/step-e-01-discovery.md +0 -0
- /package/{.claude → tools}/skills/bmad-edit-prd/steps-e/step-e-01b-legacy-conversion.md +0 -0
- /package/{.claude → tools}/skills/bmad-edit-prd/steps-e/step-e-02-review.md +0 -0
- /package/{.claude → tools}/skills/bmad-edit-prd/steps-e/step-e-03-edit.md +0 -0
- /package/{.claude → tools}/skills/bmad-edit-prd/steps-e/step-e-04-complete.md +0 -0
- /package/{.claude → tools}/skills/bmad-edit-prd/workflow.md +0 -0
- /package/{.claude → tools}/skills/bmad-editorial-review-prose/SKILL.md +0 -0
- /package/{.claude → tools}/skills/bmad-editorial-review-structure/SKILL.md +0 -0
- /package/{.claude → tools}/skills/bmad-generate-project-context/SKILL.md +0 -0
- /package/{.claude → tools}/skills/bmad-generate-project-context/project-context-template.md +0 -0
- /package/{.claude → tools}/skills/bmad-generate-project-context/steps/step-01-discover.md +0 -0
- /package/{.claude → tools}/skills/bmad-generate-project-context/steps/step-02-generate.md +0 -0
- /package/{.claude → tools}/skills/bmad-generate-project-context/steps/step-03-complete.md +0 -0
- /package/{.claude → tools}/skills/bmad-generate-project-context/workflow.md +0 -0
- /package/{.claude → tools}/skills/bmad-help/SKILL.md +0 -0
- /package/{.claude → tools}/skills/bmad-index-docs/SKILL.md +0 -0
- /package/{.claude → tools}/skills/bmad-market-research/SKILL.md +0 -0
- /package/{.claude → tools}/skills/bmad-market-research/research.template.md +0 -0
- /package/{.claude → tools}/skills/bmad-market-research/steps/step-01-init.md +0 -0
- /package/{.claude → tools}/skills/bmad-market-research/steps/step-02-customer-behavior.md +0 -0
- /package/{.claude → tools}/skills/bmad-market-research/steps/step-03-customer-pain-points.md +0 -0
- /package/{.claude → tools}/skills/bmad-market-research/steps/step-04-customer-decisions.md +0 -0
- /package/{.claude → tools}/skills/bmad-market-research/steps/step-05-competitive-analysis.md +0 -0
- /package/{.claude → tools}/skills/bmad-market-research/steps/step-06-research-completion.md +0 -0
- /package/{.claude → tools}/skills/bmad-market-research/workflow.md +0 -0
- /package/{.claude → tools}/skills/bmad-party-mode/SKILL.md +0 -0
- /package/{.claude → tools}/skills/bmad-prfaq/SKILL.md +0 -0
- /package/{.claude → tools}/skills/bmad-prfaq/agents/artifact-analyzer.md +0 -0
- /package/{.claude → tools}/skills/bmad-prfaq/agents/web-researcher.md +0 -0
- /package/{.claude → tools}/skills/bmad-prfaq/assets/prfaq-template.md +0 -0
- /package/{.claude → tools}/skills/bmad-prfaq/bmad-manifest.json +0 -0
- /package/{.claude → tools}/skills/bmad-prfaq/references/customer-faq.md +0 -0
- /package/{.claude → tools}/skills/bmad-prfaq/references/internal-faq.md +0 -0
- /package/{.claude → tools}/skills/bmad-prfaq/references/press-release.md +0 -0
- /package/{.claude → tools}/skills/bmad-prfaq/references/verdict.md +0 -0
- /package/{.claude → tools}/skills/bmad-product-brief/SKILL.md +0 -0
- /package/{.claude → tools}/skills/bmad-product-brief/agents/artifact-analyzer.md +0 -0
- /package/{.claude → tools}/skills/bmad-product-brief/agents/opportunity-reviewer.md +0 -0
- /package/{.claude → tools}/skills/bmad-product-brief/agents/skeptic-reviewer.md +0 -0
- /package/{.claude → tools}/skills/bmad-product-brief/agents/web-researcher.md +0 -0
- /package/{.claude → tools}/skills/bmad-product-brief/bmad-manifest.json +0 -0
- /package/{.claude → tools}/skills/bmad-product-brief/prompts/contextual-discovery.md +0 -0
- /package/{.claude → tools}/skills/bmad-product-brief/prompts/draft-and-review.md +0 -0
- /package/{.claude → tools}/skills/bmad-product-brief/prompts/finalize.md +0 -0
- /package/{.claude → tools}/skills/bmad-product-brief/prompts/guided-elicitation.md +0 -0
- /package/{.claude → tools}/skills/bmad-product-brief/resources/brief-template.md +0 -0
- /package/{.claude → tools}/skills/bmad-qa-generate-e2e-tests/SKILL.md +0 -0
- /package/{.claude → tools}/skills/bmad-qa-generate-e2e-tests/checklist.md +0 -0
- /package/{.claude → tools}/skills/bmad-qa-generate-e2e-tests/workflow.md +0 -0
- /package/{.claude → tools}/skills/bmad-quick-dev/SKILL.md +0 -0
- /package/{.claude → tools}/skills/bmad-quick-dev/compile-epic-context.md +0 -0
- /package/{.claude → tools}/skills/bmad-quick-dev/spec-template.md +0 -0
- /package/{.claude → tools}/skills/bmad-quick-dev/step-01-clarify-and-route.md +0 -0
- /package/{.claude → tools}/skills/bmad-quick-dev/step-02-plan.md +0 -0
- /package/{.claude → tools}/skills/bmad-quick-dev/step-03-implement.md +0 -0
- /package/{.claude → tools}/skills/bmad-quick-dev/step-04-review.md +0 -0
- /package/{.claude → tools}/skills/bmad-quick-dev/step-05-present.md +0 -0
- /package/{.claude → tools}/skills/bmad-quick-dev/step-oneshot.md +0 -0
- /package/{.claude → tools}/skills/bmad-quick-dev/workflow.md +0 -0
- /package/{.claude → tools}/skills/bmad-retrospective/SKILL.md +0 -0
- /package/{.claude → tools}/skills/bmad-retrospective/workflow.md +0 -0
- /package/{.claude → tools}/skills/bmad-review-adversarial-general/SKILL.md +0 -0
- /package/{.claude → tools}/skills/bmad-review-edge-case-hunter/SKILL.md +0 -0
- /package/{.claude → tools}/skills/bmad-shard-doc/SKILL.md +0 -0
- /package/{.claude → tools}/skills/bmad-sprint-planning/SKILL.md +0 -0
- /package/{.claude → tools}/skills/bmad-sprint-planning/checklist.md +0 -0
- /package/{.claude → tools}/skills/bmad-sprint-planning/sprint-status-template.yaml +0 -0
- /package/{.claude → tools}/skills/bmad-sprint-planning/workflow.md +0 -0
- /package/{.claude → tools}/skills/bmad-sprint-status/SKILL.md +0 -0
- /package/{.claude → tools}/skills/bmad-sprint-status/workflow.md +0 -0
- /package/{.claude → tools}/skills/bmad-technical-research/SKILL.md +0 -0
- /package/{.claude → tools}/skills/bmad-technical-research/research.template.md +0 -0
- /package/{.claude → tools}/skills/bmad-technical-research/technical-steps/step-01-init.md +0 -0
- /package/{.claude → tools}/skills/bmad-technical-research/technical-steps/step-02-technical-overview.md +0 -0
- /package/{.claude → tools}/skills/bmad-technical-research/technical-steps/step-03-integration-patterns.md +0 -0
- /package/{.claude → tools}/skills/bmad-technical-research/technical-steps/step-04-architectural-patterns.md +0 -0
- /package/{.claude → tools}/skills/bmad-technical-research/technical-steps/step-05-implementation-research.md +0 -0
- /package/{.claude → tools}/skills/bmad-technical-research/technical-steps/step-06-research-synthesis.md +0 -0
- /package/{.claude → tools}/skills/bmad-technical-research/workflow.md +0 -0
- /package/{.claude → tools}/skills/bmad-validate-prd/SKILL.md +0 -0
- /package/{.claude → tools}/skills/bmad-validate-prd/data/domain-complexity.csv +0 -0
- /package/{.claude → tools}/skills/bmad-validate-prd/data/prd-purpose.md +0 -0
- /package/{.claude → tools}/skills/bmad-validate-prd/data/project-types.csv +0 -0
- /package/{.claude → tools}/skills/bmad-validate-prd/steps-v/step-v-01-discovery.md +0 -0
- /package/{.claude → tools}/skills/bmad-validate-prd/steps-v/step-v-02-format-detection.md +0 -0
- /package/{.claude → tools}/skills/bmad-validate-prd/steps-v/step-v-02b-parity-check.md +0 -0
- /package/{.claude → tools}/skills/bmad-validate-prd/steps-v/step-v-03-density-validation.md +0 -0
- /package/{.claude → tools}/skills/bmad-validate-prd/steps-v/step-v-04-brief-coverage-validation.md +0 -0
- /package/{.claude → tools}/skills/bmad-validate-prd/steps-v/step-v-05-measurability-validation.md +0 -0
- /package/{.claude → tools}/skills/bmad-validate-prd/steps-v/step-v-06-traceability-validation.md +0 -0
- /package/{.claude → tools}/skills/bmad-validate-prd/steps-v/step-v-07-implementation-leakage-validation.md +0 -0
- /package/{.claude → tools}/skills/bmad-validate-prd/steps-v/step-v-08-domain-compliance-validation.md +0 -0
- /package/{.claude → tools}/skills/bmad-validate-prd/steps-v/step-v-09-project-type-validation.md +0 -0
- /package/{.claude → tools}/skills/bmad-validate-prd/steps-v/step-v-10-smart-validation.md +0 -0
- /package/{.claude → tools}/skills/bmad-validate-prd/steps-v/step-v-11-holistic-quality-validation.md +0 -0
- /package/{.claude → tools}/skills/bmad-validate-prd/steps-v/step-v-12-completeness-validation.md +0 -0
- /package/{.claude → tools}/skills/bmad-validate-prd/steps-v/step-v-13-report-complete.md +0 -0
- /package/{.claude → tools}/skills/bmad-validate-prd/workflow.md +0 -0
- /package/{.claude → tools}/skills/gitnexus/gitnexus-cli/SKILL.md +0 -0
- /package/{.claude → tools}/skills/gitnexus/gitnexus-debugging/SKILL.md +0 -0
- /package/{.claude → tools}/skills/gitnexus/gitnexus-exploring/SKILL.md +0 -0
- /package/{.claude → tools}/skills/gitnexus/gitnexus-guide/SKILL.md +0 -0
- /package/{.claude → tools}/skills/gitnexus/gitnexus-impact-analysis/SKILL.md +0 -0
- /package/{.claude → tools}/skills/gitnexus/gitnexus-refactoring/SKILL.md +0 -0
- /package/{.claude → tools}/skills/vsaf-build/SKILL.md +0 -0
- /package/{.claude → tools}/skills/vsaf-discover/SKILL.md +0 -0
- /package/{.claude → tools}/skills/vsaf-doc/SKILL.md +0 -0
- /package/{.claude → tools}/skills/vsaf-doc-prd/SKILL.md +0 -0
- /package/{.claude → tools}/skills/vsaf-doc-srs/SKILL.md +0 -0
- /package/{.claude → tools}/skills/vsaf-docs/SKILL.md +0 -0
- /package/{.claude → tools}/skills/vsaf-onboard/SKILL.md +0 -0
- /package/{.claude → tools}/skills/vsaf-plan/SKILL.md +0 -0
- /package/{.claude → tools}/skills/vsaf-retro/SKILL.md +0 -0
- /package/{.claude → tools}/skills/vsaf-ship/SKILL.md +0 -0
- /package/{.claude → tools}/skills/vsaf-sprint/SKILL.md +0 -0
- /package/{.claude → tools}/skills/vsaf-test/SKILL.md +0 -0
|
@@ -22,7 +22,7 @@ VSAF is a meta-framework for AI-driven SDLC — not an application. It has no so
|
|
|
22
22
|
| Code Intelligence | GitNexus (MCP) | Impact analysis, call graph, blast radius |
|
|
23
23
|
| Implementation | Superpowers, Claude Code | Brainstorm, TDD execution, code review |
|
|
24
24
|
|
|
25
|
-
Key directories: `.claude/` (settings + skills),
|
|
25
|
+
Key directories: `.claude/` (settings + skills), `.vsaf/_bmad/` (BMAD workspace), `.vsaf/docs/` (artifacts), `.gitnexus/` (knowledge graph index).
|
|
26
26
|
|
|
27
27
|
---
|
|
28
28
|
|
package/bin/vsaf.js
CHANGED
|
@@ -104,36 +104,12 @@ function printInstallHint() {
|
|
|
104
104
|
|
|
105
105
|
console.log(`\n Detected OS: \x1b[36m${platform}\x1b[0m\n`);
|
|
106
106
|
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
console.log(` \x1b[32mnpm install -g ${pkg}\x1b[0m\n`);
|
|
114
|
-
console.log(` \x1b[1mOption 2: Setup script (CMD)\x1b[0m`);
|
|
115
|
-
console.log(` \x1b[32mscripts\\setup-vsaf.bat\x1b[0m\n`);
|
|
116
|
-
console.log(` \x1b[1mOption 3: WSL (Windows Subsystem for Linux)\x1b[0m`);
|
|
117
|
-
console.log(` \x1b[90mRun inside WSL terminal for full Linux compatibility:\x1b[0m`);
|
|
118
|
-
console.log(` \x1b[32mnpm install -g ${pkg}\x1b[0m`);
|
|
119
|
-
console.log(` \x1b[32mbash scripts/setup-vsaf.sh\x1b[0m\n`);
|
|
120
|
-
console.log(` \x1b[1mOption 4: Git Bash\x1b[0m`);
|
|
121
|
-
console.log(` \x1b[90mIf you have Git for Windows installed:\x1b[0m`);
|
|
122
|
-
console.log(` \x1b[32mnpm install -g ${pkg}\x1b[0m`);
|
|
123
|
-
console.log(` \x1b[32mbash scripts/setup-vsaf.sh\x1b[0m\n`);
|
|
124
|
-
} else if (platform === 'macos') {
|
|
125
|
-
console.log(` \x1b[1m\x1b[33m[macOS]\x1b[0m Recommended installation methods:\n`);
|
|
126
|
-
console.log(` \x1b[1mOption 1: npm global install\x1b[0m`);
|
|
127
|
-
console.log(` \x1b[32mnpm install -g ${pkg}\x1b[0m\n`);
|
|
128
|
-
console.log(` \x1b[1mOption 2: Setup script\x1b[0m`);
|
|
129
|
-
console.log(` \x1b[32mbash scripts/setup-vsaf.sh\x1b[0m\n`);
|
|
130
|
-
} else {
|
|
131
|
-
console.log(` \x1b[1m\x1b[33m[Linux]\x1b[0m Recommended installation methods:\n`);
|
|
132
|
-
console.log(` \x1b[1mOption 1: npm global install\x1b[0m`);
|
|
133
|
-
console.log(` \x1b[32mnpm install -g ${pkg}\x1b[0m\n`);
|
|
134
|
-
console.log(` \x1b[1mOption 2: Setup script\x1b[0m`);
|
|
135
|
-
console.log(` \x1b[32mbash scripts/setup-vsaf.sh\x1b[0m\n`);
|
|
136
|
-
}
|
|
107
|
+
const label = platform === 'macos' ? 'macOS' : 'Linux';
|
|
108
|
+
console.log(` \x1b[1m\x1b[33m[${label}]\x1b[0m Recommended installation methods:\n`);
|
|
109
|
+
console.log(` \x1b[1mOption 1: npm global install\x1b[0m`);
|
|
110
|
+
console.log(` \x1b[32mnpm install -g ${pkg}\x1b[0m\n`);
|
|
111
|
+
console.log(` \x1b[1mOption 2: Setup script\x1b[0m`);
|
|
112
|
+
console.log(` \x1b[32mbash scripts/setup-vsaf.sh\x1b[0m\n`);
|
|
137
113
|
|
|
138
114
|
console.log(` After installation, you can use:\n`);
|
|
139
115
|
console.log(` \x1b[36mvsaf status\x1b[0m # check installation`);
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@ngocsangairvds/vsaf",
|
|
3
|
-
"version": "3.1.
|
|
3
|
+
"version": "3.1.14",
|
|
4
4
|
"description": "VSAF — Agentic AI SDLC Framework. 3 integrated tools: BMAD, GitNexus, Superpowers. 2-layer review.",
|
|
5
5
|
"keywords": ["claude", "claude-code", "ai", "sdlc", "framework", "bmad", "gitnexus", "superpowers"],
|
|
6
6
|
"bin": {
|
|
@@ -15,8 +15,7 @@
|
|
|
15
15
|
"files": [
|
|
16
16
|
"bin/",
|
|
17
17
|
"src/",
|
|
18
|
-
"
|
|
19
|
-
"_bmad/",
|
|
18
|
+
"tools/",
|
|
20
19
|
"assets/"
|
|
21
20
|
],
|
|
22
21
|
"license": "MIT"
|
package/src/global.js
CHANGED
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
const path = require('path');
|
|
3
3
|
const fs = require('fs');
|
|
4
|
-
const { ok, info, warn, step, hasCommand, exec, copyDir, copyFile, CLAUDE_HOME
|
|
4
|
+
const { ok, info, warn, step, hasCommand, exec, copyDir, copyFile, CLAUDE_HOME } = require('./utils');
|
|
5
5
|
|
|
6
6
|
const PKG_ROOT = path.join(__dirname, '..');
|
|
7
|
-
const SKILLS_SRC = path.join(PKG_ROOT, '
|
|
7
|
+
const SKILLS_SRC = path.join(PKG_ROOT, 'tools', 'skills');
|
|
8
8
|
const SKILLS_DST = path.join(CLAUDE_HOME, 'skills');
|
|
9
9
|
|
|
10
10
|
async function installGlobal() {
|
|
@@ -14,7 +14,6 @@ async function installGlobal() {
|
|
|
14
14
|
|
|
15
15
|
installSkills();
|
|
16
16
|
installBinary('gitnexus', () => exec('npm install -g gitnexus'));
|
|
17
|
-
if (isWindows) ensureLadybugDbWindows();
|
|
18
17
|
setupGitnexusMcp();
|
|
19
18
|
|
|
20
19
|
console.log('\n\x1b[32m\x1b[1m✓ Global infra ready.\x1b[0m\n');
|
|
@@ -62,33 +61,6 @@ function installBinary(name, installFn) {
|
|
|
62
61
|
: warn(`${name} install failed — run manually`);
|
|
63
62
|
}
|
|
64
63
|
|
|
65
|
-
function ensureLadybugDbWindows() {
|
|
66
|
-
step('LadybugDB native binding (Windows)');
|
|
67
|
-
|
|
68
|
-
try {
|
|
69
|
-
const npmRoot = require('child_process')
|
|
70
|
-
.execSync('npm root -g', { encoding: 'utf8', shell: true }).trim();
|
|
71
|
-
const nativePath = path.join(npmRoot, 'gitnexus', 'node_modules', '@ladybugdb', 'core', 'lbugjs.node');
|
|
72
|
-
if (fs.existsSync(nativePath)) {
|
|
73
|
-
ok('LadybugDB native binding present (lbugjs.node)');
|
|
74
|
-
return;
|
|
75
|
-
}
|
|
76
|
-
warn('LadybugDB native binding missing — installing @ladybugdb/core-win32-x64...');
|
|
77
|
-
const gitnexusDir = path.join(npmRoot, 'gitnexus');
|
|
78
|
-
if (exec('npm install @ladybugdb/core-win32-x64 --no-save', { cwd: gitnexusDir })) {
|
|
79
|
-
ok('LadybugDB native binding installed');
|
|
80
|
-
} else {
|
|
81
|
-
warn('Could not install LadybugDB binding. Run manually:');
|
|
82
|
-
warn(' cd "' + gitnexusDir + '"');
|
|
83
|
-
warn(' npm install @ladybugdb/core-win32-x64 --no-save');
|
|
84
|
-
}
|
|
85
|
-
} catch {
|
|
86
|
-
warn('Could not verify LadybugDB binding — if gitnexus analyze fails at 60%, run:');
|
|
87
|
-
info(' npm root -g (find global node_modules path)');
|
|
88
|
-
info(' cd <path>\\gitnexus && npm install @ladybugdb/core-win32-x64 --no-save');
|
|
89
|
-
}
|
|
90
|
-
}
|
|
91
|
-
|
|
92
64
|
function setupGitnexusMcp() {
|
|
93
65
|
step('GitNexus MCP');
|
|
94
66
|
if (!hasCommand('claude')) {
|
|
@@ -96,17 +68,10 @@ function setupGitnexusMcp() {
|
|
|
96
68
|
return;
|
|
97
69
|
}
|
|
98
70
|
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
: warn('MCP setup failed — run manually: claude mcp add gitnexus -- cmd /c npx -y gitnexus@latest mcp');
|
|
104
|
-
} else {
|
|
105
|
-
info('Configuring GitNexus MCP...');
|
|
106
|
-
exec('claude mcp add gitnexus -- npx -y gitnexus@latest mcp')
|
|
107
|
-
? ok('GitNexus MCP configured')
|
|
108
|
-
: warn('MCP setup failed — run manually: claude mcp add gitnexus -- npx -y gitnexus@latest mcp');
|
|
109
|
-
}
|
|
71
|
+
info('Configuring GitNexus MCP...');
|
|
72
|
+
exec('claude mcp add gitnexus -- npx -y gitnexus@latest mcp')
|
|
73
|
+
? ok('GitNexus MCP configured')
|
|
74
|
+
: warn('MCP setup failed — run manually: claude mcp add gitnexus -- npx -y gitnexus@latest mcp');
|
|
110
75
|
}
|
|
111
76
|
|
|
112
77
|
module.exports = { installGlobal };
|
package/src/project.js
CHANGED
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
const path = require('path');
|
|
3
3
|
const fs = require('fs');
|
|
4
|
-
const { ok, info, warn, step, hasCommand, exec, copyDir, copyFile
|
|
4
|
+
const { ok, info, warn, step, hasCommand, exec, copyDir, copyFile } = require('./utils');
|
|
5
5
|
|
|
6
6
|
const PKG_ROOT = path.join(__dirname, '..');
|
|
7
7
|
const TEMPLATES = path.join(PKG_ROOT, 'assets', 'templates');
|
|
8
|
-
const SKILLS_SRC = path.join(PKG_ROOT, '
|
|
9
|
-
const BMAD_SRC = path.join(PKG_ROOT, '
|
|
8
|
+
const SKILLS_SRC = path.join(PKG_ROOT, 'tools', 'skills');
|
|
9
|
+
const BMAD_SRC = path.join(PKG_ROOT, 'tools', 'bmad');
|
|
10
10
|
const CWD = process.cwd();
|
|
11
11
|
|
|
12
12
|
async function installProject() {
|
|
@@ -49,7 +49,7 @@ function scaffoldFiles() {
|
|
|
49
49
|
ok(`${dst} — already exists, skipped`);
|
|
50
50
|
} else {
|
|
51
51
|
copyFile(src, dstAbs);
|
|
52
|
-
if (chmod
|
|
52
|
+
if (chmod) fs.chmodSync(dstAbs, chmod);
|
|
53
53
|
ok(`${dst} — created`);
|
|
54
54
|
}
|
|
55
55
|
}
|
|
@@ -60,7 +60,7 @@ function scaffoldFiles() {
|
|
|
60
60
|
function scaffoldBmadWorkspace() {
|
|
61
61
|
step('BMAD workspace');
|
|
62
62
|
|
|
63
|
-
const bmadDst = path.join(CWD, '_bmad');
|
|
63
|
+
const bmadDst = path.join(CWD, '.vsaf', '_bmad');
|
|
64
64
|
if (!fs.existsSync(BMAD_SRC)) {
|
|
65
65
|
warn('Packaged _bmad not found — skipping BMAD workspace scaffold');
|
|
66
66
|
} else if (fs.existsSync(bmadDst)) {
|
|
@@ -71,11 +71,11 @@ function scaffoldBmadWorkspace() {
|
|
|
71
71
|
}
|
|
72
72
|
|
|
73
73
|
const outputDirs = [
|
|
74
|
-
path.join(CWD, '
|
|
75
|
-
path.join(CWD, '
|
|
76
|
-
path.join(CWD, '
|
|
77
|
-
path.join(CWD, '
|
|
78
|
-
path.join(CWD, '
|
|
74
|
+
path.join(CWD, '.vsaf', 'docs'),
|
|
75
|
+
path.join(CWD, '.vsaf', 'docs', 'srs'),
|
|
76
|
+
path.join(CWD, '.vsaf', 'docs', 'testcases'),
|
|
77
|
+
path.join(CWD, '.vsaf', 'docs', 'planning-artifacts'),
|
|
78
|
+
path.join(CWD, '.vsaf', 'docs', 'implementation-artifacts'),
|
|
79
79
|
];
|
|
80
80
|
|
|
81
81
|
let created = 0;
|
|
@@ -141,7 +141,7 @@ function syncLocalBmadSkills() {
|
|
|
141
141
|
function initGitNexus() {
|
|
142
142
|
step('GitNexus');
|
|
143
143
|
if (!hasCommand('gitnexus')) { warn('gitnexus not found — run: vsaf global'); return; }
|
|
144
|
-
const analyzeCmd = 'gitnexus analyze';
|
|
144
|
+
const analyzeCmd = 'gitnexus analyze --skip-git';
|
|
145
145
|
info('Indexing repository (gitnexus analyze)...');
|
|
146
146
|
exec(analyzeCmd, { cwd: CWD }) ? ok('Repository indexed') : warn('gitnexus analyze failed — run manually');
|
|
147
147
|
}
|
package/src/status.js
CHANGED
|
@@ -15,8 +15,8 @@ async function showStatus() {
|
|
|
15
15
|
console.log('\n\x1b[1mProject (current repo)\x1b[0m');
|
|
16
16
|
checkPath('.claude/settings.json', 'Project settings');
|
|
17
17
|
checkPath('CLAUDE.md', 'Workflow rules');
|
|
18
|
-
checkPath('_bmad',
|
|
19
|
-
checkPath('docs
|
|
18
|
+
checkPath('.vsaf/_bmad', 'BMAD workspace');
|
|
19
|
+
checkPath('.vsaf/docs', 'Project artifact folder');
|
|
20
20
|
checkProjectSkillDir('.claude/skills', 'Project BMAD skills (.claude)');
|
|
21
21
|
checkProjectSkillDir('.codex/skills', 'Project BMAD skills (.codex)');
|
|
22
22
|
checkPath('.gitnexus', 'GitNexus index');
|
package/src/utils.js
CHANGED
|
@@ -11,22 +11,14 @@ const info = (msg) => console.log(` \x1b[36m→\x1b[0m ${msg}`);
|
|
|
11
11
|
const warn = (msg) => console.log(` \x1b[33m!\x1b[0m ${msg}`);
|
|
12
12
|
const step = (msg) => console.log(`\n\x1b[1m${msg}\x1b[0m`);
|
|
13
13
|
|
|
14
|
-
const isWindows = process.platform === 'win32';
|
|
15
|
-
|
|
16
14
|
function hasCommand(cmd) {
|
|
17
|
-
// Try --version first (works on most CLIs
|
|
18
|
-
const versionCheck = spawnSync(cmd, ['--version'], { stdio: 'ignore', shell:
|
|
15
|
+
// Try --version first (works on most CLIs)
|
|
16
|
+
const versionCheck = spawnSync(cmd, ['--version'], { stdio: 'ignore', shell: false });
|
|
19
17
|
if (versionCheck.status === 0) return true;
|
|
20
18
|
|
|
21
19
|
// Fallback: check if command exists on PATH
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
const whereCheck = spawnSync(`where "${cmd}"`, { stdio: 'ignore', shell: true });
|
|
25
|
-
return whereCheck.status === 0;
|
|
26
|
-
} else {
|
|
27
|
-
const pathCheck = spawnSync('sh', ['-c', `command -v "${cmd}"`], { stdio: 'ignore', shell: false });
|
|
28
|
-
return pathCheck.status === 0;
|
|
29
|
-
}
|
|
20
|
+
const pathCheck = spawnSync('sh', ['-c', `command -v "${cmd}"`], { stdio: 'ignore', shell: false });
|
|
21
|
+
return pathCheck.status === 0;
|
|
30
22
|
}
|
|
31
23
|
|
|
32
24
|
function exec(cmd, opts = {}) {
|
|
@@ -62,9 +54,8 @@ function hasGitCommits() {
|
|
|
62
54
|
}
|
|
63
55
|
|
|
64
56
|
function getPlatform() {
|
|
65
|
-
if (process.platform === 'win32') return 'windows';
|
|
66
57
|
if (process.platform === 'darwin') return 'macos';
|
|
67
58
|
return 'linux';
|
|
68
59
|
}
|
|
69
60
|
|
|
70
|
-
module.exports = { ok, info, warn, step, hasCommand, exec, copyDir, copyFile, CLAUDE_HOME,
|
|
61
|
+
module.exports = { ok, info, warn, step, hasCommand, exec, copyDir, copyFile, CLAUDE_HOME, getPlatform, hasGitCommits };
|
package/src/workflow.js
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
const path = require('path');
|
|
4
4
|
const fs = require('fs');
|
|
5
|
-
const { ok, info, warn, step, hasCommand, exec,
|
|
5
|
+
const { ok, info, warn, step, hasCommand, exec, hasGitCommits } = require('./utils');
|
|
6
6
|
|
|
7
7
|
function preflightCheck() {
|
|
8
8
|
// Check: is this a git repo?
|
|
@@ -22,24 +22,6 @@ function preflightCheck() {
|
|
|
22
22
|
return false;
|
|
23
23
|
}
|
|
24
24
|
|
|
25
|
-
// Check (Windows): is LadybugDB native binding present?
|
|
26
|
-
if (isWindows) {
|
|
27
|
-
try {
|
|
28
|
-
const npmRoot = require('child_process')
|
|
29
|
-
.execSync('npm root -g', { encoding: 'utf8', shell: true }).trim();
|
|
30
|
-
const lbugNode = path.join(npmRoot, 'gitnexus', 'node_modules', '@ladybugdb', 'core', 'lbugjs.node');
|
|
31
|
-
if (!fs.existsSync(lbugNode)) {
|
|
32
|
-
warn('LadybugDB native binding missing (lbugjs.node).');
|
|
33
|
-
warn('gitnexus analyze will fail at 60% without it.');
|
|
34
|
-
info('Fix: run this in CMD:');
|
|
35
|
-
info(' cd "' + path.join(npmRoot, 'gitnexus') + '"');
|
|
36
|
-
info(' npm install @ladybugdb/core-win32-x64 --no-save');
|
|
37
|
-
info('Then retry: vsaf index');
|
|
38
|
-
return false;
|
|
39
|
-
}
|
|
40
|
-
} catch { /* can't check, proceed anyway */ }
|
|
41
|
-
}
|
|
42
|
-
|
|
43
25
|
return true;
|
|
44
26
|
}
|
|
45
27
|
|
|
@@ -116,23 +98,7 @@ function runServe() {
|
|
|
116
98
|
}
|
|
117
99
|
|
|
118
100
|
function printAnalyzeHint() {
|
|
119
|
-
|
|
120
|
-
warn('Windows troubleshooting:');
|
|
121
|
-
warn('');
|
|
122
|
-
warn(' [Most common] PowerShell blocks npm global scripts (.ps1).');
|
|
123
|
-
warn(' Use CMD instead of PowerShell, or prefix with cmd /c:');
|
|
124
|
-
warn('');
|
|
125
|
-
warn(' cmd /c gitnexus analyze');
|
|
126
|
-
warn('');
|
|
127
|
-
info(' Other options:');
|
|
128
|
-
info(' - Run via npx: npx gitnexus analyze');
|
|
129
|
-
info(' - Use Git Bash: bash -c "gitnexus analyze"');
|
|
130
|
-
info(' - Use WSL: wsl -- bash -c "cd $(wslpath -a .) && gitnexus analyze"');
|
|
131
|
-
info(' - Or fix PowerShell permanently (Admin):');
|
|
132
|
-
info(' Set-ExecutionPolicy -Scope CurrentUser -ExecutionPolicy RemoteSigned');
|
|
133
|
-
} else {
|
|
134
|
-
info('Try running manually: gitnexus analyze --verbose');
|
|
135
|
-
}
|
|
101
|
+
info('Try running manually: gitnexus analyze --verbose');
|
|
136
102
|
}
|
|
137
103
|
|
|
138
104
|
module.exports = { runIndex, runReview, runClean, runServe };
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
0.4.14
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
/package/{_bmad → tools/bmad}/bmm/1-analysis/bmad-document-project/templates/srs-feature-template.md
RENAMED
|
File without changes
|
/package/{_bmad → tools/bmad}/bmm/1-analysis/bmad-document-project/templates/srs-system-template.md
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
/package/{.claude → tools}/skills/bmad-check-implementation-readiness/steps/step-02-prd-analysis.md
RENAMED
|
File without changes
|
|
File without changes
|
/package/{.claude → tools}/skills/bmad-check-implementation-readiness/steps/step-04-ux-alignment.md
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
/package/{.claude → tools}/skills/bmad-create-architecture/architecture-decision-template.md
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
/package/{.claude → tools}/skills/bmad-create-epics-and-stories/steps/step-02-design-epics.md
RENAMED
|
File without changes
|
/package/{.claude → tools}/skills/bmad-create-epics-and-stories/steps/step-03-create-stories.md
RENAMED
|
File without changes
|
/package/{.claude → tools}/skills/bmad-create-epics-and-stories/steps/step-04-final-validation.md
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|