@goodtek/vibeops 0.4.0 → 1.0.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.
Files changed (106) hide show
  1. package/CHANGELOG.md +198 -1
  2. package/README.md +62 -402
  3. package/dist/bootstrap/installer.js +4 -16
  4. package/dist/cli.js +52 -244
  5. package/dist/commands/init.js +3 -3
  6. package/dist/commands/status.js +145 -8
  7. package/dist/commands/task-add.js +100 -0
  8. package/dist/commands/task-done.js +117 -74
  9. package/dist/lib/config.js +2 -118
  10. package/dist/lib/git.js +190 -8
  11. package/dist/lib/llm-complete.js +62 -0
  12. package/dist/lib/paths.js +7 -3
  13. package/dist/lib/plan-llm-openai.js +0 -63
  14. package/dist/lib/resolve-task.js +34 -0
  15. package/dist/lib/slug.js +11 -0
  16. package/dist/lib/task-add-llm.js +81 -0
  17. package/dist/lib/task-context.js +68 -0
  18. package/dist/lib/task-done-llm.js +148 -0
  19. package/dist/lib/task-merge.js +115 -0
  20. package/dist/lib/task-scaffold.js +70 -92
  21. package/dist/lib/task-start.js +72 -0
  22. package/dist/lib/task-summary.js +12 -239
  23. package/dist/lib/task.js +80 -37
  24. package/dist/types/config.js +0 -16
  25. package/package.json +3 -4
  26. package/templates/.cursor/rules/01-task-source-of-truth.mdc +12 -0
  27. package/templates/.cursor/rules/02-git-safety.mdc +11 -0
  28. package/templates/.cursor/rules/03-docs-on-done.mdc +13 -0
  29. package/templates/.cursor/skills/implement-task/SKILL.md +22 -0
  30. package/templates/.cursor/skills/plan-task/SKILL.md +19 -0
  31. package/templates/AGENTS.md +26 -87
  32. package/templates/docs/logs/README.md +4 -35
  33. package/templates/docs/project/03-architecture.md +10 -29
  34. package/templates/docs/project/05-current-state.md +7 -27
  35. package/templates/docs/project/06-decisions.md +6 -17
  36. package/templates/docs/tasks/TASK-000-template.md +9 -44
  37. package/dist/agent/loader.js +0 -71
  38. package/dist/agent/prompt.js +0 -66
  39. package/dist/commands/agent-list.js +0 -32
  40. package/dist/commands/agent-prompt.js +0 -59
  41. package/dist/commands/agent-show.js +0 -26
  42. package/dist/commands/github-init.js +0 -554
  43. package/dist/commands/github-status.js +0 -164
  44. package/dist/commands/notion-init.js +0 -764
  45. package/dist/commands/notion-sync.js +0 -405
  46. package/dist/commands/notion-test.js +0 -595
  47. package/dist/commands/plan.js +0 -343
  48. package/dist/commands/task-check.js +0 -155
  49. package/dist/commands/task-generate.js +0 -206
  50. package/dist/commands/task-pull.js +0 -277
  51. package/dist/commands/task-rollback.js +0 -174
  52. package/dist/commands/task-start.js +0 -102
  53. package/dist/lib/brief.js +0 -356
  54. package/dist/lib/github-cli.js +0 -247
  55. package/dist/lib/notion-client.js +0 -459
  56. package/dist/lib/notion-discovery.js +0 -671
  57. package/dist/lib/notion-env.js +0 -140
  58. package/dist/lib/notion-mappers.js +0 -148
  59. package/dist/lib/notion-schema.js +0 -272
  60. package/dist/lib/notion-sync.js +0 -337
  61. package/dist/lib/notion-target.js +0 -247
  62. package/dist/lib/package-json.js +0 -133
  63. package/dist/lib/plan-apply-planner.js +0 -131
  64. package/dist/lib/plan-codex-pkce.js +0 -234
  65. package/dist/lib/plan-llm-models.js +0 -237
  66. package/dist/lib/plan-llm-normalize.js +0 -146
  67. package/dist/lib/plan-llm-session.js +0 -682
  68. package/dist/lib/plan-post-apply-setup.js +0 -116
  69. package/dist/lib/project-docs.js +0 -95
  70. package/dist/lib/prompt-builder.js +0 -135
  71. package/dist/lib/task-generator.js +0 -183
  72. package/dist/lib/task-prompt.js +0 -23
  73. package/dist/lib/task-pull.js +0 -354
  74. package/dist/status/collector.js +0 -103
  75. package/dist/status/format.js +0 -177
  76. package/dist/types/brief.js +0 -126
  77. package/templates/.cursor/rules/00-project-governance.mdc +0 -28
  78. package/templates/.cursor/rules/01-agent-orchestration.mdc +0 -48
  79. package/templates/.cursor/rules/02-task-workflow.mdc +0 -38
  80. package/templates/.cursor/rules/03-git-safety.mdc +0 -30
  81. package/templates/.cursor/rules/04-docs-update.mdc +0 -22
  82. package/templates/.vibeops/agents/architect.md +0 -47
  83. package/templates/.vibeops/agents/builder.md +0 -38
  84. package/templates/.vibeops/agents/docs.md +0 -54
  85. package/templates/.vibeops/agents/orchestrator.md +0 -40
  86. package/templates/.vibeops/agents/planner.md +0 -60
  87. package/templates/.vibeops/agents/recovery.md +0 -49
  88. package/templates/.vibeops/agents/reviewer.md +0 -47
  89. package/templates/.vibeops/agents/tester.md +0 -43
  90. package/templates/.vibeops/prompts/create-plan.md +0 -33
  91. package/templates/.vibeops/prompts/generate-tasks.md +0 -41
  92. package/templates/.vibeops/prompts/implement-task.md +0 -39
  93. package/templates/.vibeops/prompts/review-task.md +0 -34
  94. package/templates/.vibeops/prompts/rollback.md +0 -32
  95. package/templates/.vibeops/prompts/start-project.md +0 -39
  96. package/templates/.vibeops/workflows/notion-sync.md +0 -53
  97. package/templates/.vibeops/workflows/project-start.md +0 -73
  98. package/templates/.vibeops/workflows/rollback.md +0 -45
  99. package/templates/.vibeops/workflows/task-lifecycle.md +0 -71
  100. package/templates/docs/project/00-overview.md +0 -27
  101. package/templates/docs/project/01-requirements.md +0 -30
  102. package/templates/docs/project/02-mvp-scope.md +0 -36
  103. package/templates/docs/project/04-tech-stack.md +0 -29
  104. package/templates/docs/project/07-backlog.md +0 -23
  105. package/templates/docs/project/08-env.md +0 -29
  106. package/templates/docs/project/09-deployment.md +0 -28
