@4pm/cli 1.17.0 → 1.18.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/dist/index.js +289 -16
- package/dist/project-sample/.claude/.autonomous.settings.json +9 -11
- package/dist/project-sample/.claude/AUTONOMOUS-CRON.md +5 -4
- package/dist/project-sample/.claude/AUTONOMOUS.md +26 -26
- package/dist/project-sample/.claude/commands/auto-cycle.md +16 -170
- package/dist/project-sample/.claude/hooks/autonomous-tick.sh +76 -193
- package/dist/project-sample/.claude/settings.json +1 -3
- package/dist/project-sample/.claude/templates/USER_QA.empty.md +13 -6
- package/dist/project-sample/.claude/templates/USER_QA.sample.md +6 -3
- package/dist/project-sample/.claude/templates/USER_TODO.empty.md +13 -6
- package/dist/project-sample/.claude/templates/USER_TODO.sample.md +7 -6
- package/dist/project-sample/.claude/templates/project.secrets.sample.json +0 -1
- package/dist/project-sample/AI_PLACEHOLDER.md +5 -5
- package/dist/project-sample/USER_QA.md +13 -6
- package/dist/project-sample/USER_TODO.md +13 -6
- package/dist/project-sample/project.secrets.json.sample +0 -1
- package/package.json +1 -1
|
@@ -1,5 +1,8 @@
|
|
|
1
1
|
# USER_QA — Questions & answers
|
|
2
2
|
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
3
|
+
> The AI asks; you answer + approve. The cycle re-analyses **only after the row is approved**. Approver/
|
|
4
|
+
> date and answerer/date live in the JSON sidecars (ADR-0320), not here; the web grid shows them.
|
|
5
|
+
|
|
6
|
+
| ID | Group | Depends | Original request | Question / options | Answer |
|
|
7
|
+
|----|-------|---------|------------------|--------------------|--------|
|
|
8
|
+
| QA-0001-0001 | Auth | | Add a login screen | Email/password only, or also OAuth? (a) email+password, (b) also Google, (c) also GitHub | (a) email+password |
|
|
@@ -1,9 +1,16 @@
|
|
|
1
1
|
# USER_TODO — User requests
|
|
2
2
|
|
|
3
|
-
> Write what you want the AI to do (in the project's language — default English), **one request per row
|
|
4
|
-
>
|
|
5
|
-
>
|
|
3
|
+
> Write what you want the AI to do (in the project's language — default English), **one request per row**.
|
|
4
|
+
> Each row has an **ID `REQ-{groupid:0000}-{reqid:0000}`** (group = one batch of related requests) used to
|
|
5
|
+
> approve it and to reference it from `Depends`. The autonomous cycle analyses a request into tasks in
|
|
6
|
+
> `AI_TODO.md` **only after the row is approved**. Approval + authorship are kept in JSON sidecars, not in
|
|
7
|
+
> this table (ADR-0320): `.claude/.autonomous.approvals.json` (who/when approved) and
|
|
8
|
+
> `.claude/.autonomous.authors.json` (who/when wrote the row) — the web USER_TODO grid shows them and
|
|
9
|
+
> enforces four-eyes (the writer can't approve their own row, except ADMIN). See
|
|
10
|
+
> `.claude/templates/USER_TODO.sample.md`.
|
|
11
|
+
>
|
|
12
|
+
> **Columns (content only):** `ID` · `Group` · `Depends` (comma-separated `REQ-…`) · `Request`.
|
|
6
13
|
|
|
7
|
-
|
|
|
8
|
-
|
|
9
|
-
| | | |
|
|
14
|
+
| ID | Group | Depends | Request |
|
|
15
|
+
|----|-------|---------|---------|
|
|
16
|
+
| | | | |
|
|
@@ -1,9 +1,10 @@
|
|
|
1
1
|
# USER_TODO — User requests
|
|
2
2
|
|
|
3
|
-
>
|
|
4
|
-
>
|
|
3
|
+
> One request per row with an **ID `REQ-{groupid:0000}-{reqid:0000}`**. The cycle analyses a request into
|
|
4
|
+
> `AI_TODO.md` tasks **only after the row is approved**. Approver/date and writer/date live in the JSON
|
|
5
|
+
> sidecars (ADR-0320), not here; the web grid shows them.
|
|
5
6
|
|
|
6
|
-
|
|
|
7
|
-
|
|
8
|
-
|
|
|
9
|
-
|
|
|
7
|
+
| ID | Group | Depends | Request |
|
|
8
|
+
|----|-------|---------|---------|
|
|
9
|
+
| REQ-0001-0001 | Auth | | Add a login screen with email + password, validating inputs and showing errors |
|
|
10
|
+
| REQ-0001-0002 | Auth | REQ-0001-0001 | Wire it to the existing auth API and handle the error responses |
|
|
@@ -7,13 +7,13 @@
|
|
|
7
7
|
> file holds only keys + explanations, so it is **safe to commit** and the AI can read it for context.
|
|
8
8
|
>
|
|
9
9
|
> **Why two files:**
|
|
10
|
-
> - `AI_PLACEHOLDER.md` (this file) — keys + explanations. Safe to commit; not gitignored
|
|
11
|
-
> - `project.secrets.json` — key → real value. **Gitignored**
|
|
12
|
-
>
|
|
13
|
-
>
|
|
10
|
+
> - `AI_PLACEHOLDER.md` (this file) — keys + explanations. Safe to commit; not gitignored.
|
|
11
|
+
> - `project.secrets.json` — key → real value. **Gitignored** (never committed / pushed), so secret
|
|
12
|
+
> values stay on the worker. The AI **can** read this file to use the values while running/testing a
|
|
13
|
+
> task — so enter **test values only**; do **not** put high-sensitivity secrets here. Manage values
|
|
14
|
+
> from the web (Placeholder tab) — they are write-only (never shown back).
|
|
14
15
|
|
|
15
16
|
| Key | Explanation |
|
|
16
17
|
|-----|-------------|
|
|
17
|
-
| ai_dev_branch | The shared dev branch the AI merges tasks into before the main branch. |
|
|
18
18
|
| api_base_url | Base URL of the internal API the AI calls during integration tests. |
|
|
19
19
|
| api_key | Key for the internal API (real value in project.secrets.json, NOT committed). |
|
|
@@ -1,9 +1,16 @@
|
|
|
1
1
|
# USER_QA — Questions & answers
|
|
2
2
|
|
|
3
|
-
> When a request is unclear, the AI adds a **row** here (
|
|
4
|
-
>
|
|
5
|
-
> `
|
|
3
|
+
> When a request is unclear, the AI adds a **row** here (instead of guessing) with an
|
|
4
|
+
> **ID `QA-{groupid:0000}-{qaid:0000}`**: the original request and what's unclear + options, leaving the
|
|
5
|
+
> `Answer` blank. You fill the `Answer`; the autonomous cycle folds it back into a re-analysis **only after
|
|
6
|
+
> the row is approved**. Approval + authorship (who answered / who approved, with dates) live in JSON
|
|
7
|
+
> sidecars, not in this table (ADR-0320): `.claude/.autonomous.approvals.json` +
|
|
8
|
+
> `.claude/.autonomous.authors.json` — the web USER_QA grid shows them and enforces four-eyes (the person
|
|
9
|
+
> who answered can't approve their own answer, except ADMIN). See `.claude/templates/USER_QA.sample.md`.
|
|
10
|
+
>
|
|
11
|
+
> **Columns (content only):** `ID` · `Group` · `Depends` (comma-separated `QA-…`) · `Original request` ·
|
|
12
|
+
> `Question / options` · `Answer`.
|
|
6
13
|
|
|
7
|
-
|
|
|
8
|
-
|
|
9
|
-
| | | | |
|
|
14
|
+
| ID | Group | Depends | Original request | Question / options | Answer |
|
|
15
|
+
|----|-------|---------|------------------|--------------------|--------|
|
|
16
|
+
| | | | | | |
|
|
@@ -1,9 +1,16 @@
|
|
|
1
1
|
# USER_TODO — User requests
|
|
2
2
|
|
|
3
|
-
> Write what you want the AI to do (in the project's language — default English), **one request per row
|
|
4
|
-
>
|
|
5
|
-
>
|
|
3
|
+
> Write what you want the AI to do (in the project's language — default English), **one request per row**.
|
|
4
|
+
> Each row has an **ID `REQ-{groupid:0000}-{reqid:0000}`** (group = one batch of related requests) used to
|
|
5
|
+
> approve it and to reference it from `Depends`. The autonomous cycle analyses a request into tasks in
|
|
6
|
+
> `AI_TODO.md` **only after the row is approved**. Approval + authorship are kept in JSON sidecars, not in
|
|
7
|
+
> this table (ADR-0320): `.claude/.autonomous.approvals.json` (who/when approved) and
|
|
8
|
+
> `.claude/.autonomous.authors.json` (who/when wrote the row) — the web USER_TODO grid shows them and
|
|
9
|
+
> enforces four-eyes (the writer can't approve their own row, except ADMIN). See
|
|
10
|
+
> `.claude/templates/USER_TODO.sample.md`.
|
|
11
|
+
>
|
|
12
|
+
> **Columns (content only):** `ID` · `Group` · `Depends` (comma-separated `REQ-…`) · `Request`.
|
|
6
13
|
|
|
7
|
-
|
|
|
8
|
-
|
|
9
|
-
| | | |
|
|
14
|
+
| ID | Group | Depends | Request |
|
|
15
|
+
|----|-------|---------|---------|
|
|
16
|
+
| | | | |
|