@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.
- package/.claude-plugin/plugin.json +8 -0
- package/commands/check.md +7 -0
- package/commands/generate.md +11 -0
- package/commands/scan.md +11 -0
- package/commands/status.md +7 -0
- package/dist/classifier/index.js +9 -0
- package/dist/classifier/llm-prompt.d.ts.map +1 -1
- package/dist/classifier/llm-prompt.js +1 -0
- package/dist/classifier/scoring-engine.d.ts +2 -1
- package/dist/classifier/scoring-engine.d.ts.map +1 -1
- package/dist/classifier/scoring-engine.js +16 -0
- package/dist/classifier/signals.d.ts.map +1 -1
- package/dist/classifier/signals.js +46 -7
- package/dist/gap-analyzer/breadcrumbs.d.ts.map +1 -1
- package/dist/gap-analyzer/breadcrumbs.js +77 -0
- package/dist/gap-analyzer/matrix.d.ts +5 -1
- package/dist/gap-analyzer/matrix.d.ts.map +1 -1
- package/dist/gap-analyzer/matrix.js +51 -0
- package/dist/gap-analyzer/tier-assigner.d.ts.map +1 -1
- package/dist/gap-analyzer/tier-assigner.js +14 -2
- package/dist/generator/docx-writer.d.ts.map +1 -1
- package/dist/generator/docx-writer.js +13 -1
- package/dist/generator/extractor.d.ts.map +1 -1
- package/dist/generator/extractor.js +91 -0
- package/dist/generator/markdown-writer.d.ts.map +1 -1
- package/dist/generator/markdown-writer.js +13 -1
- package/dist/scanner/file-scanner.d.ts.map +1 -1
- package/dist/scanner/file-scanner.js +10 -2
- package/dist/templates/embedded/adr.md +45 -0
- package/dist/templates/embedded/api-spec.md +55 -0
- package/dist/templates/embedded/changelog-contributing.md +67 -0
- package/dist/templates/embedded/data-model.md +55 -0
- package/dist/templates/embedded/deployment-procedure.md +63 -0
- package/dist/templates/embedded/install-guide.md +49 -0
- package/dist/templates/embedded/readme.md +55 -0
- package/dist/templates/embedded/runbook.md +55 -0
- package/dist/templates/embedded/skill-command-reference.md +77 -0
- package/dist/templates/embedded/test-plan.md +55 -0
- package/dist/templates/embedded/threat-model.md +47 -0
- package/dist/templates/index.d.ts +13 -0
- package/dist/templates/index.d.ts.map +1 -1
- package/dist/templates/index.js +18 -7
- package/dist/templates/renderer.d.ts.map +1 -1
- package/dist/templates/renderer.js +3 -1
- package/package.json +4 -1
- package/skills/check/SKILL.md +302 -0
- package/skills/generate/SKILL.md +391 -0
- package/skills/guide/AGENT_GUIDE.md +318 -0
- package/skills/guide/SKILL.md +270 -0
- package/skills/guide/references/breadcrumb-heuristics.md +441 -0
- package/skills/guide/references/classification-taxonomy.md +391 -0
- package/skills/guide/references/documentation-matrix.md +297 -0
- 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
|
-
|
|
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;
|
|
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 =
|
|
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? -->
|