@magnusekdahl/parallix 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 +140 -0
- package/LICENSE +661 -0
- package/README.md +196 -0
- package/config/agents.json +25 -0
- package/config/agents.local.json.template +8 -0
- package/config/state-map.json +4 -0
- package/config/state-map.json.template +31 -0
- package/config/workflow.config.schema.json +98 -0
- package/data/.gitkeep +0 -0
- package/docs/adr/0031-ai-agent-instruction-boundary-and-command-floor.md +114 -0
- package/docs/adr/0032-mission-refinement-state-and-usage-budget-signals.md +135 -0
- package/docs/adr/0034-module-and-skill-invocation-model.md +202 -0
- package/docs/adr/0036-mission-sizing-and-dependency-wave-heuristics.md +79 -0
- package/docs/adr/0037-ai-workflow-coordination-architecture.md +162 -0
- package/docs/adr/0041-integration-pipeline-gates.md +165 -0
- package/docs/adr/0042-workflow-cli-color-rendering-approach.md +106 -0
- package/docs/adr/0043-git-target-resolution-strategy.md +185 -0
- package/docs/adr/0044-workflow-distribution-model.md +277 -0
- package/docs/adr/0045-parallax-branch-model.md +182 -0
- package/docs/adr/0046-npm-publish-process-and-security.md +138 -0
- package/docs/adr/index.md +20 -0
- package/docs/agents.md +212 -0
- package/docs/authority-reference.md +298 -0
- package/docs/forgejo-setup.md +31 -0
- package/docs/migration/extraction.md +61 -0
- package/docs/migration/task-classification.md +36 -0
- package/docs/operator-setup.md +76 -0
- package/docs/readme-rewrite-benchmark.md +188 -0
- package/docs/use-cases.md +105 -0
- package/examples/README.md +62 -0
- package/examples/run-enterprise-tarball-workflow-smoke.sh +257 -0
- package/examples/run-verify-env-smoke.sh +40 -0
- package/index.js +250 -0
- package/lib/README.md +13 -0
- package/lib/agents/agents.js +867 -0
- package/lib/agents/claude-telemetry.js +233 -0
- package/lib/agents/claude.js +139 -0
- package/lib/agents/codex-telemetry.js +202 -0
- package/lib/agents/codex.js +219 -0
- package/lib/agents/limit-hit.js +252 -0
- package/lib/agents/mistral-telemetry.js +44 -0
- package/lib/agents/mistral.js +68 -0
- package/lib/agents/opencode-export.js +110 -0
- package/lib/agents/opencode-telemetry.js +356 -0
- package/lib/agents/opencode.js +218 -0
- package/lib/agents/stage-telemetry.js +37 -0
- package/lib/commands/active.js +625 -0
- package/lib/commands/checkpoint.js +76 -0
- package/lib/commands/config.js +39 -0
- package/lib/commands/coverage-gate.js +358 -0
- package/lib/commands/diff.js +119 -0
- package/lib/commands/draft.js +854 -0
- package/lib/commands/handoff.js +501 -0
- package/lib/commands/integrate.js +1528 -0
- package/lib/commands/mission-start.js +246 -0
- package/lib/commands/rebase.js +597 -0
- package/lib/commands/repair-handoff.js +227 -0
- package/lib/commands/resolve-conflict.js +109 -0
- package/lib/commands/review.js +13 -0
- package/lib/commands/setup-review.js +13 -0
- package/lib/commands/setup.js +3 -0
- package/lib/commands/stats-backfill.js +395 -0
- package/lib/commands/stats.js +1601 -0
- package/lib/commands/status.js +183 -0
- package/lib/commands/verify.js +1 -0
- package/lib/core/fmt.js +202 -0
- package/lib/core/git.js +73 -0
- package/lib/core/gitignore.js +110 -0
- package/lib/core/mission-utils.js +1017 -0
- package/lib/core/persistent-data-migration.js +201 -0
- package/lib/core/product-config.js +508 -0
- package/lib/core/runtime-matrix.js +82 -0
- package/lib/core/spawn-tee.js +173 -0
- package/lib/core/state-map.js +89 -0
- package/lib/core/storage.js +165 -0
- package/lib/core/verification.js +149 -0
- package/lib/index.js +77 -0
- package/lib/review/rebase.js +163 -0
- package/lib/review/review-adapter.js +135 -0
- package/lib/review/review-artifacts.js +619 -0
- package/lib/review/review-commands.js +1375 -0
- package/lib/review/review-events.js +1007 -0
- package/lib/review/review-loop.js +1004 -0
- package/lib/review/review-polling.js +141 -0
- package/lib/review/review-prompts.js +212 -0
- package/lib/review/review-state.js +280 -0
- package/lib/review/review.js +96 -0
- package/lib/tools/backlog.js +680 -0
- package/lib/tools/forgejo.js +1585 -0
- package/lib/tools/gatekeeper.js +106 -0
- package/lib/tools/sessions.js +74 -0
- package/lib/tools/setup-review.js +1053 -0
- package/package.json +56 -0
- package/prompts/act-on-review-verbose.md +20 -0
- package/prompts/act-on-review.md +22 -0
- package/prompts/draft.md +20 -0
- package/prompts/execute.md +24 -0
- package/prompts/portfolio.md +30 -0
- package/prompts/review-verbose.md +20 -0
- package/prompts/review.md +17 -0
- package/px.js +236 -0
- package/templates/AGENTS-snippet.md +14 -0
- package/templates/AGENTS.md.template +34 -0
- package/templates/CLAUDE.md.template +27 -0
- package/templates/CODEX.md.template +38 -0
- package/templates/MISTRAL.md.template +24 -0
- package/templates/claude-commands/act-on-review.md +3 -0
- package/templates/claude-commands/area-review.md +3 -0
- package/templates/claude-commands/draft.md +6 -0
- package/templates/claude-commands/execute.md +6 -0
- package/templates/claude-commands/integrate.md +4 -0
- package/templates/claude-commands/portfolio.md +5 -0
- package/templates/claude-commands/review.md +4 -0
- package/templates/codex/config.toml +6 -0
- package/templates/mission-scaffold.md +39 -0
- package/templates/vibe/skills/act-on-review/SKILL.md +16 -0
- package/templates/vibe/skills/area-review/SKILL.md +16 -0
- package/templates/vibe/skills/draft/SKILL.md +16 -0
- package/templates/vibe/skills/execute/SKILL.md +16 -0
- package/templates/vibe/skills/integrate/SKILL.md +16 -0
- package/templates/vibe/skills/portfolio/SKILL.md +21 -0
- package/templates/vibe/skills/review/SKILL.md +16 -0
- package/tools/setup-forgejo-docker.sh +84 -0
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
# Mission: <Title> ({{slug}})
|
|
2
|
+
|
|
3
|
+
## Goal
|
|
4
|
+
<Goal>
|
|
5
|
+
|
|
6
|
+
## Why Now
|
|
7
|
+
<Why Now>
|
|
8
|
+
|
|
9
|
+
## Refinement Signals
|
|
10
|
+
- Estimated agent % usage limit: 25-50%
|
|
11
|
+
- Confidence: High
|
|
12
|
+
- Selection note: activate as-is
|
|
13
|
+
- Main drivers: <drivers>
|
|
14
|
+
|
|
15
|
+
## Scope
|
|
16
|
+
- <In scope>
|
|
17
|
+
|
|
18
|
+
## Out of Scope
|
|
19
|
+
- <Out of scope>
|
|
20
|
+
|
|
21
|
+
## Success Criteria
|
|
22
|
+
> **Falsifiability rule (ADR 0039 Part 2):** Each criterion must be falsifiable. Forbidden: subjective adjectives ("easy, fast, simple, intuitive, user-friendly, responsive, quick, efficient" without an attached metric) and vague quantifiers ("multiple, several, some, many, few, various"). For refactor / condense / migration missions, the criterion must enumerate the specific elements (rules, files, behaviours) that must survive — generic phrases like "preserve critical content" are not sufficient.
|
|
23
|
+
|
|
24
|
+
- <Criteria 1>
|
|
25
|
+
|
|
26
|
+
## Risks and Assumptions
|
|
27
|
+
- <Risks>
|
|
28
|
+
|
|
29
|
+
## Checkpoints
|
|
30
|
+
- CP 1: <Phase 1>
|
|
31
|
+
|
|
32
|
+
## Gates
|
|
33
|
+
- [ ] ./scripts/verify-local.sh docs
|
|
34
|
+
|
|
35
|
+
## Restricted Areas
|
|
36
|
+
- <Restricted>
|
|
37
|
+
|
|
38
|
+
## Stop Rules
|
|
39
|
+
- <Stop rules>
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: act-on-review
|
|
3
|
+
description: Use when the user explicitly asks to process review feedback for a parallix mission, including `/act-on-review` invocations. This is a thin launcher only; load and follow AGENTS.md, the locked MISSION.md, and docs/agent-prompts/act-on-review.md.
|
|
4
|
+
user-invocable: true
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
# Act On Review
|
|
8
|
+
|
|
9
|
+
This skill is a thin entrypoint for the parallix act-on-review workflow.
|
|
10
|
+
|
|
11
|
+
Load and follow:
|
|
12
|
+
1. `AGENTS.md`
|
|
13
|
+
2. the locked `MISSION.md` for the mission you are acting on
|
|
14
|
+
3. `docs/agent-prompts/act-on-review.md`
|
|
15
|
+
|
|
16
|
+
Read live Forgejo findings first, separate stale comments from current ones, and keep the review-response loop in the PR.
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: area-review
|
|
3
|
+
description: Use when the user explicitly asks for the parallix per-area review flow, including `/area-review` invocations. This is a thin launcher only; load and follow AGENTS.md, parallix/README.md, and docs/agent-prompts/area-review.md.
|
|
4
|
+
user-invocable: true
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
# Area Review
|
|
8
|
+
|
|
9
|
+
This skill is a thin entrypoint for the parallix per-area review workflow.
|
|
10
|
+
|
|
11
|
+
Load and follow:
|
|
12
|
+
1. `AGENTS.md`
|
|
13
|
+
2. `parallix/README.md`
|
|
14
|
+
3. `docs/agent-prompts/area-review.md`
|
|
15
|
+
|
|
16
|
+
Keep this as review-only work. Do not turn it into mission execution or portfolio generation.
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: draft
|
|
3
|
+
description: Use when the user explicitly asks for the parallix mission-draft workflow, including `/draft` invocations. This is a thin launcher only; load and follow AGENTS.md, parallix/README.md, and docs/agent-prompts/draft.md.
|
|
4
|
+
user-invocable: true
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
# Draft
|
|
8
|
+
|
|
9
|
+
This skill is a thin entrypoint for the parallix draft workflow.
|
|
10
|
+
|
|
11
|
+
Load and follow:
|
|
12
|
+
1. `AGENTS.md`
|
|
13
|
+
2. `parallix/README.md`
|
|
14
|
+
3. `docs/agent-prompts/draft.md`
|
|
15
|
+
|
|
16
|
+
Keep drafting on the mission branch/worktree and keep workflow authority in the canonical docs.
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: execute
|
|
3
|
+
description: Use when the user explicitly asks to execute a locked parallix mission, including `/execute` invocations. This is a thin launcher only; load and follow AGENTS.md, parallix/README.md, and docs/agent-prompts/execute.md.
|
|
4
|
+
user-invocable: true
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
# Execute
|
|
8
|
+
|
|
9
|
+
This skill is a thin entrypoint for the parallix execution workflow.
|
|
10
|
+
|
|
11
|
+
Load and follow:
|
|
12
|
+
1. `AGENTS.md`
|
|
13
|
+
2. `parallix/README.md`
|
|
14
|
+
3. `docs/agent-prompts/execute.md`
|
|
15
|
+
|
|
16
|
+
Use the locked `MISSION.md` as the mission-specific execution contract. Do not let this skill replace or weaken it.
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: integrate
|
|
3
|
+
description: Use when the user explicitly asks for the parallix integration workflow, including `/integrate` invocations. This is a thin launcher only; load and follow AGENTS.md, parallix/README.md, and docs/agent-prompts/integrate.md.
|
|
4
|
+
user-invocable: true
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
# Integrate
|
|
8
|
+
|
|
9
|
+
This skill is a thin entrypoint for the parallix integration workflow.
|
|
10
|
+
|
|
11
|
+
Load and follow:
|
|
12
|
+
1. `AGENTS.md`
|
|
13
|
+
2. `parallix/README.md`
|
|
14
|
+
3. `docs/agent-prompts/integrate.md`
|
|
15
|
+
|
|
16
|
+
Keep integration logic in the canonical prompt and use the documented cleanup and closeout path.
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: portfolio
|
|
3
|
+
description: Use when the user explicitly asks for the parallix portfolio workflow, including `/portfolio` invocations. This is a thin launcher only; load and follow AGENTS.md, parallix/README.md, and docs/agent-prompts/portfolio.md rather than inventing a parallel workflow.
|
|
4
|
+
user-invocable: true
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
# Portfolio
|
|
8
|
+
|
|
9
|
+
This skill is a thin entrypoint for the parallix portfolio workflow.
|
|
10
|
+
|
|
11
|
+
Load and follow:
|
|
12
|
+
1. `AGENTS.md`
|
|
13
|
+
2. `parallix/README.md`
|
|
14
|
+
3. `docs/agent-prompts/portfolio.md`
|
|
15
|
+
|
|
16
|
+
Authority:
|
|
17
|
+
- `AGENTS.md` owns hard rules and workflow boundaries.
|
|
18
|
+
- `parallix/README.md` owns workflow modes and prompt mapping.
|
|
19
|
+
- `docs/agent-prompts/portfolio.md` owns the portfolio execution prompt.
|
|
20
|
+
|
|
21
|
+
Do not treat this skill as a second workflow authority. It exists only to shorten invocation in Vibe.
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: review
|
|
3
|
+
description: Use when the user explicitly asks for the parallix review workflow, including `/review` invocations. This is a thin launcher only; load and follow AGENTS.md, parallix/README.md, and docs/agent-prompts/review.md.
|
|
4
|
+
user-invocable: true
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
# Review
|
|
8
|
+
|
|
9
|
+
This skill is a thin entrypoint for the parallix review workflow.
|
|
10
|
+
|
|
11
|
+
Load and follow:
|
|
12
|
+
1. `AGENTS.md`
|
|
13
|
+
2. `parallix/README.md`
|
|
14
|
+
3. `docs/agent-prompts/review.md`
|
|
15
|
+
|
|
16
|
+
Keep review output and review-state transitions aligned with the canonical docs and the Forgejo review surface.
|
|
@@ -0,0 +1,84 @@
|
|
|
1
|
+
#!/usr/bin/env bash
|
|
2
|
+
set -euo pipefail
|
|
3
|
+
|
|
4
|
+
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
|
5
|
+
REPO_ROOT="$(cd "${SCRIPT_DIR}/.." && pwd)"
|
|
6
|
+
FORGEJO_DIR="${REPO_ROOT}/forgejo"
|
|
7
|
+
COMPOSE_FILE="${FORGEJO_DIR}/docker-compose.yml"
|
|
8
|
+
STATE_DIR="${REPO_ROOT}/.forgejo-local"
|
|
9
|
+
FORCE=0
|
|
10
|
+
START=0
|
|
11
|
+
|
|
12
|
+
while [[ $# -gt 0 ]]; do
|
|
13
|
+
case "$1" in
|
|
14
|
+
--force)
|
|
15
|
+
FORCE=1
|
|
16
|
+
shift
|
|
17
|
+
;;
|
|
18
|
+
--start)
|
|
19
|
+
START=1
|
|
20
|
+
shift
|
|
21
|
+
;;
|
|
22
|
+
--help|-h)
|
|
23
|
+
cat <<EOF
|
|
24
|
+
Usage: $0 [--force] [--start]
|
|
25
|
+
|
|
26
|
+
Creates a minimal Forgejo docker-compose file for the current repo.
|
|
27
|
+
|
|
28
|
+
Options:
|
|
29
|
+
--force Overwrite an existing forgejo/docker-compose.yml
|
|
30
|
+
--start Start the Forgejo container after writing the compose file
|
|
31
|
+
EOF
|
|
32
|
+
exit 0
|
|
33
|
+
;;
|
|
34
|
+
*)
|
|
35
|
+
echo "[ERROR] Unknown argument: $1" >&2
|
|
36
|
+
exit 1
|
|
37
|
+
;;
|
|
38
|
+
esac
|
|
39
|
+
done
|
|
40
|
+
|
|
41
|
+
if [[ -f "${COMPOSE_FILE}" && ${FORCE} -ne 1 ]]; then
|
|
42
|
+
echo "[ERROR] ${COMPOSE_FILE} already exists. Use --force to overwrite." >&2
|
|
43
|
+
exit 1
|
|
44
|
+
fi
|
|
45
|
+
|
|
46
|
+
mkdir -p "${FORGEJO_DIR}" "${STATE_DIR}/server"
|
|
47
|
+
|
|
48
|
+
cat >"${COMPOSE_FILE}" <<'EOF'
|
|
49
|
+
services:
|
|
50
|
+
forgejo:
|
|
51
|
+
image: codeberg.org/forgejo/forgejo:12
|
|
52
|
+
container_name: ${FORGEJO_CONTAINER_NAME:-workflow-forgejo}
|
|
53
|
+
restart: unless-stopped
|
|
54
|
+
environment:
|
|
55
|
+
USER_UID: ${UID:-1000}
|
|
56
|
+
USER_GID: ${GID:-1000}
|
|
57
|
+
FORGEJO__server__ROOT_URL: ${FORGEJO_ROOT_URL:-http://localhost:3300/}
|
|
58
|
+
ports:
|
|
59
|
+
- "${FORGEJO_PORT:-3300}:3000"
|
|
60
|
+
volumes:
|
|
61
|
+
- ../.forgejo-local/server:/data
|
|
62
|
+
EOF
|
|
63
|
+
|
|
64
|
+
cat <<EOF
|
|
65
|
+
[INFO] Wrote ${COMPOSE_FILE}
|
|
66
|
+
[INFO] Forgejo data will live in ${STATE_DIR}/server
|
|
67
|
+
[INFO] Next steps:
|
|
68
|
+
[INFO] 1. docker compose -f forgejo/docker-compose.yml up -d
|
|
69
|
+
[INFO] 2. Open http://localhost:\${FORGEJO_PORT:-3300}
|
|
70
|
+
[INFO] 3. Read parallix/docs/forgejo-setup.md for token and remote wiring
|
|
71
|
+
[INFO] 4. Run px setup after export to finish config and review wiring
|
|
72
|
+
EOF
|
|
73
|
+
|
|
74
|
+
if [[ ${START} -eq 1 ]]; then
|
|
75
|
+
if command -v docker >/dev/null 2>&1; then
|
|
76
|
+
docker compose -f "${COMPOSE_FILE}" up -d
|
|
77
|
+
elif command -v docker-compose >/dev/null 2>&1; then
|
|
78
|
+
docker-compose -f "${COMPOSE_FILE}" up -d
|
|
79
|
+
else
|
|
80
|
+
echo "[ERROR] docker or docker-compose is required for --start" >&2
|
|
81
|
+
exit 1
|
|
82
|
+
fi
|
|
83
|
+
echo "[INFO] Forgejo container started."
|
|
84
|
+
fi
|