create-quiver 0.4.0
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/.github/ISSUE_TEMPLATE/bug_report.md +15 -0
- package/.github/ISSUE_TEMPLATE/feature_request.md +15 -0
- package/.github/pull_request_template.md +4 -0
- package/.github/workflows/ci.yml +74 -0
- package/CHANGELOG.md +24 -0
- package/CODE_OF_CONDUCT.md +12 -0
- package/CONTRIBUTING.md +15 -0
- package/LICENSE +21 -0
- package/README.md +118 -0
- package/README_FOR_AI.md +90 -0
- package/ROADMAP.md +20 -0
- package/SECURITY.md +12 -0
- package/TEMPLATE.md +108 -0
- package/bin/create-quiver.js +8 -0
- package/docs/CONTEXTO.md.template +45 -0
- package/docs/DOCUMENTATION_GUIDE.md.template +34 -0
- package/docs/GITFLOW_PR_GUIDE.md.template +52 -0
- package/docs/INDEX.md.template +41 -0
- package/docs/MOCK_DATA_GUIDE.md.template +31 -0
- package/docs/MULTI_AGENT_WORKFLOW.md.template +31 -0
- package/docs/STATUS.md.template +26 -0
- package/docs/SUPPORT_MATRIX.md.template +31 -0
- package/docs/TESTING_GUIDE_FOR_AI.md.template +42 -0
- package/docs/TROUBLESHOOTING.md.template +70 -0
- package/docs/UI_STANDARDS.md.template +31 -0
- package/docs/WORKFLOW.md.template +56 -0
- package/docs/ai/LESSONS.md.template +24 -0
- package/docs/ai/PRINCIPLES.md +25 -0
- package/docs/ai/RULES.yaml +33 -0
- package/i18n/es/README.md +15 -0
- package/i18n/es/README_FOR_AI.md +6 -0
- package/i18n/es/TEMPLATE.md +18 -0
- package/i18n/es/docs/CONTEXTO.md.template +9 -0
- package/i18n/es/docs/DOCUMENTATION_GUIDE.md.template +4 -0
- package/i18n/es/docs/GITFLOW_PR_GUIDE.md.template +4 -0
- package/i18n/es/docs/INDEX.md.template +10 -0
- package/i18n/es/docs/MOCK_DATA_GUIDE.md.template +4 -0
- package/i18n/es/docs/MULTI_AGENT_WORKFLOW.md.template +4 -0
- package/i18n/es/docs/STATUS.md.template +9 -0
- package/i18n/es/docs/TESTING_GUIDE_FOR_AI.md.template +7 -0
- package/i18n/es/docs/UI_STANDARDS.md.template +4 -0
- package/i18n/es/docs/WORKFLOW.md.template +6 -0
- package/i18n/es/docs/ai/LESSONS.md.template +3 -0
- package/i18n/es/docs/ai/PRINCIPLES.md +7 -0
- package/i18n/es/docs/ai/RULES.yaml +7 -0
- package/package.json +19 -0
- package/package.template.json +10 -0
- package/scripts/check-pr-readiness.sh +138 -0
- package/scripts/check-scope.sh +150 -0
- package/scripts/check-slice-readiness.sh +319 -0
- package/scripts/cleanup-slice.sh +177 -0
- package/scripts/init-docs.sh +368 -0
- package/scripts/migrate-project.sh +218 -0
- package/scripts/package-quiver.sh +124 -0
- package/scripts/refresh-active-slices.sh +232 -0
- package/scripts/release-quiver.sh +77 -0
- package/scripts/start-slice.sh +429 -0
- package/specs/[project-name]/EVIDENCE_REPORT.md.template +15 -0
- package/specs/[project-name]/SPEC.md.template +39 -0
- package/specs/[project-name]/STATUS.md.template +22 -0
- package/specs/[project-name]/slices/pr.md.template +97 -0
- package/specs/[project-name]/slices/slice-template/slice.json +69 -0
- package/specs/quiver-v05-readme-adoption-contract/EVIDENCE_REPORT.md +21 -0
- package/specs/quiver-v05-readme-adoption-contract/SPEC.md +40 -0
- package/specs/quiver-v05-readme-adoption-contract/STATUS.md +24 -0
- package/specs/quiver-v05-readme-adoption-contract/slices/slice-01-readme-adoption-contract/slice.json +68 -0
- package/specs/quiver-v06-release-readiness/EVIDENCE_REPORT.md +23 -0
- package/specs/quiver-v06-release-readiness/SPEC.md +40 -0
- package/specs/quiver-v06-release-readiness/STATUS.md +24 -0
- package/specs/quiver-v06-release-readiness/slices/slice-01-first-npm-release-readiness/slice.json +71 -0
- package/src/create-quiver/index.js +329 -0
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
name: CI
|
|
2
|
+
|
|
3
|
+
on:
|
|
4
|
+
push:
|
|
5
|
+
branches:
|
|
6
|
+
- main
|
|
7
|
+
- develop
|
|
8
|
+
pull_request:
|
|
9
|
+
|
|
10
|
+
jobs:
|
|
11
|
+
validate:
|
|
12
|
+
runs-on: ubuntu-latest
|
|
13
|
+
steps:
|
|
14
|
+
- name: Checkout
|
|
15
|
+
uses: actions/checkout@v4
|
|
16
|
+
|
|
17
|
+
- name: Install shellcheck
|
|
18
|
+
run: sudo apt-get update && sudo apt-get install -y shellcheck
|
|
19
|
+
|
|
20
|
+
- name: Shellcheck scripts
|
|
21
|
+
run: shellcheck scripts/*.sh
|
|
22
|
+
|
|
23
|
+
- name: Validate slice templates
|
|
24
|
+
run: |
|
|
25
|
+
node -e "JSON.parse(require('fs').readFileSync('specs/[project-name]/slices/slice-template/slice.json', 'utf8'))"
|
|
26
|
+
node -e "JSON.parse(require('fs').readFileSync('specs/quiver-v01/slices/slice-01-legal-integrity/slice.json', 'utf8'))"
|
|
27
|
+
|
|
28
|
+
smoke-init-docs:
|
|
29
|
+
strategy:
|
|
30
|
+
fail-fast: false
|
|
31
|
+
matrix:
|
|
32
|
+
os:
|
|
33
|
+
- ubuntu-latest
|
|
34
|
+
- macos-latest
|
|
35
|
+
runs-on: ${{ matrix.os }}
|
|
36
|
+
steps:
|
|
37
|
+
- name: Checkout
|
|
38
|
+
uses: actions/checkout@v4
|
|
39
|
+
|
|
40
|
+
- name: Setup Node
|
|
41
|
+
uses: actions/setup-node@v4
|
|
42
|
+
with:
|
|
43
|
+
node-version: 22
|
|
44
|
+
|
|
45
|
+
- name: Run init-docs smoke
|
|
46
|
+
run: bash scripts/ci/smoke-init-docs.sh "Smoke Project"
|
|
47
|
+
|
|
48
|
+
smoke-workflow-gates:
|
|
49
|
+
runs-on: ubuntu-latest
|
|
50
|
+
steps:
|
|
51
|
+
- name: Checkout
|
|
52
|
+
uses: actions/checkout@v4
|
|
53
|
+
|
|
54
|
+
- name: Setup Node
|
|
55
|
+
uses: actions/setup-node@v4
|
|
56
|
+
with:
|
|
57
|
+
node-version: 22
|
|
58
|
+
|
|
59
|
+
- name: Run workflow gate smoke
|
|
60
|
+
run: bash scripts/ci/smoke-workflow-gates.sh
|
|
61
|
+
|
|
62
|
+
smoke-create-quiver:
|
|
63
|
+
runs-on: ubuntu-latest
|
|
64
|
+
steps:
|
|
65
|
+
- name: Checkout
|
|
66
|
+
uses: actions/checkout@v4
|
|
67
|
+
|
|
68
|
+
- name: Setup Node
|
|
69
|
+
uses: actions/setup-node@v4
|
|
70
|
+
with:
|
|
71
|
+
node-version: 22
|
|
72
|
+
|
|
73
|
+
- name: Run create-quiver smoke
|
|
74
|
+
run: bash scripts/ci/smoke-create-quiver.sh
|
package/CHANGELOG.md
ADDED
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
# Changelog
|
|
2
|
+
|
|
3
|
+
All notable changes to this project will be documented in this file.
|
|
4
|
+
|
|
5
|
+
## [Unreleased]
|
|
6
|
+
|
|
7
|
+
## [0.4.0] - 2026-04-21
|
|
8
|
+
|
|
9
|
+
### Added
|
|
10
|
+
|
|
11
|
+
- `create-quiver` CLI installer surface
|
|
12
|
+
- Post-init `doctor` validation mode
|
|
13
|
+
- Release helper script and packaged-installer smoke checks
|
|
14
|
+
|
|
15
|
+
## [0.1.0] - 2026-04-20
|
|
16
|
+
|
|
17
|
+
### Added
|
|
18
|
+
|
|
19
|
+
- MIT license
|
|
20
|
+
- Portable `init-docs.sh`
|
|
21
|
+
- `package.template.json`
|
|
22
|
+
- English canonical documentation
|
|
23
|
+
- `examples/01-basic-slice/`
|
|
24
|
+
- Community health docs and CI
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
# Code of Conduct
|
|
2
|
+
|
|
3
|
+
This project follows the Contributor Covenant v2.1.
|
|
4
|
+
|
|
5
|
+
## Our Pledge
|
|
6
|
+
|
|
7
|
+
We are committed to providing a welcoming, respectful, and harassment-free experience for everyone.
|
|
8
|
+
|
|
9
|
+
## Enforcement
|
|
10
|
+
|
|
11
|
+
Report issues to the project maintainers or through the security/contact channel used by the repository.
|
|
12
|
+
|
package/CONTRIBUTING.md
ADDED
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
# Contributing
|
|
2
|
+
|
|
3
|
+
## How to Contribute
|
|
4
|
+
|
|
5
|
+
1. Open an issue describing the problem or proposal.
|
|
6
|
+
2. Wait for the scope to be clarified if needed.
|
|
7
|
+
3. Open a pull request that matches one slice.
|
|
8
|
+
4. Link the issue and the slice in the PR body.
|
|
9
|
+
|
|
10
|
+
## Expectations
|
|
11
|
+
|
|
12
|
+
- Keep changes small and scoped.
|
|
13
|
+
- Follow the slice workflow.
|
|
14
|
+
- Include evidence when the change needs validation.
|
|
15
|
+
|
package/LICENSE
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2026 Fabri Juncal
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|
package/README.md
ADDED
|
@@ -0,0 +1,118 @@
|
|
|
1
|
+
# Quiver
|
|
2
|
+
|
|
3
|
+
Quiver is a CLI-first documentation workflow for projects that use specs, slices, and AI-assisted implementation.
|
|
4
|
+
|
|
5
|
+
It gives a project a repeatable structure for planning work, starting focused implementation slices, validating readiness, and keeping human and AI contributors aligned.
|
|
6
|
+
|
|
7
|
+
## Quick Start
|
|
8
|
+
|
|
9
|
+
Create or update a project with the installer:
|
|
10
|
+
|
|
11
|
+
```bash
|
|
12
|
+
npx create-quiver --name "Project Name" --dir ./target-repo
|
|
13
|
+
```
|
|
14
|
+
|
|
15
|
+
To install into the current directory, omit `--dir`:
|
|
16
|
+
|
|
17
|
+
```bash
|
|
18
|
+
npx create-quiver --name "Project Name"
|
|
19
|
+
```
|
|
20
|
+
|
|
21
|
+
## Requirements
|
|
22
|
+
|
|
23
|
+
- Node.js and npm for the installer
|
|
24
|
+
- Git for slice branches, worktrees, and PR workflow checks
|
|
25
|
+
- macOS or Linux as the primary supported shell environment
|
|
26
|
+
|
|
27
|
+
See the generated `docs/SUPPORT_MATRIX.md` for the detailed support contract.
|
|
28
|
+
|
|
29
|
+
## Validate
|
|
30
|
+
|
|
31
|
+
After installation, run the doctor:
|
|
32
|
+
|
|
33
|
+
```bash
|
|
34
|
+
npx create-quiver doctor --dir ./target-repo
|
|
35
|
+
```
|
|
36
|
+
|
|
37
|
+
The doctor checks the generated project contract and prints the next workflow steps.
|
|
38
|
+
|
|
39
|
+
## First Slice Workflow
|
|
40
|
+
|
|
41
|
+
After the scaffold is valid:
|
|
42
|
+
|
|
43
|
+
1. Fill in `docs/CONTEXTO.md` and `docs/STATUS.md`.
|
|
44
|
+
2. Define the project spec in `specs/<project-slug>/SPEC.md`.
|
|
45
|
+
3. Create the first slice from `specs/<project-slug>/slices/slice-template/slice.json`.
|
|
46
|
+
4. Start work with `tools/scripts/start-slice.sh <slice.json>`.
|
|
47
|
+
5. Make one commit per slice.
|
|
48
|
+
6. Open one PR per spec.
|
|
49
|
+
|
|
50
|
+
Slice numbering is local to each spec: every new spec starts at `slice-01`.
|
|
51
|
+
|
|
52
|
+
## What Gets Generated
|
|
53
|
+
|
|
54
|
+
Quiver generates a project-local workflow under:
|
|
55
|
+
|
|
56
|
+
- `docs/` for project context, workflow, support, troubleshooting, and AI guidance
|
|
57
|
+
- `specs/<project-slug>/` for the project spec, status, evidence, and slice contracts
|
|
58
|
+
- `tools/scripts/` for slice lifecycle and readiness gates
|
|
59
|
+
- `.github/` for default PR, issue, and CI templates
|
|
60
|
+
- `package.json` scripts for the workflow commands
|
|
61
|
+
|
|
62
|
+
For the detailed support contract, read `docs/SUPPORT_MATRIX.md` in the generated project. For recovery paths, read `docs/TROUBLESHOOTING.md`.
|
|
63
|
+
|
|
64
|
+
## Manual Template Use
|
|
65
|
+
|
|
66
|
+
Use the manual flow only when developing Quiver locally or testing a template checkout. From a target project where this repository was copied as `docs-template/`, run:
|
|
67
|
+
|
|
68
|
+
```bash
|
|
69
|
+
./docs-template/scripts/init-docs.sh "Project Name"
|
|
70
|
+
```
|
|
71
|
+
|
|
72
|
+
The CLI path is the supported adoption path for users.
|
|
73
|
+
|
|
74
|
+
## For AI Agents
|
|
75
|
+
|
|
76
|
+
Read `README_FOR_AI.md` before working in this repository or in a generated project. It explains the generic template boundary, the generated project boundary, and the slice workflow rules.
|
|
77
|
+
|
|
78
|
+
## For Maintainers
|
|
79
|
+
|
|
80
|
+
Release preflight:
|
|
81
|
+
|
|
82
|
+
```bash
|
|
83
|
+
npm whoami
|
|
84
|
+
npm view create-quiver version
|
|
85
|
+
npm run package:quiver
|
|
86
|
+
npm run smoke:create-quiver
|
|
87
|
+
npm run release:quiver
|
|
88
|
+
```
|
|
89
|
+
|
|
90
|
+
Current-version publish:
|
|
91
|
+
|
|
92
|
+
```bash
|
|
93
|
+
bash scripts/release-quiver.sh --publish-current
|
|
94
|
+
```
|
|
95
|
+
|
|
96
|
+
Versioned publish:
|
|
97
|
+
|
|
98
|
+
```bash
|
|
99
|
+
bash scripts/release-quiver.sh patch --publish
|
|
100
|
+
```
|
|
101
|
+
|
|
102
|
+
The release helper stays explicit on purpose: `--publish-current` publishes the current version, and `--publish` follows a normal version bump flow.
|
|
103
|
+
|
|
104
|
+
If `npm whoami` or `npm view create-quiver version` fails, fix npm auth or registry reachability before publishing.
|
|
105
|
+
|
|
106
|
+
For a first release, prefer `--publish-current` so the published package stays at `0.4.0`.
|
|
107
|
+
|
|
108
|
+
## References
|
|
109
|
+
|
|
110
|
+
- [AI guide](./README_FOR_AI.md)
|
|
111
|
+
- [Support matrix template](./docs/SUPPORT_MATRIX.md.template)
|
|
112
|
+
- [Troubleshooting template](./docs/TROUBLESHOOTING.md.template)
|
|
113
|
+
- [Changelog](./CHANGELOG.md)
|
|
114
|
+
- [Roadmap](./ROADMAP.md)
|
|
115
|
+
|
|
116
|
+
## License
|
|
117
|
+
|
|
118
|
+
MIT
|
package/README_FOR_AI.md
ADDED
|
@@ -0,0 +1,90 @@
|
|
|
1
|
+
# AI Guide for Quiver Docs Template
|
|
2
|
+
|
|
3
|
+
Use this guide when initializing a new project from the template or when explaining the workflow to another agent.
|
|
4
|
+
|
|
5
|
+
Important: slice numbering resets inside each spec. `slice-01` is the first slice of that spec, not a global repo counter.
|
|
6
|
+
The canonical installer entrypoint is `npx create-quiver`.
|
|
7
|
+
The post-init contract is validated with `npx create-quiver doctor --dir <project>`.
|
|
8
|
+
Maintain release notes and package publishing with `scripts/release-quiver.sh`.
|
|
9
|
+
|
|
10
|
+
## Core Rules
|
|
11
|
+
|
|
12
|
+
- Never customize `docs-template/` for a specific project.
|
|
13
|
+
- Always use `init-docs.sh` instead of copying files by hand.
|
|
14
|
+
- Treat `docs-template/` as generic and `docs/` as generated project-specific output.
|
|
15
|
+
- Not every project needs every optional file.
|
|
16
|
+
- The support contract lives in `docs/SUPPORT_MATRIX.md` and `docs/TROUBLESHOOTING.md`.
|
|
17
|
+
|
|
18
|
+
## Initialization Flow
|
|
19
|
+
|
|
20
|
+
1. Copy the template folder into the target project as `docs-template/`.
|
|
21
|
+
2. Run:
|
|
22
|
+
|
|
23
|
+
```bash
|
|
24
|
+
./docs-template/scripts/init-docs.sh "Project Name"
|
|
25
|
+
```
|
|
26
|
+
|
|
27
|
+
3. Tell the user to edit:
|
|
28
|
+
- `docs/CONTEXTO.md`
|
|
29
|
+
- `docs/STATUS.md`
|
|
30
|
+
- `docs/SUPPORT_MATRIX.md`
|
|
31
|
+
- `docs/TROUBLESHOOTING.md`
|
|
32
|
+
- `specs/{{PROJECT_SLUG}}/SPEC.md`
|
|
33
|
+
|
|
34
|
+
## What the Script Creates
|
|
35
|
+
|
|
36
|
+
- `docs/`
|
|
37
|
+
- `docs/ai/`
|
|
38
|
+
- `specs/{{PROJECT_SLUG}}/`
|
|
39
|
+
- `tools/scripts/`
|
|
40
|
+
- `docs/SEARCH.md`
|
|
41
|
+
- a merged or copied `package.json` with the required npm scripts
|
|
42
|
+
- the default OSS baseline when those files are missing:
|
|
43
|
+
- `LICENSE`
|
|
44
|
+
- `CONTRIBUTING.md`
|
|
45
|
+
- `CODE_OF_CONDUCT.md`
|
|
46
|
+
- `SECURITY.md`
|
|
47
|
+
- `CHANGELOG.md`
|
|
48
|
+
- `ROADMAP.md`
|
|
49
|
+
- `docs/SUPPORT_MATRIX.md`
|
|
50
|
+
- `docs/TROUBLESHOOTING.md`
|
|
51
|
+
- `.github/pull_request_template.md`
|
|
52
|
+
- `.github/ISSUE_TEMPLATE/bug_report.md`
|
|
53
|
+
- `.github/ISSUE_TEMPLATE/feature_request.md`
|
|
54
|
+
- `.github/workflows/ci.yml`
|
|
55
|
+
|
|
56
|
+
`init-docs.sh` preserves any existing target files and reports skipped copies instead of overwriting them.
|
|
57
|
+
|
|
58
|
+
## Required Follow-Up
|
|
59
|
+
|
|
60
|
+
After initialization, the user should:
|
|
61
|
+
|
|
62
|
+
1. Fill in `docs/CONTEXTO.md`
|
|
63
|
+
2. Fill in `docs/STATUS.md`
|
|
64
|
+
3. Open and merge the documentation PR that establishes the workflow files
|
|
65
|
+
4. Create the first slice in `specs/{{PROJECT_SLUG}}/slices/[slice-id]/`
|
|
66
|
+
5. Add `ticket` and `git.*`
|
|
67
|
+
6. Run `tools/scripts/start-slice.sh [--allow-draft] <slice.json>`
|
|
68
|
+
7. Make one commit per slice
|
|
69
|
+
8. Open one PR per spec
|
|
70
|
+
9. Validate the slice and the final PR with the workflow gates
|
|
71
|
+
|
|
72
|
+
Bootstrap note: `start-slice.sh` should resolve paths canonically, prefer a local `develop` or `main` base branch before reaching for `origin`, and reject `draft` slices unless `--allow-draft` is passed intentionally.
|
|
73
|
+
|
|
74
|
+
## Optional Files
|
|
75
|
+
|
|
76
|
+
- `docs/MOCK_DATA_GUIDE.md` if the project uses mock data
|
|
77
|
+
- `docs/UI_STANDARDS.md` if the project has UI
|
|
78
|
+
- `docs/GITFLOW_PR_GUIDE.md` if the team wants a stricter branch workflow
|
|
79
|
+
- `docs/SUPPORT_MATRIX.md` and `docs/TROUBLESHOOTING.md` for first-run support
|
|
80
|
+
- `docs/ai/LESSONS.md` after each slice
|
|
81
|
+
|
|
82
|
+
## Good Defaults
|
|
83
|
+
|
|
84
|
+
- Simple project: `INDEX`, `CONTEXTO`, `WORKFLOW`, and the AI files
|
|
85
|
+
- Medium project: add `STATUS.md`
|
|
86
|
+
- Complex project: use the full documentation set
|
|
87
|
+
|
|
88
|
+
## Reminder
|
|
89
|
+
|
|
90
|
+
If a file does not exist in the generated project, do not invent it. Either create it from the template or tell the user what is missing.
|
package/ROADMAP.md
ADDED
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
# Roadmap
|
|
2
|
+
|
|
3
|
+
## v0.1
|
|
4
|
+
|
|
5
|
+
- Publish the OSS foundation
|
|
6
|
+
- Make the quick start executable
|
|
7
|
+
- Ship one complete example
|
|
8
|
+
|
|
9
|
+
## v0.2
|
|
10
|
+
|
|
11
|
+
- Add `npx create-quiver`
|
|
12
|
+
- Add a docs site
|
|
13
|
+
- Add JSON Schema for slices
|
|
14
|
+
|
|
15
|
+
## v0.3
|
|
16
|
+
|
|
17
|
+
- Expand automation and testing
|
|
18
|
+
- Add richer templates and examples
|
|
19
|
+
- Improve release workflows
|
|
20
|
+
|
package/SECURITY.md
ADDED
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
# Security Policy
|
|
2
|
+
|
|
3
|
+
## Supported Versions
|
|
4
|
+
|
|
5
|
+
Security fixes are applied to the current active version of the repository and the latest public release.
|
|
6
|
+
|
|
7
|
+
## Reporting a Vulnerability
|
|
8
|
+
|
|
9
|
+
- Do not open a public issue for a security bug.
|
|
10
|
+
- Report the issue privately to the maintainers.
|
|
11
|
+
- Include reproduction steps and impact if possible.
|
|
12
|
+
|
package/TEMPLATE.md
ADDED
|
@@ -0,0 +1,108 @@
|
|
|
1
|
+
# Template Customization Guide
|
|
2
|
+
|
|
3
|
+
Use this guide to adapt the template to a specific project.
|
|
4
|
+
|
|
5
|
+
Slice numbering is local to each spec. Do not continue numbers across specs.
|
|
6
|
+
|
|
7
|
+
## Setup
|
|
8
|
+
|
|
9
|
+
1. Run:
|
|
10
|
+
|
|
11
|
+
```bash
|
|
12
|
+
./scripts/init-docs.sh "Project Name"
|
|
13
|
+
```
|
|
14
|
+
|
|
15
|
+
2. Edit the generated core files:
|
|
16
|
+
|
|
17
|
+
- `docs/CONTEXTO.md`
|
|
18
|
+
- `docs/STATUS.md` if the project needs status tracking
|
|
19
|
+
- `docs/SUPPORT_MATRIX.md`
|
|
20
|
+
- `docs/TROUBLESHOOTING.md`
|
|
21
|
+
- `specs/{{PROJECT_SLUG}}/SPEC.md`
|
|
22
|
+
|
|
23
|
+
## Generated by Default
|
|
24
|
+
|
|
25
|
+
`init-docs.sh` copies these baseline OSS files when they are missing:
|
|
26
|
+
|
|
27
|
+
- `LICENSE`
|
|
28
|
+
- `CONTRIBUTING.md`
|
|
29
|
+
- `CODE_OF_CONDUCT.md`
|
|
30
|
+
- `SECURITY.md`
|
|
31
|
+
- `CHANGELOG.md`
|
|
32
|
+
- `ROADMAP.md`
|
|
33
|
+
- `.github/pull_request_template.md`
|
|
34
|
+
- `.github/ISSUE_TEMPLATE/bug_report.md`
|
|
35
|
+
- `.github/ISSUE_TEMPLATE/feature_request.md`
|
|
36
|
+
- `.github/workflows/ci.yml`
|
|
37
|
+
|
|
38
|
+
## What to Update
|
|
39
|
+
|
|
40
|
+
### `docs/CONTEXTO.md`
|
|
41
|
+
|
|
42
|
+
- what the project is
|
|
43
|
+
- who it is for
|
|
44
|
+
- what problem it solves
|
|
45
|
+
- the tech stack
|
|
46
|
+
|
|
47
|
+
### `docs/STATUS.md`
|
|
48
|
+
|
|
49
|
+
- progress
|
|
50
|
+
- next milestone
|
|
51
|
+
- slice status
|
|
52
|
+
|
|
53
|
+
### `docs/WORKFLOW.md`
|
|
54
|
+
|
|
55
|
+
- project-specific commands
|
|
56
|
+
- stack assumptions
|
|
57
|
+
- directory structure
|
|
58
|
+
|
|
59
|
+
### `docs/SUPPORT_MATRIX.md`
|
|
60
|
+
|
|
61
|
+
- supported operating systems
|
|
62
|
+
- git expectations
|
|
63
|
+
- node expectations
|
|
64
|
+
- remote mode support
|
|
65
|
+
|
|
66
|
+
### `docs/TROUBLESHOOTING.md`
|
|
67
|
+
|
|
68
|
+
- path normalization recovery
|
|
69
|
+
- missing base branch recovery
|
|
70
|
+
- remote mode recovery
|
|
71
|
+
- generated-file conflict recovery
|
|
72
|
+
|
|
73
|
+
### `specs/{{PROJECT_SLUG}}/SPEC.md`
|
|
74
|
+
|
|
75
|
+
- project objective
|
|
76
|
+
- scope
|
|
77
|
+
- timeline
|
|
78
|
+
- dependencies
|
|
79
|
+
|
|
80
|
+
## AI Files
|
|
81
|
+
|
|
82
|
+
- Keep `docs/ai/PRINCIPLES.md` as the base policy and add only project-specific notes when needed.
|
|
83
|
+
- Update `docs/ai/RULES.yaml` when the workflow changes.
|
|
84
|
+
- Keep `docs/ai/LESSONS.md` empty until the first lesson is worth recording.
|
|
85
|
+
|
|
86
|
+
## Optional Files
|
|
87
|
+
|
|
88
|
+
Add these only when they apply:
|
|
89
|
+
|
|
90
|
+
- `docs/api/` for backend/API docs
|
|
91
|
+
- `docs/tools/` for tool-specific docs
|
|
92
|
+
- `docs/UI_STANDARDS.md` for UI-heavy projects
|
|
93
|
+
- `docs/MOCK_DATA_GUIDE.md` for mock-driven work
|
|
94
|
+
- `docs/SUPPORT_MATRIX.md` for supported-environment documentation
|
|
95
|
+
- `docs/TROUBLESHOOTING.md` for first-run recovery guidance
|
|
96
|
+
|
|
97
|
+
## Common Mistakes
|
|
98
|
+
|
|
99
|
+
- Overloading `CONTEXTO.md` with historical narrative
|
|
100
|
+
- Letting `STATUS.md` drift out of date
|
|
101
|
+
- Editing the template files directly instead of the generated project files
|
|
102
|
+
|
|
103
|
+
## Time Budget
|
|
104
|
+
|
|
105
|
+
- Setup: 30 minutes
|
|
106
|
+
- AI configuration: 15 minutes
|
|
107
|
+
- First slice: 20 minutes
|
|
108
|
+
- Total: about 1 hour
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
# {{PROJECT_NAME}} Context
|
|
2
|
+
|
|
3
|
+
**Date:** {{FECHA}}
|
|
4
|
+
**Status:** {{ESTADO}}
|
|
5
|
+
|
|
6
|
+
## What Is {{PROJECT_NAME}}?
|
|
7
|
+
|
|
8
|
+
[One or two paragraphs that explain the project.]
|
|
9
|
+
|
|
10
|
+
## Value Proposition
|
|
11
|
+
|
|
12
|
+
> "[Project tagline]"
|
|
13
|
+
|
|
14
|
+
## Target User
|
|
15
|
+
|
|
16
|
+
[Describe the primary user.]
|
|
17
|
+
|
|
18
|
+
## Technical Stack
|
|
19
|
+
|
|
20
|
+
```text
|
|
21
|
+
Frontend:
|
|
22
|
+
├── [Framework]
|
|
23
|
+
├── [Language]
|
|
24
|
+
└── [UI library]
|
|
25
|
+
|
|
26
|
+
Backend:
|
|
27
|
+
├── [Framework]
|
|
28
|
+
├── [Database]
|
|
29
|
+
└── [Deploy target]
|
|
30
|
+
```
|
|
31
|
+
|
|
32
|
+
## Current Focus
|
|
33
|
+
|
|
34
|
+
- [Current goal 1]
|
|
35
|
+
- [Current goal 2]
|
|
36
|
+
|
|
37
|
+
## Security and Privacy
|
|
38
|
+
|
|
39
|
+
- [Sensitive data that is never stored]
|
|
40
|
+
- [Data that is stored]
|
|
41
|
+
- [Important security measure]
|
|
42
|
+
|
|
43
|
+
## Next Step
|
|
44
|
+
|
|
45
|
+
Read `INDEX.md` to navigate the rest of the documentation.
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
# Documentation Guide
|
|
2
|
+
|
|
3
|
+
**Version:** 1.0
|
|
4
|
+
**Last updated:** {{FECHA}}
|
|
5
|
+
|
|
6
|
+
## Reading Order
|
|
7
|
+
|
|
8
|
+
1. `docs/INDEX.md`
|
|
9
|
+
2. `docs/CONTEXTO.md`
|
|
10
|
+
3. `docs/STATUS.md`
|
|
11
|
+
4. `docs/WORKFLOW.md`
|
|
12
|
+
5. `docs/SUPPORT_MATRIX.md`
|
|
13
|
+
6. `docs/TROUBLESHOOTING.md`
|
|
14
|
+
7. `specs/{{PROJECT_SLUG}}/SPEC.md`
|
|
15
|
+
8. `specs/{{PROJECT_SLUG}}/slices/[slice-id]/slice.json`
|
|
16
|
+
|
|
17
|
+
## Update Rules
|
|
18
|
+
|
|
19
|
+
- Update docs when scope changes.
|
|
20
|
+
- Update `STATUS.md` after each completed slice.
|
|
21
|
+
- Keep `pr.md` aligned with the slice.
|
|
22
|
+
|
|
23
|
+
## Where Things Go
|
|
24
|
+
|
|
25
|
+
- Project overview: `docs/CONTEXTO.md`
|
|
26
|
+
- Progress: `docs/STATUS.md`
|
|
27
|
+
- Implementation workflow: `docs/WORKFLOW.md`
|
|
28
|
+
- Support contract: `docs/SUPPORT_MATRIX.md`
|
|
29
|
+
- Recovery guidance: `docs/TROUBLESHOOTING.md`
|
|
30
|
+
- Slice contract: `specs/{{PROJECT_SLUG}}/slices/[slice-id]/slice.json`
|
|
31
|
+
|
|
32
|
+
## Notes
|
|
33
|
+
|
|
34
|
+
Do not invent documentation files. Create them only when they are actually needed.
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
# Git and PR Guide
|
|
2
|
+
|
|
3
|
+
**Version:** 2.0
|
|
4
|
+
**Last updated:** {{FECHA}}
|
|
5
|
+
|
|
6
|
+
## Purpose
|
|
7
|
+
|
|
8
|
+
This guide explains how to open and review spec PRs without breaking the canonical workflow.
|
|
9
|
+
|
|
10
|
+
## Core Rule
|
|
11
|
+
|
|
12
|
+
- One slice = one commit
|
|
13
|
+
- One spec = one PR
|
|
14
|
+
- Slice numbers reset per spec. `slice-01` is the first slice in each spec.
|
|
15
|
+
- Do not commit directly to `develop`
|
|
16
|
+
- Open and merge the documentation PR before the first slice starts execution
|
|
17
|
+
- Do not open the spec PR before the documentation PR is merged
|
|
18
|
+
|
|
19
|
+
## Required PR Headings
|
|
20
|
+
|
|
21
|
+
All spec PR notes must use:
|
|
22
|
+
|
|
23
|
+
- `## Title`
|
|
24
|
+
- `## Summary`
|
|
25
|
+
- `## Scope`
|
|
26
|
+
- `## Files`
|
|
27
|
+
- `## How to Test (DETAILED - REQUIRED)`
|
|
28
|
+
- `## Evidence`
|
|
29
|
+
- `## Rollback`
|
|
30
|
+
- `## Risks / Notes`
|
|
31
|
+
|
|
32
|
+
Inside `How to Test`, use:
|
|
33
|
+
|
|
34
|
+
- `### Required Environment`
|
|
35
|
+
- `### Worktree Access`
|
|
36
|
+
- `### Run the Project`
|
|
37
|
+
- `### Use Cases`
|
|
38
|
+
- `### Technical Verification`
|
|
39
|
+
|
|
40
|
+
## Branch Strategy
|
|
41
|
+
|
|
42
|
+
| Type | Prefix | Source | Target |
|
|
43
|
+
|------|--------|--------|--------|
|
|
44
|
+
| feature | `feature/` | `develop` | `develop` |
|
|
45
|
+
| bugfix | `bugfix/` | `develop` | `develop` |
|
|
46
|
+
| hotfix | `hotfix/` | `main` | `main` |
|
|
47
|
+
|
|
48
|
+
## Anti-Patterns
|
|
49
|
+
|
|
50
|
+
- Pushing directly to `develop`
|
|
51
|
+
- Reusing the same branch for multiple specs
|
|
52
|
+
- Writing PR bodies outside `pr.md`
|