@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.
- package/CHANGELOG.md +198 -1
- package/README.md +62 -402
- package/dist/bootstrap/installer.js +4 -16
- package/dist/cli.js +52 -244
- package/dist/commands/init.js +3 -3
- package/dist/commands/status.js +145 -8
- package/dist/commands/task-add.js +100 -0
- package/dist/commands/task-done.js +117 -74
- package/dist/lib/config.js +2 -118
- package/dist/lib/git.js +190 -8
- package/dist/lib/llm-complete.js +62 -0
- package/dist/lib/paths.js +7 -3
- package/dist/lib/plan-llm-openai.js +0 -63
- package/dist/lib/resolve-task.js +34 -0
- package/dist/lib/slug.js +11 -0
- package/dist/lib/task-add-llm.js +81 -0
- package/dist/lib/task-context.js +68 -0
- package/dist/lib/task-done-llm.js +148 -0
- package/dist/lib/task-merge.js +115 -0
- package/dist/lib/task-scaffold.js +70 -92
- package/dist/lib/task-start.js +72 -0
- package/dist/lib/task-summary.js +12 -239
- package/dist/lib/task.js +80 -37
- package/dist/types/config.js +0 -16
- package/package.json +3 -4
- package/templates/.cursor/rules/01-task-source-of-truth.mdc +12 -0
- package/templates/.cursor/rules/02-git-safety.mdc +11 -0
- package/templates/.cursor/rules/03-docs-on-done.mdc +13 -0
- package/templates/.cursor/skills/implement-task/SKILL.md +22 -0
- package/templates/.cursor/skills/plan-task/SKILL.md +19 -0
- package/templates/AGENTS.md +26 -87
- package/templates/docs/logs/README.md +4 -35
- package/templates/docs/project/03-architecture.md +10 -29
- package/templates/docs/project/05-current-state.md +7 -27
- package/templates/docs/project/06-decisions.md +6 -17
- package/templates/docs/tasks/TASK-000-template.md +9 -44
- package/dist/agent/loader.js +0 -71
- package/dist/agent/prompt.js +0 -66
- package/dist/commands/agent-list.js +0 -32
- package/dist/commands/agent-prompt.js +0 -59
- package/dist/commands/agent-show.js +0 -26
- package/dist/commands/github-init.js +0 -554
- package/dist/commands/github-status.js +0 -164
- package/dist/commands/notion-init.js +0 -764
- package/dist/commands/notion-sync.js +0 -405
- package/dist/commands/notion-test.js +0 -595
- package/dist/commands/plan.js +0 -343
- package/dist/commands/task-check.js +0 -155
- package/dist/commands/task-generate.js +0 -206
- package/dist/commands/task-pull.js +0 -277
- package/dist/commands/task-rollback.js +0 -174
- package/dist/commands/task-start.js +0 -102
- package/dist/lib/brief.js +0 -356
- package/dist/lib/github-cli.js +0 -247
- package/dist/lib/notion-client.js +0 -459
- package/dist/lib/notion-discovery.js +0 -671
- package/dist/lib/notion-env.js +0 -140
- package/dist/lib/notion-mappers.js +0 -148
- package/dist/lib/notion-schema.js +0 -272
- package/dist/lib/notion-sync.js +0 -337
- package/dist/lib/notion-target.js +0 -247
- package/dist/lib/package-json.js +0 -133
- package/dist/lib/plan-apply-planner.js +0 -131
- package/dist/lib/plan-codex-pkce.js +0 -234
- package/dist/lib/plan-llm-models.js +0 -237
- package/dist/lib/plan-llm-normalize.js +0 -146
- package/dist/lib/plan-llm-session.js +0 -682
- package/dist/lib/plan-post-apply-setup.js +0 -116
- package/dist/lib/project-docs.js +0 -95
- package/dist/lib/prompt-builder.js +0 -135
- package/dist/lib/task-generator.js +0 -183
- package/dist/lib/task-prompt.js +0 -23
- package/dist/lib/task-pull.js +0 -354
- package/dist/status/collector.js +0 -103
- package/dist/status/format.js +0 -177
- package/dist/types/brief.js +0 -126
- package/templates/.cursor/rules/00-project-governance.mdc +0 -28
- package/templates/.cursor/rules/01-agent-orchestration.mdc +0 -48
- package/templates/.cursor/rules/02-task-workflow.mdc +0 -38
- package/templates/.cursor/rules/03-git-safety.mdc +0 -30
- package/templates/.cursor/rules/04-docs-update.mdc +0 -22
- package/templates/.vibeops/agents/architect.md +0 -47
- package/templates/.vibeops/agents/builder.md +0 -38
- package/templates/.vibeops/agents/docs.md +0 -54
- package/templates/.vibeops/agents/orchestrator.md +0 -40
- package/templates/.vibeops/agents/planner.md +0 -60
- package/templates/.vibeops/agents/recovery.md +0 -49
- package/templates/.vibeops/agents/reviewer.md +0 -47
- package/templates/.vibeops/agents/tester.md +0 -43
- package/templates/.vibeops/prompts/create-plan.md +0 -33
- package/templates/.vibeops/prompts/generate-tasks.md +0 -41
- package/templates/.vibeops/prompts/implement-task.md +0 -39
- package/templates/.vibeops/prompts/review-task.md +0 -34
- package/templates/.vibeops/prompts/rollback.md +0 -32
- package/templates/.vibeops/prompts/start-project.md +0 -39
- package/templates/.vibeops/workflows/notion-sync.md +0 -53
- package/templates/.vibeops/workflows/project-start.md +0 -73
- package/templates/.vibeops/workflows/rollback.md +0 -45
- package/templates/.vibeops/workflows/task-lifecycle.md +0 -71
- package/templates/docs/project/00-overview.md +0 -27
- package/templates/docs/project/01-requirements.md +0 -30
- package/templates/docs/project/02-mvp-scope.md +0 -36
- package/templates/docs/project/04-tech-stack.md +0 -29
- package/templates/docs/project/07-backlog.md +0 -23
- package/templates/docs/project/08-env.md +0 -29
- 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. -->
|