Skip to content

Commit ce708c9

Browse files
bradygasterCopilot
andcommitted
Record resilient dependency recovery policy
Ensure Squad agents treat unavailable npm proxy artifacts as recoverable dependency-resolution work rather than terminal blockers. Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
1 parent ea554fb commit ce708c9

2 files changed

Lines changed: 70 additions & 0 deletions

File tree

‎.squad/decisions.md‎

Lines changed: 43 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1525,3 +1525,46 @@ Prose is not worthless, and "never write prose requirements" would be wrong and
15251525
- the reader is **not misled** into believing it is a guarantee.
15261526

15271527
The failure is not prose — it is prose that *reads as enforcement*. Instance 2 is good practice; instances 1, 3, 4, 5 are the same words without the label. Apply the test above to every rule you write; if nothing turns red on violation, add the "(unenforced)" label and the gate issue, or build the observer.
1528+
1529+
### 2026-09-08: npm proxy failures trigger recovery, not work stoppage
1530+
**Date:** 2026-09-08
1531+
**Raised by:** Brady Gaster
1532+
**Status:** Decided
1533+
1534+
#### Decision
1535+
1536+
The required Microsoft npm proxy configuration is a prerequisite for npm commands,
1537+
not evidence that every dependency is mirrored and not an exclusive-source mandate.
1538+
Before every npm invocation, agents must run:
1539+
1540+
```bash
1541+
npm config set registry "https://packagefeedproxy.microsoft.io/npm/"
1542+
```
1543+
1544+
If a required artifact is unavailable, the task remains active. The implementation
1545+
owner must continue independent work while Network investigates in parallel, using
1546+
this ordered recovery strategy:
1547+
1548+
1. Do not restore dependencies unless manifests changed or the required tool is
1549+
genuinely unavailable. Prefer verified existing `node_modules`, npm caches,
1550+
targeted tooling, or isolated/cloud validation.
1551+
2. Inspect the exact dependency chain and proxy inventory. Select a compatible,
1552+
security-safe version or parent dependency upgrade when available.
1553+
3. Use a tested package override or immutable upstream commit/release tarball when
1554+
permitted, recording integrity in the lockfile.
1555+
4. Replace a dependency only when compatibility tests and security evidence support
1556+
the replacement.
1557+
5. Continue every validation that does not depend on the missing artifact.
1558+
1559+
Agents must not downgrade to a known-vulnerable version, conflate a baseline restore
1560+
failure with a regression, or stop after the first registry error. A dependency
1561+
problem may be reported as blocked only after the safe alternatives above have been
1562+
attempted and the remaining action requires user-only credentials, permissions, or
1563+
corporate mirror administration. The report must name the attempted alternatives
1564+
and the exact external action still required.
1565+
1566+
#### Consequence
1567+
1568+
Fresh `npm ci` is not the universal definition of a valid workspace. Build and test
1569+
gates still apply, but agents must satisfy them through an available reproducible
1570+
environment rather than treating registry incompleteness as permission to stop.

‎.squad/team.md‎

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -84,3 +84,30 @@ When working on issues, follow the Squad branching model:
8484
- **Distribution:** npm (`npm install -g @bradygaster/squad-cli` for CLI, `npm install @bradygaster/squad-sdk` for SDK)
8585
- **Universe:** Apollo 13 / NASA Mission Control
8686
- **Created:** 2026-02-21
87+
88+
## Dependency Recovery Directive
89+
90+
The Microsoft npm proxy is a required configuration step, not an assumption that
91+
every locked artifact is available. Before every npm invocation, run:
92+
93+
```bash
94+
npm config set registry "https://packagefeedproxy.microsoft.io/npm/"
95+
```
96+
97+
A missing or stale proxy artifact is **not** a task blocker by itself. Agents must
98+
continue through this recovery order:
99+
100+
1. Avoid a fresh restore when manifests are unchanged; use verified existing
101+
`node_modules`, caches, targeted tools, or an isolated/cloud environment.
102+
2. Check proxy-available compatible versions and safe parent-dependency upgrades.
103+
3. Use a tested `overrides` entry or immutable upstream commit/release tarball when
104+
policy permits, preserving integrity in the lockfile.
105+
4. Replace a dependency only with compatibility and security evidence.
106+
5. Run every unaffected validation while resolving the unavailable artifact.
107+
108+
Never downgrade to a vulnerable version merely because the proxy carries it.
109+
Never classify an unrelated baseline restore failure as a change failure. Report
110+
`blocked` only after safe alternatives are exhausted and the remaining action
111+
requires user-only credentials, permissions, or corporate mirror administration.
112+
Network owns dependency recovery and works in parallel; the implementation owner
113+
continues all independent work.

0 commit comments

Comments
 (0)