@esthernandez/vibe-doc 0.2.1 → 0.2.3

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.
Files changed (53) hide show
  1. package/.claude-plugin/plugin.json +8 -0
  2. package/commands/check.md +7 -0
  3. package/commands/generate.md +11 -0
  4. package/commands/scan.md +11 -0
  5. package/commands/status.md +7 -0
  6. package/dist/classifier/index.js +9 -0
  7. package/dist/classifier/llm-prompt.d.ts.map +1 -1
  8. package/dist/classifier/llm-prompt.js +1 -0
  9. package/dist/classifier/scoring-engine.d.ts +2 -1
  10. package/dist/classifier/scoring-engine.d.ts.map +1 -1
  11. package/dist/classifier/scoring-engine.js +16 -0
  12. package/dist/classifier/signals.d.ts.map +1 -1
  13. package/dist/classifier/signals.js +46 -7
  14. package/dist/gap-analyzer/breadcrumbs.d.ts.map +1 -1
  15. package/dist/gap-analyzer/breadcrumbs.js +77 -0
  16. package/dist/gap-analyzer/matrix.d.ts +5 -1
  17. package/dist/gap-analyzer/matrix.d.ts.map +1 -1
  18. package/dist/gap-analyzer/matrix.js +51 -0
  19. package/dist/gap-analyzer/tier-assigner.d.ts.map +1 -1
  20. package/dist/gap-analyzer/tier-assigner.js +14 -2
  21. package/dist/generator/docx-writer.d.ts.map +1 -1
  22. package/dist/generator/docx-writer.js +13 -1
  23. package/dist/generator/extractor.d.ts.map +1 -1
  24. package/dist/generator/extractor.js +91 -0
  25. package/dist/generator/markdown-writer.d.ts.map +1 -1
  26. package/dist/generator/markdown-writer.js +13 -1
  27. package/dist/scanner/file-scanner.d.ts.map +1 -1
  28. package/dist/scanner/file-scanner.js +10 -2
  29. package/dist/templates/embedded/adr.md +45 -0
  30. package/dist/templates/embedded/api-spec.md +55 -0
  31. package/dist/templates/embedded/changelog-contributing.md +67 -0
  32. package/dist/templates/embedded/data-model.md +55 -0
  33. package/dist/templates/embedded/deployment-procedure.md +63 -0
  34. package/dist/templates/embedded/install-guide.md +49 -0
  35. package/dist/templates/embedded/readme.md +55 -0
  36. package/dist/templates/embedded/runbook.md +55 -0
  37. package/dist/templates/embedded/skill-command-reference.md +77 -0
  38. package/dist/templates/embedded/test-plan.md +55 -0
  39. package/dist/templates/embedded/threat-model.md +47 -0
  40. package/dist/templates/index.d.ts +13 -0
  41. package/dist/templates/index.d.ts.map +1 -1
  42. package/dist/templates/index.js +18 -7
  43. package/dist/templates/renderer.d.ts.map +1 -1
  44. package/dist/templates/renderer.js +3 -1
  45. package/package.json +4 -1
  46. package/skills/check/SKILL.md +302 -0
  47. package/skills/generate/SKILL.md +391 -0
  48. package/skills/guide/AGENT_GUIDE.md +318 -0
  49. package/skills/guide/SKILL.md +270 -0
  50. package/skills/guide/references/breadcrumb-heuristics.md +441 -0
  51. package/skills/guide/references/classification-taxonomy.md +391 -0
  52. package/skills/guide/references/documentation-matrix.md +297 -0
  53. package/skills/scan/SKILL.md +219 -0
@@ -41,6 +41,18 @@ exports.writeMarkdown = writeMarkdown;
41
41
  const path = __importStar(require("path"));
42
42
  const fs = __importStar(require("fs"));
43
43
  const logger_1 = require("../utils/logger");
44
+ // Resolve vibe-doc's own version at module load time so generated docs
45
+ // stamp the correct tool version. __dirname in dist/generator/ is one
46
+ // level below the package root.
47
+ const pkgVersion = (() => {
48
+ try {
49
+ const pkgPath = path.resolve(__dirname, '..', '..', 'package.json');
50
+ return JSON.parse(fs.readFileSync(pkgPath, 'utf-8')).version;
51
+ }
52
+ catch {
53
+ return 'unknown';
54
+ }
55
+ })();
44
56
  /**
45
57
  * Write rendered content to a markdown file with metadata header
46
58
  * @param renderedContent - The rendered markdown content
@@ -75,7 +87,7 @@ function writeMarkdown(renderedContent, docType, projectPath, metadata) {
75
87
  */
