picagear 0.1.0-next.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/LICENSE +59 -0
- package/README.md +171 -0
- package/dist/cli.js +8790 -0
- package/docs/local-installation.md +85 -0
- package/package.json +57 -0
package/LICENSE
ADDED
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
# PolyForm Strict License 1.0.0
|
|
2
|
+
|
|
3
|
+
<https://polyformproject.org/licenses/strict/1.0.0>
|
|
4
|
+
|
|
5
|
+
## Acceptance
|
|
6
|
+
|
|
7
|
+
In order to get any license under these terms, you must agree to them as both strict obligations and conditions to all your licenses.
|
|
8
|
+
|
|
9
|
+
## Copyright License
|
|
10
|
+
|
|
11
|
+
The licensor grants you a copyright license for the software to do everything you might do with the software that would otherwise infringe the licensor's copyright in it for any permitted purpose, other than distributing the software or making changes or new works based on the software.
|
|
12
|
+
|
|
13
|
+
## Patent License
|
|
14
|
+
|
|
15
|
+
The licensor grants you a patent license for the software that covers patent claims the licensor can license, or becomes able to license, that you would infringe by using the software.
|
|
16
|
+
|
|
17
|
+
## Noncommercial Purposes
|
|
18
|
+
|
|
19
|
+
Any noncommercial purpose is a permitted purpose.
|
|
20
|
+
|
|
21
|
+
## Personal Uses
|
|
22
|
+
|
|
23
|
+
Personal use for research, experiment, and testing for the benefit of public knowledge, personal study, private entertainment, hobby projects, amateur pursuits, or religious observance, without any anticipated commercial application, is use for a permitted purpose.
|
|
24
|
+
|
|
25
|
+
## Noncommercial Organizations
|
|
26
|
+
|
|
27
|
+
Use by any charitable organization, educational institution, public research organization, public safety or health organization, environmental protection organization, or government institution is use for a permitted purpose regardless of the source of funding or obligations resulting from the funding.
|
|
28
|
+
|
|
29
|
+
## Fair Use
|
|
30
|
+
|
|
31
|
+
You may have "fair use" rights for the software under the law. These terms do not limit them.
|
|
32
|
+
|
|
33
|
+
## No Other Rights
|
|
34
|
+
|
|
35
|
+
These terms do not allow you to sublicense or transfer any of your licenses to anyone else, or prevent the licensor from granting licenses to anyone else. These terms do not imply any other licenses.
|
|
36
|
+
|
|
37
|
+
## Patent Defense
|
|
38
|
+
|
|
39
|
+
If you make any written claim that the software infringes or contributes to infringement of any patent, your patent license for the software granted under these terms ends immediately. If your company makes such a claim, your patent license ends immediately for work on behalf of your company.
|
|
40
|
+
|
|
41
|
+
## Violations
|
|
42
|
+
|
|
43
|
+
The first time you are notified in writing that you have violated any of these terms, or done anything with the software not covered by your licenses, your licenses can nonetheless continue if you come into full compliance with these terms, and take practical steps to correct past violations, within 32 days of receiving notice. Otherwise, all your licenses end immediately.
|
|
44
|
+
|
|
45
|
+
## No Liability
|
|
46
|
+
|
|
47
|
+
***As far as the law allows, the software comes as is, without any warranty or condition, and the licensor will not be liable to you for any damages arising out of these terms or the use or nature of the software, under any kind of legal claim.***
|
|
48
|
+
|
|
49
|
+
## Definitions
|
|
50
|
+
|
|
51
|
+
The **licensor** is the individual or entity offering these terms, and the **software** is the software the licensor makes available under these terms.
|
|
52
|
+
|
|
53
|
+
**You** refers to the individual or entity agreeing to these terms.
|
|
54
|
+
|
|
55
|
+
**Your company** is any legal entity, sole proprietorship, or other kind of organization that you work for, plus all organizations that have control over, are under the control of, or are under common control with that organization. **Control** means ownership of substantially all the assets of an entity, or the power to direct its management and policies by vote, contract, or otherwise. Control can be direct or indirect.
|
|
56
|
+
|
|
57
|
+
**Your licenses** are all the licenses granted to you for the software under these terms.
|
|
58
|
+
|
|
59
|
+
**Use** means anything you do with the software requiring one of your licenses.
|
package/README.md
ADDED
|
@@ -0,0 +1,171 @@
|
|
|
1
|
+
# Picagear
|
|
2
|
+
|
|
3
|
+
A local code factory for one developer and one repository.
|
|
4
|
+
|
|
5
|
+
Picagear takes a large epic, proposes a capacity-safe weekly commitment, asks for one approval, compiles each approved task into a strict work order, and then runs one task per pull request through Codex and Claude Code in isolated git worktrees. It verifies fresh artifacts and declared gates itself instead of trusting a worker's exit status, retries once in a fresh worktree when a run produces nothing, and blocks with evidence when that fails. A terminal dashboard shows the line as an assembly line.
|
|
6
|
+
|
|
7
|
+
Picagear runs locally, requires no Picagear service to receive repository content, and sends work only through the coding providers the user has configured. It is not a chat application, a hosted development environment, or a project manager.
|
|
8
|
+
|
|
9
|
+
## Status
|
|
10
|
+
|
|
11
|
+
Picagear `0.1.0-next.0` is a preview published to npm under the `next` tag. It is a functional foreground command line tool. It never merges a pull request and it never deletes a worktree. A full lifecycle system integration run against the installed package and live task performance with real providers are not yet proven.
|
|
12
|
+
|
|
13
|
+
### Install and initialize
|
|
14
|
+
|
|
15
|
+
Picagear requires Node 22.13 or later, Git, and the provider CLIs you enable. Install the preview as a development dependency of a private consumer project with package scripts disabled, then run the installed bin. A source checkout does not link its own bin, so this path does not exist there.
|
|
16
|
+
|
|
17
|
+
```sh
|
|
18
|
+
cd <consumer-directory>
|
|
19
|
+
npm init --yes
|
|
20
|
+
npm pkg set private=true --json
|
|
21
|
+
npm install --save-dev --ignore-scripts picagear@next
|
|
22
|
+
./node_modules/.bin/picagear --help
|
|
23
|
+
./node_modules/.bin/picagear init --repo <path> --adapters codex,claude
|
|
24
|
+
```
|
|
25
|
+
|
|
26
|
+
A reviewed local archive remains a supported alternative. The [installation guide](docs/local-installation.md) covers both paths. Decadra advisory integration is optional and installed separately from a reviewed local archive. The Decadra package currently published on npm does not provide that integration.
|
|
27
|
+
|
|
28
|
+
Factory data lives under `PICAGEAR_HOME`. The default is `~/.picagear`. The global `--home <dir>` option takes precedence over the environment variable.
|
|
29
|
+
|
|
30
|
+
Commands select the factory for the Git repository containing the current directory. Use the global `--factory <id>` option to select one explicitly. Outside a repository, Picagear refuses an ambiguous home containing more than one factory and lists the available identifiers.
|
|
31
|
+
|
|
32
|
+
Set `PICAGEAR_ADAPTERS=fake` before running commands for a quota-free pilot. This keeps Git real but replaces provider execution, pull request creation, and Decadra with deterministic fakes. With no `PICAGEAR_FAKE_SCRIPT`, fake execution produces no artifact, which exercises the retry and block path.
|
|
33
|
+
|
|
34
|
+
### Add an epic
|
|
35
|
+
|
|
36
|
+
Save an epic request as `epic.json`. Each backlog entry becomes a task brief at intake.
|
|
37
|
+
|
|
38
|
+
```json
|
|
39
|
+
{
|
|
40
|
+
"schemaVersion": 1,
|
|
41
|
+
"id": "epic-config-validation",
|
|
42
|
+
"title": "Validate project configuration",
|
|
43
|
+
"objective": "Reject invalid project configuration with clear local diagnostics.",
|
|
44
|
+
"constraints": ["Keep configuration parsing offline."],
|
|
45
|
+
"horizonDays": 7,
|
|
46
|
+
"backlog": [
|
|
47
|
+
{
|
|
48
|
+
"id": "validate-config",
|
|
49
|
+
"title": "Add configuration validation",
|
|
50
|
+
"outcome": "Create a bounded configuration validator and tests for missing required fields.",
|
|
51
|
+
"category": "build",
|
|
52
|
+
"tier": "standard",
|
|
53
|
+
"priority": 80,
|
|
54
|
+
"dependsOn": [],
|
|
55
|
+
"allowedPaths": ["src/app", "test"],
|
|
56
|
+
"prohibitedPaths": ["src/adapters"],
|
|
57
|
+
"expectedArtifacts": [
|
|
58
|
+
{ "path": "src/app/config.ts", "kind": "created", "required": true },
|
|
59
|
+
{ "path": "test/config.test.ts", "kind": "created", "required": true }
|
|
60
|
+
],
|
|
61
|
+
"gates": ["test"],
|
|
62
|
+
"verification": [["npm", "test", "--", "test/config.test.ts"]],
|
|
63
|
+
"completionEvidence": ["Invalid configuration is rejected and the focused test passes."],
|
|
64
|
+
"contextRefs": ["src/app"],
|
|
65
|
+
"estimatedMinutes": 120,
|
|
66
|
+
"reviewBurden": 1,
|
|
67
|
+
"ambiguity": 0,
|
|
68
|
+
"blastRadius": 0,
|
|
69
|
+
"reversibility": 2,
|
|
70
|
+
"gateStrength": 2,
|
|
71
|
+
"interpretation": "strict",
|
|
72
|
+
"requestedTools": ["read", "edit", "write", "grep"],
|
|
73
|
+
"requestedPermissions": ["read", "edit", "write", "run-gates"],
|
|
74
|
+
"needsBrowser": false,
|
|
75
|
+
"needsVisual": false
|
|
76
|
+
}
|
|
77
|
+
],
|
|
78
|
+
"references": ["README.md"],
|
|
79
|
+
"completionDefinition": "The validator is independently verified and ready for review."
|
|
80
|
+
}
|
|
81
|
+
```
|
|
82
|
+
|
|
83
|
+
```sh
|
|
84
|
+
picagear epic add epic.json
|
|
85
|
+
```
|
|
86
|
+
|
|
87
|
+
A supplied backlog is normalized as written. An epic with an empty backlog is decomposed by objective sentences into at most eight reviewable implementation slices. Each slice is bounded to one charter allowed root and the mandatory charter gates. Intake only proposes briefs. It cannot execute before plan approval. Epic constraints are copied into every normalized brief and compiled work order.
|
|
88
|
+
|
|
89
|
+
### Plan and approve once
|
|
90
|
+
|
|
91
|
+
`plan` proposes a capacity-safe weekly subset. Capacity allowances are attempt counts kept separately for each adapter. Provider-native units are never converted or summed. Inspect the proposal before giving the single approval that creates the active commitment. Approval binds the hash of every included brief.
|
|
92
|
+
|
|
93
|
+
```sh
|
|
94
|
+
picagear plan
|
|
95
|
+
picagear plan show
|
|
96
|
+
picagear plan approve
|
|
97
|
+
```
|
|
98
|
+
|
|
99
|
+
Use `picagear plan approve --remove <task-id>` to remove a task before approval. Use `--plan <id>` to approve a specific proposal.
|
|
100
|
+
|
|
101
|
+
### Compile and run
|
|
102
|
+
|
|
103
|
+
The first scheduling tick compiles committed briefs into strict work orders pinned to the current base revision. A dependent brief waits until each prerequisite is complete and integrated, then compiles against a base that contains those revisions. Later ticks dispatch, verify, retry, or block work. A tick that dispatches an attempt waits for that attempt to finish because Picagear has no daemon. Both `tick` and `run` hold the coordinator lock, so a competing tick exits with status 4.
|
|
104
|
+
|
|
105
|
+
```sh
|
|
106
|
+
picagear tick
|
|
107
|
+
picagear tick
|
|
108
|
+
picagear tick
|
|
109
|
+
```
|
|
110
|
+
|
|
111
|
+
Use the foreground supervisor when you want repeated ticks.
|
|
112
|
+
|
|
113
|
+
```sh
|
|
114
|
+
picagear run
|
|
115
|
+
```
|
|
116
|
+
|
|
117
|
+
`picagear run --max-ticks 10` bounds a foreground run. In another terminal, watch the event log projection.
|
|
118
|
+
|
|
119
|
+
```sh
|
|
120
|
+
picagear dashboard --watch 5
|
|
121
|
+
picagear inspect validate-config
|
|
122
|
+
picagear work-order show validate-config
|
|
123
|
+
```
|
|
124
|
+
|
|
125
|
+
After Picagear has independently verified an attempt, open its pull request and record the review decision. Pull request creation requires retained artifact observations for the exact attempt and order, a changed tree inside scope, the current work order hash, and a passed result for every mandatory gate and verification command. Picagear pushes the immutable verified revision and confirms the remote branch head. Existing pull requests for the attempt branch are reconciled before a new one is created.
|
|
126
|
+
|
|
127
|
+
```sh
|
|
128
|
+
picagear pr open validate-config
|
|
129
|
+
picagear approve validate-config
|
|
130
|
+
picagear archive validate-config
|
|
131
|
+
```
|
|
132
|
+
|
|
133
|
+
Use `picagear reject validate-config --reason "Tests need a narrower fixture"` instead of approval when review fails. Archiving is allowed only after completion.
|
|
134
|
+
|
|
135
|
+
### Control and diagnose
|
|
136
|
+
|
|
137
|
+
Pause prevents new dispatch while allowing verification to continue. Resume restores dispatch. Stop records cancellation requests for active attempts and keeps every worktree.
|
|
138
|
+
|
|
139
|
+
```sh
|
|
140
|
+
picagear pause --reason "Review queue is full"
|
|
141
|
+
picagear resume
|
|
142
|
+
picagear stop --reason "End the current run"
|
|
143
|
+
picagear doctor
|
|
144
|
+
```
|
|
145
|
+
|
|
146
|
+
Use `picagear status` for a compact projection. Use `picagear retry <task>` only for a blocked task that is eligible for manual retry. A compile failure, worker mismatch, or rejected review can use a replacement brief. Save a complete corrected `TaskBriefV1` object with the same task and epic identifiers, then run the following commands. The replacement remains pending until its explicit approval, and a new plan approval is still required.
|
|
147
|
+
|
|
148
|
+
```sh
|
|
149
|
+
picagear brief replace validate-config corrected-brief.json
|
|
150
|
+
picagear brief approve <proposal-id>
|
|
151
|
+
picagear plan
|
|
152
|
+
picagear plan approve
|
|
153
|
+
```
|
|
154
|
+
|
|
155
|
+
### Documentation
|
|
156
|
+
|
|
157
|
+
Read the [architecture overview](docs/architecture/overview.md), [data file reference](docs/architecture/data-files.md), [compiler diagnostics](docs/architecture/compiler-diagnostics.md), [work order contract](docs/work-order-contract.md), [execution adapter reference](docs/execution-adapters.md), [privacy boundary](docs/privacy-and-data-boundary.md), [testing guide](docs/testing/README.md), [decisions](docs/decisions/README.md), and [delivery plan](docs/plans/2026-09-14-v1-vertical-slice.md).
|
|
158
|
+
|
|
159
|
+
## Development
|
|
160
|
+
|
|
161
|
+
```
|
|
162
|
+
npm install
|
|
163
|
+
npm run check
|
|
164
|
+
node dist/cli.js doctor
|
|
165
|
+
```
|
|
166
|
+
|
|
167
|
+
Read `AGENTS.md` before changing code.
|
|
168
|
+
|
|
169
|
+
## License
|
|
170
|
+
|
|
171
|
+
Picagear is licensed under the [PolyForm Strict License 1.0.0](LICENSE). It permits use for noncommercial purposes as the license defines them. It does not grant rights to distribute the software or to make changes or new works based on it. Public availability on npm does not grant further rights. Read the license text for the full terms.
|