@@ -1,33 +0,0 @@
1
- ---
2
- name: create-plan
3
- description: Build/refresh docs/project/{00,01,02,07} from current idea + existing docs.
4
- placeholders:
5
- - PROJECT_NAME
6
- - PROJECT_IDEA
7
- ---
8
-
9
- # Create Plan Prompt
10
-
11
- ---
12
-
13
- Project: `{{PROJECT_NAME}}`
14
- Updated idea / focus: `{{PROJECT_IDEA}}`
15
-
16
- Act as the planner agent defined in `.vibeops/agents/planner.md`.
17
-
18
- Existing `docs/project/*` files may already be present. If the files below exist, **read them and update only the deltas** (do not rewrite from scratch):
19
-
20
- - `docs/project/00-overview.md`
21
- - `docs/project/01-requirements.md`
22
- - `docs/project/02-mvp-scope.md`
23
- - `docs/project/07-backlog.md`
24
-
25
- The output format matches `start-project.md` — four fenced blocks, each starting with `<!-- file: <path> -->`.
26
-
27
- Also report:
28
-
29
- 1. The list of sections you changed (by file, identified by H2 header).
30
- 2. The TASK IDs added, removed, or reordered in the backlog.
31
- 3. Up to three ambiguous points that need a user decision.
32
-
33
- Do not write code. Do not touch `docs/project/03-architecture.md` or `04-tech-stack.md`.
@@ -1,41 +0,0 @@
1
- ---
2
- name: generate-tasks
3
- description: Expand a backlog row into a full docs/tasks/TASK-NNN-*.md.
4
- placeholders:
5
- - PROJECT_NAME
6
- - BACKLOG_ITEM
7
- - TASK_ID
8
- - TASK_SLUG
9
- ---
10
-
11
- # Generate Task Prompt
12
-
13
- ---
14
-
15
- Project: `{{PROJECT_NAME}}`
16
- Backlog item: `{{BACKLOG_ITEM}}`
17
- Target TASK: `{{TASK_ID}}` slug `{{TASK_SLUG}}`
18
-
19
- Act as a "TASK author" (an offshoot of planner). Take the backlog item above and produce a single TASK file.
20
-
21
- Output is a single fenced markdown block. The first line is the comment `<!-- file: docs/tasks/{{TASK_ID}}-{{TASK_SLUG}}.md -->`.
22
-
23
- The file must include **all** of the sections below (keep the header even when the section is empty):
24
-
25
- - `Status` (planned)
26
- - `MVP Phase`
27
- - `Goal` (2 to 4 sentences)
28
- - `Background` (why we need this now)
29
- - `Scope` (bullets)
30
- - `Out of Scope` (bullets — explicit exclusions)
31
- - `Acceptance Criteria` (numbered, verifiable statements)
32
- - `Files to Inspect First`
33
- - `Expected Files to Change`
34
- - `Risks`
35
- - `Test Plan` (prefer runnable commands)
36
- - `Rollback Plan`
37
- - `Implementation Plan` (numbered)
38
- - `Result` — `(not yet)`
39
- - `Test Result` — `(not yet)`
40
-
41
- Read `docs/project/03-architecture.md`, `04-tech-stack.md`, `06-decisions.md` first so the TASK does not contradict them. Features outside the MVP go into Out of Scope as explicit rejections.
@@ -1,39 +0,0 @@
1
- ---
2
- name: implement-task
3
- description: Builder prompt — implement a single TASK end-to-end.
4
- placeholders:
5
- - PROJECT_NAME
6
- - TASK_ID
7
- - TASK_PATH
8
- - VIBEOPS_VERSION
9
- ---
10
-
11
- # Implement Task Prompt
12
-
13
- ---
14
-
15
- Project: `{{PROJECT_NAME}}` (VibeOps `{{VIBEOPS_VERSION}}`)
16
- TASK: `{{TASK_ID}}` · file: `{{TASK_PATH}}`
17
-
18
- Act as the builder agent defined in `.vibeops/agents/builder.md`.
19
- Apply its Inputs / Output Format / Rules / Forbidden sections as-is.
20
-
21
- Read these first:
22
-
23
- - `AGENTS.md`
24
- - `.cursor/rules/00-project-governance.mdc` through `04-docs-update.mdc`
25
- - `docs/project/05-current-state.md`
26
- - `docs/project/06-decisions.md`
27
- - The relevant parts of `docs/project/03-architecture.md`, `04-tech-stack.md`
28
- - **The entire current TASK file**: `{{TASK_PATH}}`
29
-
30
- Procedure:
31
-
32
- 1. Work only inside the TASK's Scope / Acceptance Criteria.
33
- 2. **Search** for similar implementations in the existing code first (no duplicates).
34
- 3. Show the list of files to change and the diff for each file as code blocks.
35
- 4. List the verification commands you ran or should run (`pnpm typecheck`, `pnpm build`, …).
36
- 5. Summarize Acceptance Criteria pass / fail in a small table.
37
- 6. Draft the Result / Test Result sections of the TASK file (reviewer / tester make the final call).
38
-
39
- Do not touch other TASKs. No automatic merge or push.
@@ -1,34 +0,0 @@
1
- ---
2
- name: review-task
3
- description: Reviewer prompt — diff vs Acceptance Criteria, find scope creep.
4
- placeholders:
5
- - PROJECT_NAME
6
- - TASK_ID
7
- - TASK_PATH
8
- - DIFF_BASE
9
- ---
10
-
11
- # Review Task Prompt
12
-
13
- ---
14
-
15
- Project: `{{PROJECT_NAME}}`
16
- TASK: `{{TASK_ID}}` · file: `{{TASK_PATH}}`
17
- Diff base: `{{DIFF_BASE}}` (e.g. `main`)
18
-
19
- Act as the reviewer agent defined in `.vibeops/agents/reviewer.md`.
20
- Apply its Output Format / Rules / Forbidden sections as-is.
21
-
22
- Read:
23
- - The full TASK file.
24
- - `git diff {{DIFF_BASE}}..HEAD` (or the diff the user attached).
25
- - The relevant `.cursor/rules/*`.
26
-
27
- Evaluation steps:
28
-
29
- 1. Score each Acceptance Criteria item with ✓ or ✗. Add a one-line reason for ✗.
30
- 2. Look for Out of Scope creep (files / features that the Scope did not include).
31
- 3. Split Suggestions into `must / should / nit`.
32
- 4. Verdict: `pass` or `changes-requested`.
33
-
34
- No direct code edits. No new requirements (if needed, write one line: "Suggested next TASK: …").
@@ -1,32 +0,0 @@
1
- ---
2
- name: rollback
3
- description: Recovery prompt — diagnose rollback options. Never destroy without --confirm.
4
- placeholders:
5
- - PROJECT_NAME
6
- - TASK_ID
7
- - CURRENT_BRANCH
8
- - BASE_BRANCH
9
- - BASE_COMMIT
10
- ---
11
-
12
- # Rollback Prompt
13
-
14
- ---
15
-
16
- Project: `{{PROJECT_NAME}}`
17
- TASK in trouble: `{{TASK_ID}}`
18
- Current branch: `{{CURRENT_BRANCH}}`
19
- Base branch / commit: `{{BASE_BRANCH}}` / `{{BASE_COMMIT}}`
20
-
21
- Act as the recovery agent defined in `.vibeops/agents/recovery.md`.
22
- Apply its Output Format / Rules / Forbidden sections as-is.
23
-
24
- Diagnosis steps:
25
-
26
- 1. Quote the user's "where it went wrong" sentence directly.
27
- 2. Ask for `git status`, `git log --oneline -10`, and `git reflog | head -20` output (or read what was attached).
28
- 3. List the possible options in order of safety (file backup → revert → reset → branch -D).
29
- 4. Spell out what each option could lose.
30
- 5. Pick one Recommended option and add a one-line reason.
31
-
32
- Never run commands directly. Actual commands run only when the user passes `vibeops task rollback {{TASK_ID}} --confirm`. Do not recommend `git push --force`.
@@ -1,39 +0,0 @@
1
- ---
2
- name: start-project
3
- description: First-time onboarding prompt to bootstrap docs/project/* from a single idea.
4
- placeholders:
5
- - PROJECT_NAME
6
- - PROJECT_IDEA
7
- ---
8
-
9
- # Project Start Prompt
10
-
11
- Paste the text below directly into the Cursor chat.
12
-
13
- ---
14
-
15
- Project: `{{PROJECT_NAME}}`
16
- Idea: `{{PROJECT_IDEA}}`
17
-
18
- Act as the planner agent defined in `.vibeops/agents/planner.md`.
19
- Apply its Inputs / Output Format / Rules / Forbidden sections as-is.
20
-
21
- Goal: based on the idea above, fill in these four files.
22
-
23
- - `docs/project/00-overview.md`
24
- - `docs/project/01-requirements.md`
25
- - `docs/project/02-mvp-scope.md`
26
- - `docs/project/07-backlog.md`
27
-
28
- Output is four fenced markdown blocks. The first line of each block is a `<!-- file: <path> -->` comment.
29
- Do not touch any other files. Do not produce time or staffing estimates, and do not design the architecture.
30
-
31
- Required context to read first:
32
- - `AGENTS.md`
33
- - `.cursor/rules/00-project-governance.mdc`
34
- - `.cursor/rules/01-agent-orchestration.mdc`
35
- - `.vibeops/agents/planner.md`
36
-
37
- When you finish, report two things together:
38
- 1. The next agent to invoke (usually `architect` → fill in `docs/project/{03,04}`).
39
- 2. Up to three open questions that the user must decide.
@@ -1,53 +0,0 @@
1
- # Workflow · Notion Sync
2
-
3
- Notion is the **human dashboard**. It is not the source of truth.
4
-
5
- ## What is synced
6
-
7
- | Direction | What | Where |
8
- | ------------------- | --------------------------------------------------------------------- | ------------------------------ |
9
- | docs → Notion | TASK ID, title, status, priority, branch, docs path, result summary | Task DB |
10
- | docs → Notion | Project name, current-state summary, next TASK ID | Project DB (single row by default) |
11
- | Notion → docs | TASK status, priority (frontmatter) | `docs/tasks/*.md` frontmatter |
12
-
13
- ## What is NOT synced
14
-
15
- - TASK bodies (Scope, Acceptance Criteria, Implementation Plan, …).
16
- - The bodies of `docs/project/00 ~ 07`.
17
- - Code changes / Git state.
18
-
19
- Details always live in the Git docs.
20
-
21
- ## Setup
22
-
23
- ```bash
24
- vibeops notion init
25
- # Prompts for NOTION_TOKEN. If `.vibeops.env` does not exist it asks before
26
- # creating one; if it exists, only the NOTION_TOKEN line is replaced safely.
27
- # Target IDs for the Projects / Tasks databases are not environment variables —
28
- # they are stored in `.vibeops.json` as `notion.projectsTargetId` /
29
- # `notion.tasksTargetId`.
30
-
31
- vibeops notion test
32
- # Validates API access + DB schemas (required properties: Name / TaskId /
33
- # Status / Priority / Branch / DocsPath / ResultSummary).
34
- ```
35
-
36
- > The legacy `NOTION_API_KEY` / `NOTION_PROJECT_DB` / `NOTION_TASK_DB` environment variables are no longer used. VibeOps reads only `NOTION_TOKEN`.
37
-
38
- ## Usage
39
-
40
- ```bash
41
- vibeops notion sync # push (idempotent)
42
- vibeops notion sync --dry-run # preview
43
-
44
- vibeops task pull # Notion → docs frontmatter
45
- vibeops task pull --dry-run # preview
46
- ```
47
-
48
- ## Non-goals
49
-
50
- - Realtime webhooks.
51
- - Two-way body sync.
52
- - Child-block sync on Notion pages.
53
- - Creating new TASKs in Notion and pulling them into docs (that belongs to `vibeops task generate`).
@@ -1,73 +0,0 @@
1
- # Workflow · Project Start
2
-
3
- The first hour of a new project.
4
-
5
- ## 0. Prepare
6
-
7
- - Start in an empty directory.
8
- - The user has a one-to-two-paragraph **idea**.
9
-
10
- ## 1. Bootstrap
11
-
12
- ```bash
13
- vibeops init --name <project-name>
14
- git init && git add . && git commit -m "chore: bootstrap vibeops"
15
- ```
16
-
17
- What gets created:
18
- - `AGENTS.md`, `.cursor/rules/*`, `docs/project/*`, `docs/tasks/`, `docs/logs/`
19
- - `.vibeops/agents/*`, `.vibeops/prompts/*`, `.vibeops/workflows/*`
20
- - `.vibeops.json`, `.vibeops.env.example`
21
-
22
- ## 2. Plan
23
-
24
- ```bash
25
- vibeops plan --idea "<one-paragraph idea>"
26
- ```
27
-
28
- Paste the resulting prompt into Cursor. Cursor takes on the `planner` agent role and fills in four files.
29
-
30
- - `docs/project/00-overview.md`
31
- - `docs/project/01-requirements.md`
32
- - `docs/project/02-mvp-scope.md`
33
- - `docs/project/07-backlog.md`
34
-
35
- Next, invoke `architect` to fill in `03-architecture.md` and `04-tech-stack.md`.
36
-
37
- ## 3. Backlog → TASKs
38
-
39
- For each backlog item:
40
-
41
- ```bash
42
- vibeops task generate --from-backlog TASK-NNN
43
- ```
44
-
45
- A `docs/tasks/TASK-NNN-*.md` file appears.
46
-
47
- ## 4. First TASK
48
-
49
- ```bash
50
- vibeops task start TASK-001
51
- vibeops task prompt TASK-001 --agent builder
52
- # paste into Cursor and let it work
53
- vibeops task check TASK-001
54
- vibeops task done TASK-001
55
- ```
56
-
57
- Read the merge guidance, then merge and push manually.
58
-
59
- ## 5. (Optional) Notion
60
-
61
- ```bash
62
- vibeops notion init # interactive .vibeops.env setup
63
- vibeops notion test # validate API access and DB schemas
64
- vibeops notion sync # push docs/tasks metadata to Notion
65
- ```
66
-
67
- ## 6. Daily
68
-
69
- ```bash
70
- vibeops status # check where you are in one second
71
- ```
72
-
73
- Add one entry per decision or step to `docs/logs/YYYY-MM-DD.md` each day.
@@ -1,45 +0,0 @@
1
- # Workflow · Rollback
2
-
3
- The standard "this TASK went wrong, let's undo it" flow.
4
-
5
- ## 1. Diagnose first
6
-
7
- ```bash
8
- vibeops task rollback TASK-NNN
9
- ```
10
-
11
- The default is **guidance only**. It shows:
12
-
13
- - Current branch / dirty state.
14
- - Base branch / base commit / task branch as read from `.vibeops/state/tasks/TASK-NNN.json`.
15
- - Three possible strategies.
16
-
17
- ## 2. Available strategies
18
-
19
- | Strategy | Description | What you could lose |
20
- | ----------------- | ------------------------------------------------------------ | ------------------------------------ |
21
- | `branch-delete` | Discard the task branch | Every unmerged change on the branch |
22
- | `reset-base` | Hard-reset the current branch to the base commit | Your current changes (stash first) |
23
- | `revert-merge` | If already merged, revert the merge commit | Adds a revert commit to history (OK) |
24
-
25
- ## 3. Execute (destructive, `--confirm` required)
26
-
27
- ```bash
28
- vibeops task rollback TASK-NNN --strategy branch-delete --confirm
29
- vibeops task rollback TASK-NNN --strategy reset-base --confirm
30
- vibeops task rollback TASK-NNN --strategy revert-merge --confirm
31
- ```
32
-
33
- Combining `--dry-run` with `--confirm` prints the commands that would run without executing them.
34
-
35
- ## 4. Things you never do
36
-
37
- - **`git push --force`**: never on shared branches. Even on your own task branch, do not run it unless the reason is unambiguous.
38
- - Automatic reflog cleanup.
39
- - Dropping stashes without explicit user consent.
40
-
41
- ## 5. After rollback
42
-
43
- - Reset `docs/tasks/TASK-NNN-*.md` Status to `planned` or `blocked` and record the reason in Result.
44
- - Update `docs/project/05-current-state.md`.
45
- - Append a one-line entry to `docs/logs/YYYY-MM-DD.md`: "Rollback: TASK-NNN — reason".
@@ -1,71 +0,0 @@
1
- # Workflow · Task Lifecycle
2
-
3
- A TASK from start to finish.
4
-
5
- ## 0. Pick
6
-
7
- Run `vibeops status` to identify the next TASK. Typically run `in_progress` items before `planned` ones.
8
-
9
- ## 1. Start
10
-
11
- ```bash
12
- vibeops task start TASK-NNN
13
- ```
14
-
15
- - A dirty working tree is refused unless changes are limited to governance docs (`docs/tasks/`, `docs/project/`, `docs/logs/`, `.vibeops/state/`); then `task start` warns and continues. Use `--allow-dirty` only when non-doc paths are dirty intentionally.
16
- - Records base branch / base commit / task branch in `.vibeops/state/tasks/TASK-NNN.json`.
17
- - Creates and checks out the `task/NNN-<slug>` branch.
18
- - Sets the TASK file's Status to `in_progress`.
19
-
20
- ## 2. Prompt
21
-
22
- ```bash
23
- vibeops task prompt TASK-NNN --agent builder
24
- ```
25
-
26
- Paste the single markdown output directly into the Cursor chat. Cursor takes on the builder agent role.
27
-
28
- Other agents work the same way:
29
- - `--agent reviewer` — review the diff.
30
- - `--agent tester` — run the Test Plan.
31
- - `--agent docs` — update the three docs.
32
-
33
- ## 3. Check
34
-
35
- ```bash
36
- vibeops task check TASK-NNN
37
- ```
38
-
39
- - Score Acceptance Criteria items with ✓ / ✗.
40
- - Match `Expected Files to Change` against actual changes.
41
- - Summarize current branch / dirty / commit count.
42
-
43
- ## 4. Done
44
-
45
- ```bash
46
- vibeops task done TASK-NNN
47
- ```
48
-
49
- - Validates the TASK file's Status, Result, Test Result bodies.
50
- - Records `doneAt` in `.vibeops/state/tasks/TASK-NNN.json`.
51
- - Prints **merge guidance** (no automatic merge).
52
-
53
- A human merges:
54
-
55
- ```bash
56
- git switch main
57
- git merge --ff-only task/NNN-<slug>
58
- git branch -d task/NNN-<slug>
59
- ```
60
-
61
- ## 5. (Optional) Notion sync
62
-
63
- ```bash
64
- vibeops notion sync
65
- ```
66
-
67
- Pushes TASK metadata (summary, status, priority, branch, docs path, result summary) to Notion.
68
-
69
- ## When things go wrong: Rollback
70
-
71
- See [`rollback.md`](rollback.md).
@@ -1,27 +0,0 @@
1
- # 00 — Overview
2
-
3
- > This document is the slot that `vibeops plan` (via the `planner` agent) fills in. Keep the section headers below and leave the bodies empty.
4
-
5
- ## One-line definition
6
-
7
- <!-- One sentence describing what this project is — who it is for and what the tool/service does. -->
8
-
9
- ## Problem to solve
10
-
11
- <!-- 3 to 5 bullets. Stay fact-based about current pain points. -->
12
-
13
- ## Example usage
14
-
15
- <!-- A 6-to-10-line scenario showing how a single hypothetical user flows through the product. -->
16
-
17
- ## Core roles
18
-
19
- <!-- 4 to 8 things this product "does", one per line. Each line starts with a verb. -->
20
-
21
- ## Vocabulary
22
-
23
- <!-- 5 to 10 terms that mean something specific in this project. Disambiguate synonyms. -->
24
-
25
- ## Non-goals (out of scope, forever)
26
-
27
- <!-- Things this project intentionally does not do. Different from "out of MVP scope" — that lives in 02-mvp-scope.md. -->
@@ -1,30 +0,0 @@
1
- # 01 — Requirements
2
-
3
- > Filled in by the `planner` agent.
4
-
5
- ## Functional requirements
6
-
7
- <!--
8
- Numbered. Each line reads "the system does …".
9
- F-001. Users can ...
10
- F-002. The system ...
11
- -->
12
-
13
- ## Non-functional requirements
14
-
15
- <!--
16
- Performance / reliability / security / operations / compatibility.
17
- NF-001. No command may corrupt user data ...
18
- -->
19
-
20
- ## Users / stakeholders
21
-
22
- <!-- Who uses the product, who cares about it. By role. -->
23
-
24
- ## Constraints
25
-
26
- <!-- Technical, schedule, budget, regulatory — anything imposed from outside. -->
27
-
28
- ## Assumptions
29
-
30
- <!-- The "let's assume this is true" list. Items that would be risky if they break. -->
@@ -1,36 +0,0 @@
1
- # 02 — MVP Scope
2
-
3
- > Filled in by the `planner` agent. Keep it small.
4
-
5
- ## MVP in one sentence
6
-
7
- <!-- A single line: "Within two weeks, who can do what." -->
8
-
9
- ## In scope
10
-
11
- <!--
12
- The 5 to 10 capabilities the MVP must have.
13
- - IN: sign-up and single sign-on
14
- - IN: ...
15
- -->
16
-
17
- ## Intentionally out for MVP
18
-
19
- <!--
20
- Things that may ship later but not in the MVP.
21
- - OUT: multiple workspaces
22
- - OUT: payment UI
23
- The clearer this is, the smaller the backlog gets.
24
- -->
25
-
26
- ## Definition of done
27
-
28
- <!--
29
- - Which scenarios run end-to-end.
30
- - Which data flows are preserved.
31
- - Which error situations are tolerated.
32
- -->
33
-
34
- ## How to validate
35
-
36
- <!-- How a real person confirms "the MVP is ready". One demo scenario. -->
@@ -1,29 +0,0 @@
1
- # 04 — Tech Stack
2
-
3
- > Filled in by the `architect` agent. Add a one-line "why" to each choice.
4
-
5
- ## Runtime / language
6
-
7
- <!-- Node.js / Python / Go, etc. Version. The reason behind the choice. -->
8
-
9
- ## Frameworks / libraries
10
-
11
- <!--
12
- | Area | Choice | Why |
13
- | ------- | ------------------ | ---------------------------------------------- |
14
- | Server | ... | ... |
15
- | ORM | ... | ... |
16
- | Tests | vitest | TS-friendly, fast |
17
- -->
18
-
19
- ## Infrastructure
20
-
21
- <!-- Where the system runs, how it is deployed (high level). Detailed commands live in 09-deployment.md. -->
22
-
23
- ## Package manager / build
24
-
25
- <!-- pnpm / npm / yarn, tsc / esbuild / vite, etc. Whether there is a single entry point. -->
26
-
27
- ## Explicit non-adoptions
28
-
29
- <!-- Things we deliberately do not use, and why. -->
@@ -1,23 +0,0 @@
1
- # 07 — Backlog
2
-
3
- TASK order. Work top to bottom. Do not skip to the next item before the current TASK is done.
4
-
5
- > Slot to be filled by the `planner` agent.
6
-
7
- ## MVP 1
8
-
9
- | ID | Title | Status |
10
- | -------- | ----------------------------------- | ------- |
11
- | TASK-001 | <first TASK title> | planned |
12
-
13
- ## MVP 2 (later)
14
-
15
- <!-- Slot. -->
16
-
17
- ## Later (out of MVP, but live candidates)
18
-
19
- <!-- Items to revisit after MVP. Do not turn them into TASKs right away. -->
20
-
21
- ## Non-goals
22
-
23
- Follow the "Non-goals" section in `docs/project/00-overview.md`. The backlog only grows inside those bounds.
@@ -1,29 +0,0 @@
1
- # 08 — Environment
2
-
3
- Environment variables used by this project and what they mean.
4
-
5
- ## Local development
6
-
7
- Copy `.vibeops.env.example` to `.vibeops.env` and fill in the values. Never commit `.vibeops.env` — it is listed in `.gitignore`.
8
-
9
- | Variable | Purpose | Required |
10
- | --------------- | ---------------------------------------------------------------- | --------------- |
11
- | `NOTION_TOKEN` | Notion internal integration secret (the only secret VibeOps reads) | If using Notion |
12
-
13
- `NOTION_TOKEN` is the only secret VibeOps reads from the environment. Notion **Projects / Tasks DB target IDs** are not environment variables — they live in `.vibeops.json` as `notion.projectsTargetId` / `notion.tasksTargetId`, and `vibeops notion init` writes them. GitHub auth is owned by `gh auth`, so there is no need to put `GITHUB_TOKEN` here.
14
-
15
- > The legacy `NOTION_API_KEY` / `NOTION_PROJECT_DB` / `NOTION_TASK_DB` environment variables are no longer used. VibeOps ignores them if they remain in an existing `.vibeops.env`. It is safe to remove them by hand.
16
-
17
- <!--
18
- Add project-specific environment variables here once they exist.
19
- Examples: DATABASE_URL, OAUTH_CLIENT_ID, ...
20
- -->
21
-
22
- ## Staging / production
23
-
24
- <!-- Slot. -->
25
-
26
- ## Secret management
27
-
28
- - `.vibeops.env` is a plain-text local file. Production secrets belong in a real secret manager.
29
- - No VibeOps command prints secret values to stdout in the clear (they are masked).
@@ -1,28 +0,0 @@
1
- # 09 — Deployment
2
-
3
- How the project is deployed and run.
4
-
5
- ## Local run
6
-
7
- <!-- The single-command dev-server flow (e.g. `pnpm dev`). -->
8
-
9
- ## Build
10
-
11
- <!-- Where build artifacts live and which command produces them. -->
12
-
13
- ## Packaging / release
14
-
15
- <!--
16
- Steps per target environment.
17
- - npm publish?
18
- - Docker image?
19
- - Cloud (Vercel / Fly / AWS / GCP / ...) ?
20
- -->
21
-
22
- ## Environment separation
23
-
24
- <!-- Differences between dev / staging / prod. Same code with different env? Same image? -->
25
-
26
- ## Rollback
27
-
28
- <!-- The standard rollback flow when a deployment goes wrong. -->