76
88
  function generateMetadataHeader(metadata, docType) {
77
89
  const lines = [
78
- '<!-- Generated by Vibe Doc v0.1.0 -->',
90
+ `<!-- Generated by Vibe Doc v${pkgVersion} -->`,
79
91
  `<!-- Date: ${metadata.generatedAt} -->`,
80
92
  `<!-- Classification: ${metadata.classification} -->`,
81
93
  `<!-- Source artifacts: ${metadata.sourceArtifacts} files scanned -->`,
@@ -1 +1 @@
1
- {"version":3,"file":"file-scanner.d.ts","sourceRoot":"","sources":["../../src/scanner/file-scanner.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAElD,UAAU,cAAc;IACtB,YAAY,EAAE,eAAe,CAAC;IAC9B,cAAc,EAAE,eAAe,CAAC;IAChC,cAAc,EAAE,eAAe,CAAC;IAChC,aAAa,EAAE,eAAe,CAAC;IAC/B,cAAc,EAAE,eAAe,CAAC;IAChC,WAAW,EAAE,eAAe,CAAC;IAC7B,cAAc,EAAE,eAAe,CAAC;IAChC,SAAS,EAAE,eAAe,CAAC;IAC3B,QAAQ,EAAE,eAAe,CAAC;IAC1B,UAAU,EAAE,eAAe,CAAC;CAC7B;AA8CD,wBAAsB,SAAS,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,CAAC,CA2B5E"}
1
+ {"version":3,"file":"file-scanner.d.ts","sourceRoot":"","sources":["../../src/scanner/file-scanner.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAElD,UAAU,cAAc;IACtB,YAAY,EAAE,eAAe,CAAC;IAC9B,cAAc,EAAE,eAAe,CAAC;IAChC,cAAc,EAAE,eAAe,CAAC;IAChC,aAAa,EAAE,eAAe,CAAC;IAC/B,cAAc,EAAE,eAAe,CAAC;IAChC,WAAW,EAAE,eAAe,CAAC;IAC7B,cAAc,EAAE,eAAe,CAAC;IAChC,SAAS,EAAE,eAAe,CAAC;IAC3B,QAAQ,EAAE,eAAe,CAAC;IAC1B,UAAU,EAAE,eAAe,CAAC;CAC7B;AAmDD,wBAAsB,SAAS,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,CAAC,CA2B5E"}
@@ -46,6 +46,14 @@ function categorizeFile(filePath) {
46
46
  const n = filePath.replace(/\\/g, '/');
47
47
  if (n.endsWith('CLAUDE.md'))
48
48
  return 'configAsDocs';
49
+ // Claude Code plugin manifests (plugin.json, marketplace.json inside .claude-plugin/)
50
+ if (n.includes('/.claude-plugin/') && n.endsWith('.json'))
51
+ return 'packageConfigs';
52
+ // SKILL.md files and command docs are plugin surface area
53
+ if (n.match(/\/skills\/[^/]+\/SKILL\.md$/i))
54
+ return 'documentation';
55
+ if (n.match(/\/commands\/[^/]+\.md$/i))
56
+ return 'documentation';
49
57
  if (n.includes('/.ai/') || n.includes('/.agent/skills/'))
50
58
  return 'agentArtifacts';
51
59
  if (n.includes('/.claude/'))
@@ -64,7 +72,7 @@ function categorizeFile(filePath) {
64
72
  return 'apiSpecs';
65
73
  return 'sourceCode';
66
74
  }
67
- function walkDir(dir, maxDepth = 4, currentDepth = 0) {
75
+ function walkDir(dir, maxDepth = 6, currentDepth = 0) {
68
76
  const files = [];
69
77
  if (currentDepth > maxDepth)
70
78
  return files;
@@ -73,7 +81,7 @@ function walkDir(dir, maxDepth = 4, currentDepth = 0) {
73
81
  for (const entry of entries) {
74
82
  if (EXCLUDE_DIRS.has(entry.name))
75
83
  continue;
76
- if (entry.name.startsWith('.') && entry.name !== '.ai' && entry.name !== '.agent' && entry.name !== '.claude' && entry.name !== '.github')
84
+ if (entry.name.startsWith('.') && entry.name !== '.ai' && entry.name !== '.agent' && entry.name !== '.claude' && entry.name !== '.claude-plugin' && entry.name !== '.github')
77
85
  continue;
78
86
  const fullPath = path.join(dir, entry.name);
79
87
  if (entry.isFile()) {
@@ -0,0 +1,45 @@
1
+ ---
2
+ docType: adr
3
+ version: 1.0
4
+ templateVersion: 1
5
+ ---
6
+
7
+ # Architecture Decision Record
8
+
9
+ ## Status
10
+
11
+ {{user.status}}
12
+
13
+ <!-- NEEDS INPUT: What is the status of this decision? (Proposed, Accepted, Deprecated, Superseded) -->
14
+
15
+ ## Context
16
+
17
+ {{extracted.context}}
18
+
19
+ {{user.context}}
20
+
21
+ <!-- NEEDS INPUT: What is the issue that motivated this decision or any context you should record here? -->
22
+
23
+ ## Decision
24
+
25
+ {{extracted.decision}}
26
+
27
+ {{user.decision}}
28
+
29
+ <!-- NEEDS INPUT: What is the change that we're proposing or have agreed to do? -->
30
+
31
+ ## Consequences
32
+
33
+ {{extracted.consequences}}
34
+
35
+ {{user.consequences}}
36
+
37
+ <!-- NEEDS INPUT: What becomes easier or more difficult to do because of this change? Include positive and negative consequences. -->
38
+
39
+ ## Alternatives
40
+
41
+ {{extracted.alternatives}}
42
+
43
+ {{user.alternatives}}
44
+
45
+ <!-- NEEDS INPUT: What other options did you consider and why were they rejected? -->
@@ -0,0 +1,55 @@
1
+ ---
2
+ docType: api-spec
3
+ version: 1.0
4
+ templateVersion: 1
5
+ ---
6
+
7
+ # API Specification
8
+
9
+ ## Base URL
10
+
11
+ {{extracted.base-url}}
12
+
13
+ {{user.base-url}}
14
+
15
+ <!-- NEEDS INPUT: What is the base URL for your API? Include protocol, hostname, and port. -->
16
+
17
+ ## Endpoints
18
+
19
+ {{extracted.endpoints}}
20
+
21
+ {{user.endpoints}}
22
+
23
+ <!-- NEEDS INPUT: List your primary endpoints. Include HTTP method, path, and brief description. -->
24
+
25
+ ## Request Format
26
+
27
+ {{extracted.request-format}}
28
+
29
+ {{user.request-format}}
30
+
31
+ <!-- NEEDS INPUT: Describe the request format. Include content-type, headers, body structure, and examples. -->
32
+
33
+ ## Response Format
34
+
35
+ {{extracted.response-format}}
36
+
37
+ {{user.response-format}}
38
+
39
+ <!-- NEEDS INPUT: Describe the response format. Include status codes, body structure, headers, and examples. -->
40
+
41
+ ## Error Handling
42
+
43
+ {{extracted.error-handling}}
44
+
45
+ {{user.error-handling}}
46
+
47
+ <!-- NEEDS INPUT: How do you handle errors? Include error codes, error message format, and common errors. -->
48
+
49
+ ## Authentication
50
+
51
+ {{extracted.authentication}}
52
+
53
+ {{user.authentication}}
54
+
55
+ <!-- NEEDS INPUT: How do clients authenticate? Include auth mechanisms, required headers, and token formats. -->
@@ -0,0 +1,67 @@
1
+ ---
2
+ docType: changelog-contributing
3
+ version: 1.0
4
+ templateVersion: 1
5
+ ---
6
+
7
+ # Changelog and Contributing
8
+
9
+ ## Changelog
10
+
11
+ All notable changes to this project are documented here. The format follows [Keep a Changelog](https://keepachangelog.com/en/1.1.0/) and versioning follows [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
12
+
13
+ ### Unreleased
14
+
15
+ {{user.unreleased}}
16
+
17
+ <!-- NEEDS INPUT: Changes that have landed on main but haven't shipped in a release yet. Group by Added / Changed / Deprecated / Removed / Fixed / Security. -->
18
+
19
+ ### {{user.latestVersion}} — {{user.latestDate}}
20
+
21
+ {{extracted.latestRelease}}
22
+
23
+ {{user.latestRelease}}
24
+
25
+ <!-- NEEDS INPUT: The most recent shipped version. Same Added/Changed/etc. grouping. -->
26
+
27
+ ### Prior Releases
28
+
29
+ {{extracted.priorReleases}}
30
+
31
+ {{user.priorReleases}}
32
+
33
+ <!-- NEEDS INPUT: Older releases in reverse chronological order. Keep summaries short — point to git tags or GitHub releases for full diffs. -->
34
+
35
+ ---
36
+
37
+ ## Contributing
38
+
39
+ ### How to Contribute
40
+
41
+ {{user.howToContribute}}
42
+
43
+ <!-- NEEDS INPUT: The high-level contributor path — fork, branch, change, PR. Link to the code of conduct and any contributor license terms. -->
44
+
45
+ ### Development Setup
46
+
47
+ {{user.devSetup}}
48
+
49
+ <!-- NEEDS INPUT: What a contributor needs to build and test locally. Prerequisites, install commands, how to run the test suite. This may overlap with the install guide — that's fine, contributors need it in one place. -->
50
+
51
+ ### Proposing a Change
52
+
53
+ {{user.proposingChange}}
54
+
55
+ <!-- NEEDS INPUT: Branching strategy, commit message format, PR template expectations, and any required checks (tests, linters, type checks) that must pass. -->
56
+
57
+ ### Review Process
58
+
59
+ {{user.reviewProcess}}
60
+
61
+ <!-- NEEDS INPUT: Who reviews PRs, what the turnaround looks like, and what approval is required before merge. -->
62
+
63
+ ### Code of Conduct
64
+
65
+ {{user.codeOfConduct}}
66
+
67
+ <!-- NEEDS INPUT: A link to the code of conduct or a short statement of expected behavior. -->
@@ -0,0 +1,55 @@
1
+ ---
2
+ docType: data-model
3
+ version: 1.0
4
+ templateVersion: 1
5
+ ---
6
+
7
+ # Data Model
8
+
9
+ ## Entity Overview
10
+
11
+ {{extracted.entity-overview}}
12
+
13
+ {{user.entity-overview}}
14
+
15
+ <!-- NEEDS INPUT: What are the main entities/tables in your data model? Include brief descriptions of each. -->
16
+
17
+ ## Table Schemas
18
+
19
+ {{extracted.table-schemas}}
20
+
21
+ {{user.table-schemas}}
22
+
23
+ <!-- NEEDS INPUT: Describe the schema for each table. Include column names, types, and descriptions. -->
24
+
25
+ ## Relationships
26
+
27
+ {{extracted.relationships}}
28
+
29
+ {{user.relationships}}
30
+
31
+ <!-- NEEDS INPUT: What are the relationships between tables? Include foreign keys and cardinality. -->
32
+
33
+ ## Constraints
34
+
35
+ {{extracted.constraints}}
36
+
37
+ {{user.constraints}}
38
+
39
+ <!-- NEEDS INPUT: What constraints and validation rules exist? Include unique constraints, check constraints, and business rules. -->
40
+
41
+ ## Indexes
42
+
43
+ {{extracted.indexes}}
44
+
45
+ {{user.indexes}}
46
+
47
+ <!-- NEEDS INPUT: What indexes exist and why? Include primary keys, unique indexes, and performance indexes. -->
48
+
49
+ ## Migration Strategy
50
+
51
+ {{extracted.migration-strategy}}
52
+
53
+ {{user.migration-strategy}}
54
+
55
+ <!-- NEEDS INPUT: How do you handle schema migrations? Include versioning, rollback strategy, and zero-downtime deployment. -->
@@ -0,0 +1,63 @@
1
+ ---
2
+ docType: deployment-procedure
3
+ version: 1.0
4
+ templateVersion: 1
5
+ ---
6
+
7
+ # Deployment Procedure
8
+
9
+ ## Prerequisites
10
+
11
+ {{extracted.prerequisites}}
12
+
13
+ {{user.prerequisites}}
14
+
15
+ <!-- NEEDS INPUT: What prerequisites must be met before deployment? Include access, tools, accounts, and configurations. -->
16
+
17
+ ## Build Process
18
+
19
+ {{extracted.build-process}}
20
+
21
+ {{user.build-process}}
22
+
23
+ <!-- NEEDS INPUT: What are the steps to build the application? Include compilation, dependency installation, and artifact generation. -->
24
+
25
+ ## Environment Setup
26
+
27
+ {{extracted.environment-setup}}
28
+
29
+ {{user.environment-setup}}
30
+
31
+ <!-- NEEDS INPUT: What environment variables, secrets, and configurations are required for each environment? -->
32
+
33
+ ## Testing Before Deploy
34
+
35
+ {{extracted.testing-before-deploy}}
36
+
37
+ {{user.testing-before-deploy}}
38
+
39
+ <!-- NEEDS INPUT: What tests and validations run before deployment? Include smoke tests, integration tests, and health checks. -->
40
+
41
+ ## Deployment Steps
42
+
43
+ {{extracted.deployment-steps}}
44
+
45
+ {{user.deployment-steps}}
46
+
47
+ <!-- NEEDS INPUT: What are the step-by-step deployment instructions? Include database migrations, service restarts, and traffic shifting. -->
48
+
49
+ ## Post-Deployment Checks
50
+
51
+ {{extracted.post-deployment-checks}}
52
+
53
+ {{user.post-deployment-checks}}
54
+
55
+ <!-- NEEDS INPUT: What checks verify the deployment was successful? Include health checks, endpoint tests, and monitoring. -->
56
+
57
+ ## Rollback Procedure
58
+
59
+ {{extracted.rollback-procedure}}
60
+
61
+ {{user.rollback-procedure}}
62
+
63
+ <!-- NEEDS INPUT: How do you rollback to the previous version? Include steps, data rollback, and communication plan. -->
@@ -0,0 +1,49 @@
1
+ ---
2
+ docType: install-guide
3
+ version: 1.0
4
+ templateVersion: 1
5
+ ---
6
+
7
+ # Installation Guide
8
+
9
+ ## Prerequisites
10
+
11
+ {{extracted.prerequisites}}
12
+
13
+ {{user.prerequisites}}
14
+
15
+ <!-- NEEDS INPUT: What does a user need before they start? OS, runtime versions (Node 18+, Python 3.11+, etc.), required CLI tools, accounts, API keys. Be specific about minimum versions. -->
16
+
17
+ ## Install Steps
18
+
19
+ {{extracted.installSteps}}
20
+
21
+ {{user.installSteps}}
22
+
23
+ <!-- NEEDS INPUT: The exact ordered steps. For each step, include the command to run and the expected outcome. If there are multiple install paths (npm vs. git clone vs. marketplace), list them all. -->
24
+
25
+ ## Verification
26
+
27
+ {{user.verification}}
28
+
29
+ <!-- NEEDS INPUT: How does a user confirm the install worked? A command they can run (e.g., `vibe-doc --version`), a health-check URL, or a first-use command that should produce expected output. -->
30
+
31
+ ## Configuration
32
+
33
+ {{user.configuration}}
34
+
35
+ <!-- NEEDS INPUT: Any required configuration after install — env vars, config files, credentials. If none are required, say so explicitly. -->
36
+
37
+ ## Troubleshooting
38
+
39
+ {{extracted.troubleshooting}}
40
+
41
+ {{user.troubleshooting}}
42
+
43
+ <!-- NEEDS INPUT: The three to five most common installation failures and their fixes. Real users have hit these problems — write the fix, not a generic "contact support." -->
44
+
45
+ ## Uninstalling
46
+
47
+ {{user.uninstall}}
48
+
49
+ <!-- NEEDS INPUT: How to cleanly remove the project. Include any config files or data directories that need manual cleanup. -->
@@ -0,0 +1,55 @@
1
+ ---
2
+ docType: readme
3
+ version: 1.0
4
+ templateVersion: 1
5
+ ---
6
+
7
+ # {{user.projectName}}
8
+
9
+ {{extracted.tagline}}
10
+
11
+ {{user.tagline}}
12
+
13
+ <!-- NEEDS INPUT: One-sentence description of what this project is and who it's for. -->
14
+
15
+ ## Overview
16
+
17
+ {{extracted.overview}}
18
+
19
+ {{user.overview}}
20
+
21
+ <!-- NEEDS INPUT: A short paragraph explaining what the project does, the problem it solves, and the audience. Keep it under 100 words. -->
22
+
23
+ ## Installation
24
+
25
+ {{extracted.installation}}
26
+
27
+ {{user.installation}}
28
+
29
+ <!-- NEEDS INPUT: The shortest path to getting the project installed and working. Include prerequisites and the exact install command. -->
30
+
31
+ ## Usage
32
+
33
+ {{extracted.usage}}
34
+
35
+ {{user.usage}}
36
+
37
+ <!-- NEEDS INPUT: A minimal working example showing the most common use case. Prefer a code block or a short step list over prose. -->
38
+
39
+ ## Examples
40
+
41
+ {{user.examples}}
42
+
43
+ <!-- NEEDS INPUT: Two or three additional examples covering the next-most-common use cases. Link to a /docs or /examples folder if one exists. -->
44
+
45
+ ## Documentation
46
+
47
+ {{user.documentation}}
48
+
49
+ <!-- NEEDS INPUT: Where does a reader go next? Link to fuller docs, a command reference, a changelog, or a contributing guide. -->
50
+
51
+ ## License
52
+
53
+ {{user.license}}
54
+
55
+ <!-- NEEDS INPUT: The project's license (usually one line — e.g. "MIT" — and a link to LICENSE). -->
@@ -0,0 +1,55 @@
1
+ ---
2
+ docType: runbook
3
+ version: 1.0
4
+ templateVersion: 1
5
+ ---
6
+
7
+ # Runbook
8
+
9
+ ## Service Overview
10
+
11
+ {{extracted.service-overview}}
12
+
13
+ {{user.service-overview}}
14
+
15
+ <!-- NEEDS INPUT: What does this service do? What is its primary responsibility? -->
16
+
17
+ ## Startup Procedure
18
+
19
+ {{extracted.startup-procedure}}
20
+
21
+ {{user.startup-procedure}}
22
+
23
+ <!-- NEEDS INPUT: What are the steps to start the service? Include environment setup, dependencies, configuration. -->
24
+
25
+ ## Health Checks
26
+
27
+ {{extracted.health-checks}}
28
+
29
+ {{user.health-checks}}
30
+
31
+ <!-- NEEDS INPUT: How do you verify the service is healthy? What are the key metrics or checks? -->
32
+
33
+ ## Common Issues
34
+
35
+ {{extracted.common-issues}}
36
+
37
+ {{user.common-issues}}
38
+
39
+ <!-- NEEDS INPUT: What are the most common problems and their solutions? -->
40
+
41
+ ## Rollback Procedure
42
+
43
+ {{extracted.rollback-procedure}}
44
+
45
+ {{user.rollback-procedure}}
46
+
47
+ <!-- NEEDS INPUT: How do you roll back to a previous version? What steps are required? -->
48
+
49
+ ## Escalation Path
50
+
51
+ {{extracted.escalation-path}}
52
+
53
+ {{user.escalation-path}}
54
+
55
+ <!-- NEEDS INPUT: Who should be contacted for different severity levels? What is the on-call process? -->
@@ -0,0 +1,77 @@
1
+ ---
2
+ docType: skill-command-reference
3
+ version: 1.0
4
+ templateVersion: 1
5
+ ---
6
+
7
+ # Skill and Command Reference
8
+
9
+ This document lists every skill and command this plugin exposes, what each one does, and how to invoke it.
10
+
11
+ ## Skills
12
+
13
+ {{extracted.skillList}}
14
+
15
+ {{user.skillList}}
16
+
17
+ <!-- NEEDS INPUT: One entry per skill. For each: the skill name, a one-sentence description, when a user should reach for it, and a pointer to the underlying SKILL.md file if applicable. -->
18
+
19
+ ### Skill: {{user.skillName}}
20
+
21
+ **Purpose:** {{user.skillPurpose}}
22
+
23
+ **When to use:** {{user.skillWhenToUse}}
24
+
25
+ **Inputs:** {{user.skillInputs}}
26
+
27
+ **Example:**
28
+
29
+ ```
30
+ {{user.skillExample}}
31
+ ```
32
+
33
+ <!-- NEEDS INPUT: Repeat this block for each skill the plugin ships. -->
34
+
35
+ ## Commands
36
+
37
+ {{extracted.commandList}}
38
+
39
+ {{user.commandList}}
40
+
41
+ <!-- NEEDS INPUT: One entry per slash command. For each: the command, its purpose, arguments (required and optional), and a minimal example invocation. -->
42
+
43
+ ### Command: `{{user.commandName}}`
44
+
45
+ **Purpose:** {{user.commandPurpose}}
46
+
47
+ **Syntax:** `/{{user.commandName}} [arguments]`
48
+
49
+ **Arguments:**
50
+
51
+ {{user.commandArguments}}
52
+
53
+ <!-- NEEDS INPUT: List each argument with name, type, required/optional, and a one-line description. -->
54
+
55
+ **Example:**
56
+
57
+ ```
58
+ {{user.commandExample}}
59
+ ```
60
+
61
+ **Output:**
62
+
63
+ {{user.commandOutput}}
64
+
65
+ <!-- NEEDS INPUT: What the user sees when the command succeeds. A screenshot, an expected text snippet, or a description of the artifact created. -->
66
+
67
+ ## Composition
68
+
69
+ {{user.composition}}
70
+
71
+ <!-- NEEDS INPUT: If the plugin's commands chain together (e.g., /scan → /report → /generate), document the typical workflow here. Show the order and what each step hands to the next. -->
72
+
73
+ ## Errors and Edge Cases
74
+
75
+ {{user.errors}}
76
+
77
+ <!-- NEEDS INPUT: The most common failure modes (missing prerequisites, invalid inputs, environment issues) and how the user should respond. -->
@@ -0,0 +1,55 @@
1
+ ---
2
+ docType: test-plan
3
+ version: 1.0
4
+ templateVersion: 1
5
+ ---
6
+
7
+ # Test Plan
8
+
9
+ ## Test Strategy
10
+
11
+ {{extracted.test-strategy}}
12
+
13
+ {{user.test-strategy}}
14
+
15
+ <!-- NEEDS INPUT: What is your overall testing strategy? Include testing levels, approach, and priorities. -->
16
+
17
+ ## Unit Tests
18
+
19
+ {{extracted.unit-tests}}
20
+
21
+ {{user.unit-tests}}
22
+
23
+ <!-- NEEDS INPUT: What components and functions are covered by unit tests? Include test coverage goals. -->
24
+
25
+ ## Integration Tests
26
+
27
+ {{extracted.integration-tests}}
28
+
29
+ {{user.integration-tests}}
30
+
31
+ <!-- NEEDS INPUT: What system interactions are tested? Include database, APIs, and third-party services. -->
32
+
33
+ ## E2E Tests
34
+
35
+ {{extracted.e2e-tests}}
36
+
37
+ {{user.e2e-tests}}
38
+
39
+ <!-- NEEDS INPUT: What critical user workflows are tested end-to-end? Include scenarios and acceptance criteria. -->
40
+
41
+ ## Performance Tests
42
+
43
+ {{extracted.performance-tests}}
44
+
45
+ {{user.performance-tests}}
46
+
47
+ <!-- NEEDS INPUT: What performance characteristics are tested? Include load tests, latency targets, and throughput. -->
48
+
49
+ ## Coverage Targets
50
+
51
+ {{extracted.coverage-targets}}
52
+
53
+ {{user.coverage-targets}}
54
+
55
+ <!-- NEEDS INPUT: What are your code coverage targets? Include overall target and critical areas. -->
@@ -0,0 +1,47 @@
1
+ ---
2
+ docType: threat-model
3
+ version: 1.0
4
+ templateVersion: 1
5
+ ---
6
+
7
+ # Threat Model
8
+
9
+ ## Asset Scope
10
+
11
+ {{extracted.asset-scope}}
12
+
13
+ {{user.asset-scope}}
14
+
15
+ <!-- NEEDS INPUT: What are the valuable assets you need to protect? Include data, infrastructure, and systems. -->
16
+
17
+ ## Threat Actors
18
+
19
+ {{extracted.threat-actors}}
20
+
21
+ {{user.threat-actors}}
22
+
23
+ <!-- NEEDS INPUT: Who are the potential threat actors? (e.g., external attackers, malicious insiders, nation-states) -->
24
+
25
+ ## Threat Scenarios
26
+
27
+ {{extracted.threat-scenarios}}
28
+
29
+ {{user.threat-scenarios}}
30
+
31
+ <!-- NEEDS INPUT: What are the specific threat scenarios you are concerned about? How might they compromise your assets? -->
32
+
33
+ ## Mitigations
34
+
35
+ {{extracted.mitigations}}
36
+
37
+ {{user.mitigations}}
38
+
39
+ <!-- NEEDS INPUT: What controls do you have in place to mitigate these threats? Include technical, process, and organizational controls. -->
40
+
41
+ ## Residual Risks
42
+
43
+ {{extracted.residual-risks}}
44
+
45
+ {{user.residual-risks}}
46
+
47
+ <!-- NEEDS INPUT: What risks remain after implementing mitigations? What is your risk tolerance? -->