@yunhozz/arc 0.0.0-stage → 0.1.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/MANIFEST.sha256 +96 -0
- package/README.md +265 -2
- package/bin/arc.mjs +3 -0
- package/claude/agents/arc-coder.md +67 -0
- package/claude/agents/arc-planner.md +74 -0
- package/claude/agents/arc-qa.md +68 -0
- package/claude/agents/arc-reviewer.md +65 -0
- package/claude/agents/arc-scouter.md +63 -0
- package/claude/skill/SKILL.md +370 -0
- package/claude/skill/hooks/git-policy.json +208 -0
- package/claude/skill/hooks/role-git-guard.mjs +98 -0
- package/claude/skill/models.toml +64 -0
- package/claude/skill/references/commit.md +77 -0
- package/claude/skill/references/git-recovery.md +46 -0
- package/claude/skill/references/handoff-prep.md +102 -0
- package/claude/skill/references/handoff.md +100 -0
- package/claude/skill/references/limits.md +42 -0
- package/claude/skill/references/planning.md +250 -0
- package/claude/skill/references/superpowers/LICENSE +21 -0
- package/claude/skill/references/superpowers/brainstorming/SKILL.md +225 -0
- package/claude/skill/references/superpowers/brainstorming/builder-check-prompt.md +23 -0
- package/claude/skill/references/superpowers/brainstorming/scripts/frame-template.html +213 -0
- package/claude/skill/references/superpowers/brainstorming/scripts/helper.js +167 -0
- package/claude/skill/references/superpowers/brainstorming/scripts/server.cjs +723 -0
- package/claude/skill/references/superpowers/brainstorming/scripts/start-server.sh +209 -0
- package/claude/skill/references/superpowers/brainstorming/scripts/stop-server.sh +120 -0
- package/claude/skill/references/superpowers/brainstorming/visual-companion.md +299 -0
- package/claude/skill/references/superpowers/provenance.json +26 -0
- package/claude/skill/references/superpowers/test-driven-development/SKILL.md +330 -0
- package/claude/skill/references/superpowers/test-driven-development/writing-good-tests.md +198 -0
- package/claude/skill/references/superpowers/writing-plans/SKILL.md +204 -0
- package/claude/skill/references/verification.md +125 -0
- package/claude/skill/references/visual-companion.md +16 -0
- package/claude/skill/scripts/apply-models.py +31 -0
- package/claude/skill/scripts/model_config.py +211 -0
- package/codex/agents/arc-coder.toml +37 -0
- package/codex/agents/arc-planner.toml +38 -0
- package/codex/agents/arc-qa.toml +24 -0
- package/codex/agents/arc-reviewer.toml +25 -0
- package/codex/agents/arc-scouter.toml +37 -0
- package/codex/skill/SKILL.md +356 -0
- package/codex/skill/models.toml +64 -0
- package/codex/skill/references/commit.md +100 -0
- package/codex/skill/references/git-recovery.md +64 -0
- package/codex/skill/references/handoff-prep.md +153 -0
- package/codex/skill/references/handoff-worktree.md +93 -0
- package/codex/skill/references/handoff.md +181 -0
- package/codex/skill/references/limits.md +43 -0
- package/codex/skill/references/planning.md +287 -0
- package/codex/skill/references/superpowers/LICENSE +21 -0
- package/codex/skill/references/superpowers/brainstorming/SKILL.md +225 -0
- package/codex/skill/references/superpowers/brainstorming/builder-check-prompt.md +23 -0
- package/codex/skill/references/superpowers/brainstorming/scripts/frame-template.html +213 -0
- package/codex/skill/references/superpowers/brainstorming/scripts/helper.js +167 -0
- package/codex/skill/references/superpowers/brainstorming/scripts/server.cjs +723 -0
- package/codex/skill/references/superpowers/brainstorming/scripts/start-server.sh +209 -0
- package/codex/skill/references/superpowers/brainstorming/scripts/stop-server.sh +120 -0
- package/codex/skill/references/superpowers/brainstorming/visual-companion.md +299 -0
- package/codex/skill/references/superpowers/provenance.json +26 -0
- package/codex/skill/references/superpowers/test-driven-development/SKILL.md +330 -0
- package/codex/skill/references/superpowers/test-driven-development/writing-good-tests.md +198 -0
- package/codex/skill/references/superpowers/writing-plans/SKILL.md +204 -0
- package/codex/skill/references/verification.md +163 -0
- package/codex/skill/references/visual-companion.md +23 -0
- package/codex/skill/scripts/apply-models.py +207 -0
- package/codex/skill/scripts/model_config.py +362 -0
- package/install.command +5 -0
- package/lib/cli/choices.mjs +47 -0
- package/lib/cli/completion.mjs +53 -0
- package/lib/cli/index.mjs +55 -0
- package/lib/cli/preset.mjs +29 -0
- package/lib/cli/progress.mjs +10 -0
- package/lib/cli/root.mjs +20 -0
- package/lib/cli/uninstall.mjs +17 -0
- package/lib/installer/acquisition.mjs +77 -0
- package/lib/installer/global-config.mjs +43 -0
- package/lib/installer/install.mjs +28 -0
- package/lib/installer/language.mjs +13 -0
- package/lib/installer/limits.mjs +21 -0
- package/lib/installer/manifest.mjs +37 -0
- package/lib/installer/package-references.mjs +32 -0
- package/lib/installer/plan.mjs +62 -0
- package/lib/installer/preset.mjs +26 -0
- package/lib/installer/runtime-config.mjs +85 -0
- package/lib/installer/shell-completion.mjs +29 -0
- package/lib/installer/stage-cleanup.mjs +40 -0
- package/lib/installer/superpowers.mjs +113 -0
- package/lib/installer/targets.mjs +55 -0
- package/lib/installer/transaction.mjs +91 -0
- package/lib/installer/uninstall.mjs +32 -0
- package/lib/limits.mjs +13 -0
- package/lib/models/config.mjs +58 -0
- package/lib/models/index.mjs +2 -0
- package/lib/models/profiles.mjs +111 -0
- package/lib/policy/claude-hook.mjs +40 -0
- package/lib/policy/render.mjs +74 -0
- package/lib/policy/role-policy.json +577 -0
- package/lib/safe-fs/index.mjs +67 -0
- package/lib/safe-fs/native.mjs +54 -0
- package/native/binding.c +157 -0
- package/native/binding.gyp +1 -0
- package/package.json +43 -4
- package/prebuilds/darwin-arm64/arc_safe_fs.node +0 -0
- package/prebuilds/darwin-x64/arc_safe_fs.node +0 -0
- package/prebuilds/index.json +64 -0
- package/prebuilds/linux-arm64-gnu/arc_safe_fs.node +0 -0
- package/prebuilds/linux-x64-gnu/arc_safe_fs.node +0 -0
- package/scripts/build-native.mjs +36 -0
- package/scripts/check-installer-parity.mjs +59 -0
- package/scripts/update-manifest.mjs +28 -0
- package/scripts/update-role-policy.mjs +15 -0
- package/scripts/update-superpowers.mjs +4 -0
- package/scripts/vendor-toml.mjs +40 -0
- package/vendor/toml/LICENSE +24 -0
- package/vendor/toml/dist/date.js +156 -0
- package/vendor/toml/dist/error.js +67 -0
- package/vendor/toml/dist/extract.js +293 -0
- package/vendor/toml/dist/index.js +34 -0
- package/vendor/toml/dist/parse.js +164 -0
- package/vendor/toml/dist/primitive.js +151 -0
- package/vendor/toml/dist/stringify.js +219 -0
- package/vendor/toml/dist/struct.js +156 -0
- package/vendor/toml/dist/util.js +57 -0
- package/vendor/toml/package.json +6 -0
- package/vendor/toml/provenance.json +35 -0
|
@@ -0,0 +1,100 @@
|
|
|
1
|
+
# Coder handoff
|
|
2
|
+
|
|
3
|
+
Orchestrator verifies the absolute workspace/repository, branch or detached HEAD, HEAD, staged/unstaged/untracked state,
|
|
4
|
+
ownership, document approvals and committed planning documents before first start and restart.
|
|
5
|
+
The approved execution target must remain valid. Claude v1 supports current checkout execution and does not support
|
|
6
|
+
ARC-managed worktrees.
|
|
7
|
+
|
|
8
|
+
Execution-target choice and actual preparation precede formal drafting and saving of required specs/plans.
|
|
9
|
+
Initial design proposals may precede choice. Initial target preparation does not authorize Coder; all applicable
|
|
10
|
+
approvals, complete documents, verified batch docs commits or valid absence, and final Git verification remain required.
|
|
11
|
+
Record planned document scope/paths and actual preparation separately, followed by actual drafting/save/approval and
|
|
12
|
+
commit results; preserve actual order and evidence gaps. Reuse a valid choice during document drafting and subsequent
|
|
13
|
+
implementation while scope and target remain unchanged. Authorized HEAD and dirty-state changes alone do not invalidate
|
|
14
|
+
choice; verify preservation and ownership. A changed scope or target requires fresh explicit choice before dependent
|
|
15
|
+
drafting or preparation and does not require document completion. Never fall back automatically.
|
|
16
|
+
|
|
17
|
+
Resolve the Git common directory (`git rev-parse --path-format=absolute --git-common-dir`) and keep one canonical record
|
|
18
|
+
at `<git-common-dir>/arc/handoff/<plan-or-task-slug>.md`, outside the working tree.
|
|
19
|
+
The slug is unique per plan: the dated plan filename stem, or a spec/task slug when no plan exists; never overwrite
|
|
20
|
+
another plan's record. Never stage it or store secrets there. Orchestrator updates the record after each accepted task
|
|
21
|
+
commit (task ID, SHA, state). Record approved document paths/versions/coverage/dependencies and approval evidence;
|
|
22
|
+
explicit target choice; prior and resulting Git state; document commit SHA/subject/files; task scope, ownership,
|
|
23
|
+
checks and limits. If a gate or record was late, record actual order and resolve forward; never claim retroactive
|
|
24
|
+
compliance.
|
|
25
|
+
|
|
26
|
+
The Coder brief supplies absolute workspace, verified branch/HEAD, canonical record path, approved task/criteria,
|
|
27
|
+
exact file ownership, expected tests, dependency limits and blocked conditions. Restart brief: supply only verified
|
|
28
|
+
deltas and mark unchanged fields; `unchanged` means unchanged relative to the record file the fresh Coder reads,
|
|
29
|
+
and every other brief field is in full. Coder trusts Orchestrator verified prep rather than independently repeating
|
|
30
|
+
approval/Git evidence checks, reads fields marked unchanged, and stops on an actual observed conflict.
|
|
31
|
+
Tell Coder that others share the repository and unrelated work must be preserved.
|
|
32
|
+
|
|
33
|
+
Roles report directly to Orchestrator. Do not delegate at depth 2. Orchestrator sequences dependent work,
|
|
34
|
+
resolves actual blockers and revalidates affected gates before resume. No automatic retry after unexpected Git or tool
|
|
35
|
+
failure.
|
|
36
|
+
|
|
37
|
+
If the record write is denied or unavailable, Orchestrator carries the full record inline in every Coder brief (no
|
|
38
|
+
delta, no record-file `unchanged`) and states why; that satisfies the accessible-record requirement.
|
|
39
|
+
Do not delete it automatically.
|
|
40
|
+
|
|
41
|
+
## Task readiness at every assignment
|
|
42
|
+
|
|
43
|
+
Before each first start or restart, if an approved plan exists, link its current dependency/readiness record
|
|
44
|
+
(planning.md) in the canonical record and brief. Where plan omission is valid under existing rules, do not create a
|
|
45
|
+
plan or map solely to satisfy this linking duty; record the applicable omission judgment and rationale in the
|
|
46
|
+
canonical record and brief. Plan absence alone does not qualify for omission, and an unapproved required plan
|
|
47
|
+
cannot bypass its approval gate.
|
|
48
|
+
|
|
49
|
+
Before assignment, apply every readiness condition in
|
|
50
|
+
[planning.md, Dependency and readiness record](planning.md#dependency-and-readiness-record), including predecessor
|
|
51
|
+
checks, Orchestrator acceptance and verified focused commit or accepted no-change evidence. A Coder completion report
|
|
52
|
+
alone is insufficient. Verify the linked record is current and capacity and file ownership permit assignment.
|
|
53
|
+
Readiness supplements the full handoff gate and execution-target restrictions; it never waives them.
|
|
54
|
+
For authorized HEAD or state changes, refresh this record and affected briefs, verify preservation and ownership,
|
|
55
|
+
revalidate affected gates, and reassess readiness under planning.md and [commit.md](commit.md#shared-checkout-coordination).
|
|
56
|
+
Unexpected HEAD or ownership changes stop affected work for Orchestrator resolution and revalidation.
|
|
57
|
+
|
|
58
|
+
## Choice lifetime and reuse
|
|
59
|
+
|
|
60
|
+
Accepted task commits do not by themselves invalidate the initial execution-target choice for the same approved scope,
|
|
61
|
+
workspace, repository, and target; verify and reuse successful task commits without duplication.
|
|
62
|
+
On every first start and restart recheck actual state against the brief (workspace/repository identity,
|
|
63
|
+
branch or detached HEAD, HEAD, changes, ownership, approvals, document commits or valid absence); reuse never waives a
|
|
64
|
+
gate. Reuse the choice only while its evidence is accessible and valid. If scope, workspace, repository, target,
|
|
65
|
+
or approved branch candidate changes, or a failure means the old target cannot be trusted, obtain a fresh explicit
|
|
66
|
+
choice before dependent drafting or preparation; reselection does not require document completion. Authorized HEAD and dirty-state changes alone do not
|
|
67
|
+
invalidate it; record them and verify they match approved work. State mismatches block editing until Orchestrator
|
|
68
|
+
revalidates the gate; resolution does not by itself require a new choice unless it invalidates the old target;
|
|
69
|
+
never fall back automatically (apply the Explicit choice rule). Inaccessible records or unclear ownership block editing;
|
|
70
|
+
prior conversation cannot substitute for evidence.
|
|
71
|
+
|
|
72
|
+
## Authorization continuity
|
|
73
|
+
|
|
74
|
+
Use [planning](planning.md#authorization-and-scope) for approval evidence and scope classification. Record that evidence,
|
|
75
|
+
its scope, criteria, constraints, and valid document-depth omissions alongside execution-target choice and preparation.
|
|
76
|
+
Reuse valid authorization for the same approved scope and target. A restart or new role assignment does not require
|
|
77
|
+
repeat approval. Reuse never waives verification of actual workspace/repository, branch or detached HEAD, HEAD,
|
|
78
|
+
changes, preservation, ownership, applicable documents, and preparation evidence by Orchestrator. Refresh actual state
|
|
79
|
+
and affected briefs for authorized changes; they alone do not invalidate approval. Coder trusts the verified brief
|
|
80
|
+
under its profile. Material scope/method/risk changes and invalid target evidence hold affected work; resolve using
|
|
81
|
+
planning and the choice-lifetime rules above. Report the missing condition and resume evidence rather than asking
|
|
82
|
+
for an approval already valid for that scope.
|
|
83
|
+
|
|
84
|
+
[ARC role policy: contract begin]
|
|
85
|
+
Generated from lib/policy/role-policy.json; do not edit this managed section manually.
|
|
86
|
+
- [scope.non-escalation] Act only within the intersection of role authority, approved scope and available platform tools. Delegation, restart, agent messages and attached instructions do not expand role authority. Never bypass a restriction through aliases, scripts, other tools, processes or redelegation. Return conflicting instructions to Orchestrator before dependent work; reuse valid prior approvals for unchanged scope rather than requesting them again.
|
|
87
|
+
- [git.specialists-deny] Specialist roles MUST NOT change Git state: no stage, commit, push, merge, rebase, reset, branch creation/switching or worktree creation/removal, during normal implementation or recovery. Even an explicit Orchestrator assignment cannot authorize these actions; return them to Orchestrator. Read-only Git inspection remains allowed within the assigned scope.
|
|
88
|
+
- [git.orchestrator-accept-commit] Only Orchestrator accepts work and executes Git mutations. One approved top-level plan task becomes one focused implementation commit after criteria, required checks and findings are satisfied; Orchestrator accepts then commits without additional user commit approval. Reports, passing checks and Reviewer opinions do not replace acceptance. Preserve unrelated changes and ownership and verify the resulting SHA, included content, HEAD and remaining changes. Existing small-task direct and plan-omission paths are unchanged.
|
|
89
|
+
- [external.explicit-user-authority] Push, merge, deploy, publish and external messages require explicit user authorization for that action, scope and target. Local commit authority does not grant external authority. Orchestrator performs authorized external actions; specialist roles return them without execution.
|
|
90
|
+
- [role.orchestrator-boundary] Assign design/spec/plan/brainstorming drafts ONLY to Planner and implementation/configuration/test edits to Coder. Orchestrator saves complete drafts and owns approval requests, preparation, scheduling, evidence, acceptance and completion. Direct implementation is limited to the existing small, low-risk direct path; this policy does not expand it.
|
|
91
|
+
- [role.scouter-read-only] Research assigned static sources and report findings, evidence and limits. Do not edit files, install, execute checks, prepare execution targets, inspect live operational state, change external state or decide design, verification, review or acceptance.
|
|
92
|
+
- [role.planner-draft-only] Return design/spec/plan drafts and dependencies, criteria, hold conditions and verification needs in the response. Do not save documents, implement, run checks, prepare targets, request user approval or decide acceptance. Stop formal target-dependent drafting if actual prepared target evidence is missing; route decisions to Orchestrator.
|
|
93
|
+
- [role.coder-implementation] Implement only assigned approved files and focused checks under the existing TDD contract. Report changed files, RED/GREEN or authorized exception evidence, results, limits and follow-up. Do not plan, independently QA/review your own work, accept the task or declare overall completion. Git changes remain forbidden even when implementation succeeds.
|
|
94
|
+
- [role.qa-verification] Run approved checks and report commands, observations, reproduction, evidence and limits. Create only essential temporary data/logs/reports in the brief-authorized location and lifetime. Do not edit product source, tests, fixtures or configuration to pass checks, deploy or accept work. Persistent product-state checks require explicit scope and cleanup ownership. Return failures for Coder correction and required QA recheck.
|
|
95
|
+
- [role.reviewer-independent] Independently inspect the assigned final changes and evidence and report actionable findings and limits. Remain read-only; do not execute QA tests, edit files, perform Git mutations or decide acceptance.
|
|
96
|
+
- [review.significant-no-plan] For significant/high-risk work without a plan: Coder → QA and required QA rechecks → Reviewer of the final full change → Orchestrator acceptance. Do not omit Reviewer merely because no plan exists. This creates no new plan obligation.
|
|
97
|
+
- [review.significant-plan] For significant/high-risk plan work: each task uses Coder → fresh QA as required → Orchestrator acceptance and focused commit. After all tasks are accepted and required QA is complete, Reviewer reviews the final full change once. Reviewer is NOT a per-task or per-commit required gate. Preserve required checks and necessary finding rechecks.
|
|
98
|
+
- [review.final-plan-recheck] For final overall Reviewer findings on plan work, including behavior findings, use Coder → Reviewer without QA reassignment; repeat until resolved. This exception applies only to that final plan stage. Preserve required QA and QA failure rechecks before initial final review and outside this exception.
|
|
99
|
+
- [platform.claude] Existing per-role tool allowlists reduce available tools; Bash and role contracts are not a filesystem sandbox. A role-scoped Git guard is a separate integration and is not supplied by these policy sections alone.
|
|
100
|
+
[ARC role policy: contract end]
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
# Subagent limits
|
|
2
|
+
|
|
3
|
+
Before the first subagent creation, Orchestrator reads this reference and the adjacent
|
|
4
|
+
`../limits.toml` (installed at `skills/arc/limits.toml`). Require version = 1,
|
|
5
|
+
`max_total_subagents` and `max_concurrent_subagents` as positive safe integers.
|
|
6
|
+
Installation defaults are max_total_subagents = 100 and max_concurrent_subagents = 5.
|
|
7
|
+
A missing, malformed or unreadable policy blocks new creation; report it rather than assuming defaults.
|
|
8
|
+
Freeze these settings for one ARC coordination session/tree; reinstalling affects new sessions.
|
|
9
|
+
|
|
10
|
+
## Counting and reservations
|
|
11
|
+
|
|
12
|
+
Maintain a session ledger of instance IDs, parent IDs, pending reservations, creation outcomes,
|
|
13
|
+
and active/completed state. The Orchestrator itself is excluded. All created descendants,
|
|
14
|
+
including nested or non-ARC agents, count toward the total. A completed agent never refunds
|
|
15
|
+
the cumulative budget. Follow-up/resume of the same instance does not increment total;
|
|
16
|
+
a fresh instance, retry that creates a new instance, or replacement does increment it.
|
|
17
|
+
Waiting, blocked, running and idle resumable instances consume concurrency until their
|
|
18
|
+
completion/termination is confirmed. Obey any lower actual runtime capacity, including
|
|
19
|
+
native retention of completed instances; ARC counts do not prove that a native slot is free.
|
|
20
|
+
|
|
21
|
+
Before any parallel dispatch, reserve the entire proposed batch in the ledger:
|
|
22
|
+
created + pending reservations + proposed <= max_total_subagents, and
|
|
23
|
+
active + pending reservations + proposed <= max_concurrent_subagents and available runtime capacity.
|
|
24
|
+
Record a reservation before each creation call. Confirmed creation converts it into a created,
|
|
25
|
+
active ID. Release a reservation only when failure proves that no instance was created.
|
|
26
|
+
An uncertain result keeps its reservation and capacity until reconciled; never retry blindly.
|
|
27
|
+
Serialize work when a batch does not fit. There are no reserved role slots.
|
|
28
|
+
|
|
29
|
+
## Continuation and exhaustion
|
|
30
|
+
|
|
31
|
+
Preserve the ledger through continuation, resume and context compaction; reconcile actual instance
|
|
32
|
+
IDs before dispatch. Ledger loss must never reset counters to zero. If reconstruction is incomplete,
|
|
33
|
+
hold creation and report the unknown budget; use a conservative bound only with sufficient evidence.
|
|
34
|
+
Completion frees confirmed active capacity, never the total-created budget. Exhaustion holds new
|
|
35
|
+
creation and requires reporting remaining work and budgets. It never authorizes skipping required
|
|
36
|
+
QA or Reviewer, role freshness, approval, ownership, dependency or same-file edit gates.
|
|
37
|
+
|
|
38
|
+
This cumulative guard and ARC scheduling are prompt-level policy, not hard runtime enforcement.
|
|
39
|
+
Policy text tests prove package consistency, not actual agent compliance or native runtime support.
|
|
40
|
+
Claude `settings.json.env.CLAUDE_CODE_MAX_CONCURRENT_SUBAGENTS` constrains its native session.
|
|
41
|
+
Independent sessions, accounts and platforms do not share this ARC ledger; Agent Teams and hosted APIs
|
|
42
|
+
are outside this contract. Native application must be checked in a supported new session separately.
|
|
@@ -0,0 +1,250 @@
|
|
|
1
|
+
# Planning and approval
|
|
2
|
+
|
|
3
|
+
## Authorization and scope
|
|
4
|
+
|
|
5
|
+
An explicit execution request is authorization only for its sufficiently specified scope. Confirm execution intent,
|
|
6
|
+
expected outcome, constraints, document depth, and verification risk, with no unresolved material behavior, method,
|
|
7
|
+
or risk decision requiring the user. The request itself or a description explicitly referenced by the user must
|
|
8
|
+
supply that scope. Record authorization evidence, scope, acceptance criteria, constraints, and depth in the brief or
|
|
9
|
+
canonical record. Routine execution and check choices may be recorded by Orchestrator; added product behavior or
|
|
10
|
+
material scope cannot be claimed as already approved. A restatement, role handoff, or restart does not create an
|
|
11
|
+
approval requirement for the same scope.
|
|
12
|
+
|
|
13
|
+
Silence, ambiguous assent, approval of other work, and unspecified blanket improvement requests are not authorization.
|
|
14
|
+
Planner's new material choices are not automatically approved. Ask for the missing material decision; roles route
|
|
15
|
+
questions to Orchestrator. Required written specs and plans still require their individual approval in the order below.
|
|
16
|
+
|
|
17
|
+
For material changes to scope, method, or risk, hold affected work and explain the missing decision or evidence and
|
|
18
|
+
remaining work. Target changes, unclear ownership, unexpected state, unresolved failures, or missing required inputs
|
|
19
|
+
also hold affected work under [handoff](handoff.md) and [git-recovery](git-recovery.md). Distinguish new authorization
|
|
20
|
+
needs from execution issues within existing scope: ordinary corrections and reverification do not require duplicate
|
|
21
|
+
approval after failure. Revalidate affected gates after resolution.
|
|
22
|
+
|
|
23
|
+
### Probe scope
|
|
24
|
+
|
|
25
|
+
A probe-only scope completes with findings, evidence, limits, and remaining uncertainty answering the approved question;
|
|
26
|
+
a well-supported infeasibility result can complete it. Probe-only authorization does not authorize product retention
|
|
27
|
+
or subsequent implementation. Record question, method/scope, criteria, and constraints; a sufficiently specific probe
|
|
28
|
+
request can supply that approval. Match checks to probe purpose/risk and do not report probe evidence as product proof.
|
|
29
|
+
|
|
30
|
+
If the user explicitly requests both a probe and implementation and the whole scope is sufficiently specified,
|
|
31
|
+
classify the entire scope. When the entire scope meets Bounded conditions, the probe is an internal investigation
|
|
32
|
+
with no new approval boundary at its report. Unknown implementation is not blanket authorization: hold affected
|
|
33
|
+
implementation if findings materially change scope, method, or risk, or leave a new material decision. Reassess depth
|
|
34
|
+
and obtain any required design/spec/plan approvals before that implementation. A probe-only request remains separate.
|
|
35
|
+
|
|
36
|
+
## Formal drafting boundary
|
|
37
|
+
|
|
38
|
+
Initial design proposals and brainstorming may precede execution-target choice. Formal spec or plan drafting includes a
|
|
39
|
+
complete draft before saving, even when returned only in chat. Before formal drafting and saving, Orchestrator supplies
|
|
40
|
+
and records the actual absolute workspace/repository, branch or detached HEAD, HEAD, changes and ownership,
|
|
41
|
+
explicit choice and preparation evidence, and absolute document paths inside that target. Planner drafts for that
|
|
42
|
+
verified workspace; Orchestrator saves directly in the selected target. Missing or mismatched evidence stops the
|
|
43
|
+
affected drafting or save and is reported to Orchestrator. Planned scope and intended paths are not actual preparation.
|
|
44
|
+
Initial target preparation does not authorize Coder; the complete handoff gate still applies.
|
|
45
|
+
|
|
46
|
+
Orchestrator classifies scope before implementation. The Orchestrator direct path for small tasks is defined only in
|
|
47
|
+
SKILL.md ("Orchestrator direct path for small tasks"); follow it there and stop and reclassify if scope or risk changes.
|
|
48
|
+
Everything else follows this reference. Brainstorming and writing-plans are instructions for existing roles,
|
|
49
|
+
not extra agents; ARC routing and approval gates apply even if a skill names another executor.
|
|
50
|
+
Report a missing required skill before its stage. Integrate means save, route, and obtain approval; never author.
|
|
51
|
+
Significant risk is defined in SKILL.md Risk-scaled execution.
|
|
52
|
+
|
|
53
|
+
When the request or brief is in Korean, Planner writes spec and plan titles and prose in Korean unless the user asks
|
|
54
|
+
otherwise, preserving identifiers, skill/API names, code, paths, commands, and literal values.
|
|
55
|
+
Orchestrator preserves that language when saving.
|
|
56
|
+
|
|
57
|
+
|
|
58
|
+
## Planner drafting preparation and consolidated feedback
|
|
59
|
+
|
|
60
|
+
Before formal drafting, Orchestrator performs a preflight of relevant policy, reference, profile, test, parity and
|
|
61
|
+
manifest surfaces and conflicts. Provide one complete brief with actual absolute workspace/repository, branch or
|
|
62
|
+
detached HEAD, HEAD, change state and ownership, explicit target choice and preparation evidence, approved preceding
|
|
63
|
+
design/spec/plan versions, scope and exclusions, design/plan depth, dependencies and shared contracts, acceptance
|
|
64
|
+
criteria, required QA/focused checks and evidence, hold conditions and open decisions. Resolve missing or conflicting
|
|
65
|
+
required evidence first or hold that stage.
|
|
66
|
+
|
|
67
|
+
Planner returns a complete proportional draft and self-review for the current approval stage. Orchestrator integrates,
|
|
68
|
+
saves, reviews and obtains approval. Orchestrator checks once with a fixed checklist: scope and evidence; targets,
|
|
69
|
+
ownership and paths; policy surfaces and conflicts; task boundaries, dependencies and acceptance criteria; checks,
|
|
70
|
+
evidence and holds; roles, approval and commit boundaries; draft completeness. Gather all substantive omissions into
|
|
71
|
+
one consolidated follow-up request to Planner. Do not split requests by omission or author the missing plan yourself.
|
|
72
|
+
|
|
73
|
+
Initial design, required spec approval, and formal plan drafting/approval remain separate ordered stages.
|
|
74
|
+
Allow additional Planner calls for substantive omissions or user-approved scope/evidence changes. There is no fixed
|
|
75
|
+
call cap; never accept an incomplete draft to minimize calls. Do not add call-count conditions to Planner profiles.
|
|
76
|
+
|
|
77
|
+
## Design path and plan depth
|
|
78
|
+
|
|
79
|
+
Record design and plan depth separately from verification risk. Risk determines checks and review, not the design path;
|
|
80
|
+
a bounded path or document omission does not imply low risk, and architectural depth adds no QA/Reviewer at every stage.
|
|
81
|
+
|
|
82
|
+
1. Before feature, design, or behavior changes, Orchestrator assigns Planner the local `brainstorming` skill with
|
|
83
|
+
the brief and evidence. Planner returns the path (Spike, Bounded, or Architectural), design/options, trade-offs,
|
|
84
|
+
acceptance criteria, assumptions, and focused questions. Orchestrator integrates, announces scope, routes
|
|
85
|
+
answers/revisions, and obtains approvals; Orchestrator never runs brainstorming or writing-plans itself (SKILL.md
|
|
86
|
+
Role gate); the direct path uses only a scope record.
|
|
87
|
+
2. Spike: apply Probe scope above; distinguish probe-only authorization from a sufficiently specified combined scope.
|
|
88
|
+
Bounded: approve a short design before Coder or a Orchestrator direct edit (Planner's design before
|
|
89
|
+
Coder; a direct edit uses only an approved scope record). Architectural: approve the design, then Planner returns a
|
|
90
|
+
complete spec draft and self-review; Orchestrator integrates, saves (user's path or
|
|
91
|
+
`docs/superpowers/specs/YYYY-MM-DD-<topic>-design.md`), self-reviews, and obtains written-spec approval before
|
|
92
|
+
implementation planning. Planner is read-only and cannot request approval.
|
|
93
|
+
3. After approved design/spec and before Coder, Orchestrator assesses plan depth separately from file count, LOC,
|
|
94
|
+
or bounded scope. Architectural work always uses `writing-plans` and a written plan approval, regardless of locality,
|
|
95
|
+
risk, or size. For Bounded work skip the plan only for one local change with no dependent stages, cross-component
|
|
96
|
+
shared state, lifecycle or integration-order concerns, and one focused verification path; otherwise require a draft.
|
|
97
|
+
A "bounded" or "no plan" label does not bypass this judgment. "Orchestrator's recorded plan-depth judgment" means
|
|
98
|
+
this assessment, including any Bounded written spec requirement, recorded in the brief.
|
|
99
|
+
4. Record dependencies and any plan-depth rationale in the brief. Planner returns the complete proportional plan,
|
|
100
|
+
assumptions/open decisions, verification requirements, and self-review. Orchestrator integrates, saves to the user's
|
|
101
|
+
path or `docs/superpowers/plans/YYYY-MM-DD-<feature-name>.md`, self-reviews, and obtains plan approval before Coder.
|
|
102
|
+
Planner cannot save, implement, or request approval.
|
|
103
|
+
5. Every Coder first start and restart requires all applicable approvals and the common handoff gate (SKILL.md,
|
|
104
|
+
handoff). Non-behavior configuration/documentation may skip inapplicable design/planning stages but not the gate.
|
|
105
|
+
|
|
106
|
+
When Orchestrator's recorded plan-depth judgment requires a Bounded written spec, record that and its scope,
|
|
107
|
+
use the approved short design as its basis, and have Planner return a proportional complete draft and self-review;
|
|
108
|
+
Orchestrator integrates, saves, self-reviews, and obtains individual written-spec approval before dependent plan
|
|
109
|
+
drafting. This applies that judgment, not a new spec rule. A required plan alone does not require a spec.
|
|
110
|
+
|
|
111
|
+
Design, spec, plan, and brainstorming drafts are authored only by Planner.
|
|
112
|
+
Orchestrator must not substitute its own spec for Planner's complete draft; return substantive omissions to Planner;
|
|
113
|
+
if Planner fails or is unavailable, stop and report, never draft instead. Design approval alone does not change ownership.
|
|
114
|
+
|
|
115
|
+
## Top-level plan tasks
|
|
116
|
+
|
|
117
|
+
For each top-level task Planner specifies ID and title, goal/scope and target files, preceding tasks,
|
|
118
|
+
acceptance criteria, required QA/focused checks and evidence before acceptance, and hold conditions.
|
|
119
|
+
Each task must be independently implementable, verifiable, and acceptable; changes that cannot be verified independently
|
|
120
|
+
(policy, profile, tests, manifest sharing one contract) belong in one task. Never merge approved tasks into one commit
|
|
121
|
+
during execution; if inseparability appears, stop and have Orchestrator revise scope and approvals.
|
|
122
|
+
|
|
123
|
+
Substeps and checkboxes are progress, not commit units: one approved top-level task is one focused commit after
|
|
124
|
+
Orchestrator acceptance. Never list Reviewer as a per-task check. State final plan QA/integration verification
|
|
125
|
+
separately with scope and timing; for significant work it lists the single independent Reviewer of the final full change
|
|
126
|
+
after all tasks are accepted. Task boundaries add no QA gates; keep risk requirements, risky-dependency QA,
|
|
127
|
+
and approved obligations. No-change, hold, and resume follow commit.
|
|
128
|
+
|
|
129
|
+
## Dependency and readiness record
|
|
130
|
+
|
|
131
|
+
After plan approval and before the first Coder assignment, Orchestrator records all top-level task IDs in the
|
|
132
|
+
accessible canonical handoff record, linked to the approved plan version. For each task record explicit and implicit
|
|
133
|
+
predecessors, required inputs, outputs and shared contracts, owned files, conflicting shared resources, required
|
|
134
|
+
checks/QA path, ready/held status and reasons. Record the initial ready batch and capacity/serialization reasons.
|
|
135
|
+
Analyze shared APIs, contracts, generated artifacts and resources even when tasks edit different files. Unresolved
|
|
136
|
+
shared contracts or insufficient dependency information block the affected tasks; same-file concurrent Coder edits
|
|
137
|
+
are blocked even for different lines. Do not infer independence from file separation or plan listing order.
|
|
138
|
+
|
|
139
|
+
A task is ready only when all applicable approvals and execution preparation are complete, required inputs/contracts
|
|
140
|
+
are available and settled, predecessors have required evidence and Orchestrator acceptance plus verified focused
|
|
141
|
+
commits (or accepted no-change records), ownership/resources do not conflict, its required check/QA path is available,
|
|
142
|
+
and a subagent slot exists under both the configured ARC full-tree cap shared by all roles and any lower actual runtime
|
|
143
|
+
limit. Report runtime limits. Start all ready independent tasks with fresh Coders concurrently within capacity;
|
|
144
|
+
record each hold or serialization reason instead of silently following list order. Preserve existing risk gates.
|
|
145
|
+
|
|
146
|
+
Update the map on completion, check evidence, acceptance, commit, slot return and new conflicts. Completion reports
|
|
147
|
+
alone do not release dependents. Reevaluate newly ready tasks immediately without waiting for unrelated batch members;
|
|
148
|
+
failed or ambiguous predecessors hold their dependent chain, while unaffected ready tasks may proceed. Dispatch still
|
|
149
|
+
passes handoff.md for each task; commits and shared Git mutations follow commit.md. This record does not authorize
|
|
150
|
+
Orchestrator to rewrite Planner's approved task boundaries or waive approvals.
|
|
151
|
+
|
|
152
|
+
For example, with A → B → C and independent D and two slots, start A and D. After A's required checks,
|
|
153
|
+
Orchestrator acceptance and verified commit, start B while D continues if capacity and gates allow.
|
|
154
|
+
If A fails, hold B and C; D may continue if unaffected.
|
|
155
|
+
|
|
156
|
+
## Document-save evidence gates
|
|
157
|
+
|
|
158
|
+
Before the first Architectural spec save, first required Bounded spec save, or first plan save, read this reference and
|
|
159
|
+
record accessible evidence in the brief or handoff record. Saving creates a reviewable file and does not require
|
|
160
|
+
written-spec approval; it requires valid execution-target choice and actual preparation; it is not approval or a commit, and an uncommitted file is never
|
|
161
|
+
described as committed.
|
|
162
|
+
|
|
163
|
+
**Spec save:** verify the approved design scope and approval evidence, Planner's complete spec draft and self-review,
|
|
164
|
+
Orchestrator's integration/save/review responsibility, and the absolute save path.
|
|
165
|
+
For a Bounded spec also verify the depth judgment, approved short design, and necessity rationale.
|
|
166
|
+
Saving or approving the short design does not replace the spec's drafting, self-review, or individual approval.
|
|
167
|
+
|
|
168
|
+
**Plan save:** verify the approved design and, when required, the approved spec version, Orchestrator's plan-depth
|
|
169
|
+
judgment, plan list and dependencies, Planner's complete draft and self-review, Orchestrator's responsibility,
|
|
170
|
+
and the absolute save path.
|
|
171
|
+
|
|
172
|
+
Missing or mismatched evidence stops the affected save; report to Orchestrator.
|
|
173
|
+
|
|
174
|
+
## Complete planning-document set
|
|
175
|
+
|
|
176
|
+
The applicable set means all specs and plans required for the current approved execution scope.
|
|
177
|
+
Record scope, depth, absolute paths and coverage, approved versions, dependencies and order, skipped stages with
|
|
178
|
+
rationale, and documents awaiting writing or approval. The set is complete only when every required document is written
|
|
179
|
+
and individually approved and no unresolved decision needs another document.
|
|
180
|
+
|
|
181
|
+
A required plan does not itself require a written spec. Bounded uses Orchestrator's recorded plan-depth judgment;
|
|
182
|
+
spec steps apply only to Architectural and required Bounded specs. Preserve existing document omission rationales.
|
|
183
|
+
|
|
184
|
+
Claude v1 uses the current checkout or an approved task branch there; managed worktrees remain unsupported.
|
|
185
|
+
|
|
186
|
+
Normal order: initial design approval → execution-target choice → target preparation and verification →
|
|
187
|
+
formal spec drafting (when required), saving and self-review → written-spec approval → formal plan drafting
|
|
188
|
+
(when required), saving and self-review → individual plan approvals → complete applicable set → existing-commit
|
|
189
|
+
verification and one batch docs commit of remaining approved documents → final Git verification → Coder handoff.
|
|
190
|
+
Written-spec approval precedes dependent plan drafting. On document-omission paths skip only the inapplicable document
|
|
191
|
+
steps; preserve target choice, preparation, state/ownership checks and Coder gates.
|
|
192
|
+
|
|
193
|
+
While documents are being written, reviewed, or approved, do not stage documents or commit planning documents.
|
|
194
|
+
Selection and initial target preparation happen before formal drafting; document completion is a staging/commit gate,
|
|
195
|
+
not an initial preparation gate. An incomplete set or missing applicable approval blocks document commit and Coder,
|
|
196
|
+
not the initial choice request. No early Coder work is authorized by approval of only some documents.
|
|
197
|
+
|
|
198
|
+
This ARC defers the local brainstorming early spec commit: save and self-review the spec, obtain written-spec
|
|
199
|
+
approval without committing, then write and approve all plans; commit the spec only in the final batch.
|
|
200
|
+
`writing-plans` commit steps do not permit document commits during planning or start Coder.
|
|
201
|
+
Do not modify external skills.
|
|
202
|
+
|
|
203
|
+
| Path | Approvals and preparation |
|
|
204
|
+
|---|---|
|
|
205
|
+
| Spike probe | Approve question, method/scope, criteria, constraints; no spec/plan forced. If Coder runs the probe, pass the common gate after approval. Read-only investigation needs no gate. |
|
|
206
|
+
| Bounded, plan skipped | Approve the short design and record plan-skip criteria; select target, prepare any documents or record absence, pass the gate. |
|
|
207
|
+
| Bounded, plan required | Approve short design and every required plan; a spec only when the depth judgment requires it, approved before dependent plans. One preparation batch, then the gate. |
|
|
208
|
+
| Architectural | Approve design, then spec, then every plan; select and prepare the target before formal drafting; complete the set before batch commit, final verification, and the gate. |
|
|
209
|
+
| Non-behavior documentation/configuration | Record scope, criteria, and why design/planning is inapplicable; still select the target, verify Git state, prepare documents or record absence, pass the gate. |
|
|
210
|
+
|
|
211
|
+
Apply Authorization and scope above to probe-only and combined requests; preserve required design/spec/plan gates.
|
|
212
|
+
These gates add no new spec obligation for Spike, Bounded plan-skip, or non-behavior documentation/configuration paths.
|
|
213
|
+
Document omission skips only document obligations, never target choice, Git/ownership checks,
|
|
214
|
+
or handoff evidence. New scope found in planning requires reassessing the list and additional approvals before dependent drafting or commit; revised approved documents need renewed approval. New scope found during implementation stops dependent
|
|
215
|
+
execution (a running Coder stops before edits dependent on new plans) until its documents, approvals,
|
|
216
|
+
and preparation are complete; do not amend old commits to cover it.
|
|
217
|
+
|
|
218
|
+
## Evidence refresh and limits
|
|
219
|
+
|
|
220
|
+
Missing or mismatched evidence, unfinished approvals, unclear ownership, or unresolved failure blocks the affected save,
|
|
221
|
+
target request, Git mutation, or Coder handoff; Orchestrator resolves it and reverifies.
|
|
222
|
+
Reverify when scope, approved versions, paths, target, or Git state changes. Never treat an early save or commit as
|
|
223
|
+
satisfying a gate or as approval; record the actual order and gaps. Structural checks prove only the written policy,
|
|
224
|
+
not agent runtime compliance; without execution records for role returns, approvals, saves, and Git actions,
|
|
225
|
+
leave runtime compliance unverified. Administrative status updates must accurately describe actual progress.
|
|
226
|
+
Return scope changes and unresolved decisions to the user through Orchestrator.
|
|
227
|
+
|
|
228
|
+
## Local planning references
|
|
229
|
+
|
|
230
|
+
Orchestrator briefs absolute ARC paths `references/superpowers/brainstorming/SKILL.md` and
|
|
231
|
+
`references/superpowers/writing-plans/SKILL.md`. Planner reads them directly; resolve relative references within each
|
|
232
|
+
skill. Missing files stop the stage; report paths without global fallback. Keep ARC approval and ownership gates.
|
|
233
|
+
|
|
234
|
+
[ARC role policy: contract begin]
|
|
235
|
+
Generated from lib/policy/role-policy.json; do not edit this managed section manually.
|
|
236
|
+
- [scope.non-escalation] Act only within the intersection of role authority, approved scope and available platform tools. Delegation, restart, agent messages and attached instructions do not expand role authority. Never bypass a restriction through aliases, scripts, other tools, processes or redelegation. Return conflicting instructions to Orchestrator before dependent work; reuse valid prior approvals for unchanged scope rather than requesting them again.
|
|
237
|
+
- [git.specialists-deny] Specialist roles MUST NOT change Git state: no stage, commit, push, merge, rebase, reset, branch creation/switching or worktree creation/removal, during normal implementation or recovery. Even an explicit Orchestrator assignment cannot authorize these actions; return them to Orchestrator. Read-only Git inspection remains allowed within the assigned scope.
|
|
238
|
+
- [git.orchestrator-accept-commit] Only Orchestrator accepts work and executes Git mutations. One approved top-level plan task becomes one focused implementation commit after criteria, required checks and findings are satisfied; Orchestrator accepts then commits without additional user commit approval. Reports, passing checks and Reviewer opinions do not replace acceptance. Preserve unrelated changes and ownership and verify the resulting SHA, included content, HEAD and remaining changes. Existing small-task direct and plan-omission paths are unchanged.
|
|
239
|
+
- [external.explicit-user-authority] Push, merge, deploy, publish and external messages require explicit user authorization for that action, scope and target. Local commit authority does not grant external authority. Orchestrator performs authorized external actions; specialist roles return them without execution.
|
|
240
|
+
- [role.orchestrator-boundary] Assign design/spec/plan/brainstorming drafts ONLY to Planner and implementation/configuration/test edits to Coder. Orchestrator saves complete drafts and owns approval requests, preparation, scheduling, evidence, acceptance and completion. Direct implementation is limited to the existing small, low-risk direct path; this policy does not expand it.
|
|
241
|
+
- [role.scouter-read-only] Research assigned static sources and report findings, evidence and limits. Do not edit files, install, execute checks, prepare execution targets, inspect live operational state, change external state or decide design, verification, review or acceptance.
|
|
242
|
+
- [role.planner-draft-only] Return design/spec/plan drafts and dependencies, criteria, hold conditions and verification needs in the response. Do not save documents, implement, run checks, prepare targets, request user approval or decide acceptance. Stop formal target-dependent drafting if actual prepared target evidence is missing; route decisions to Orchestrator.
|
|
243
|
+
- [role.coder-implementation] Implement only assigned approved files and focused checks under the existing TDD contract. Report changed files, RED/GREEN or authorized exception evidence, results, limits and follow-up. Do not plan, independently QA/review your own work, accept the task or declare overall completion. Git changes remain forbidden even when implementation succeeds.
|
|
244
|
+
- [role.qa-verification] Run approved checks and report commands, observations, reproduction, evidence and limits. Create only essential temporary data/logs/reports in the brief-authorized location and lifetime. Do not edit product source, tests, fixtures or configuration to pass checks, deploy or accept work. Persistent product-state checks require explicit scope and cleanup ownership. Return failures for Coder correction and required QA recheck.
|
|
245
|
+
- [role.reviewer-independent] Independently inspect the assigned final changes and evidence and report actionable findings and limits. Remain read-only; do not execute QA tests, edit files, perform Git mutations or decide acceptance.
|
|
246
|
+
- [review.significant-no-plan] For significant/high-risk work without a plan: Coder → QA and required QA rechecks → Reviewer of the final full change → Orchestrator acceptance. Do not omit Reviewer merely because no plan exists. This creates no new plan obligation.
|
|
247
|
+
- [review.significant-plan] For significant/high-risk plan work: each task uses Coder → fresh QA as required → Orchestrator acceptance and focused commit. After all tasks are accepted and required QA is complete, Reviewer reviews the final full change once. Reviewer is NOT a per-task or per-commit required gate. Preserve required checks and necessary finding rechecks.
|
|
248
|
+
- [review.final-plan-recheck] For final overall Reviewer findings on plan work, including behavior findings, use Coder → Reviewer without QA reassignment; repeat until resolved. This exception applies only to that final plan stage. Preserve required QA and QA failure rechecks before initial final review and outside this exception.
|
|
249
|
+
- [platform.claude] Existing per-role tool allowlists reduce available tools; Bash and role contracts are not a filesystem sandbox. A role-scoped Git guard is a separate integration and is not supplied by these policy sections alone.
|
|
250
|
+
[ARC role policy: contract end]
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2025 Jesse Vincent
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|