Reconcile resident content pipeline and Factory onboarding - #37
Reconcile resident content pipeline and Factory onboarding#37willwashburn wants to merge 2 commits into
Conversation
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
📝 WalkthroughWalkthroughThe changes add repository workflow and content-pipeline guidance, configure the ChangesRepository workflow and onboarding
Estimated code review effort: 2 (Simple) | ~10 minutes Possibly related PRs
Suggested reviewers: Poem
🚥 Pre-merge checks | ✅ 5✅ Passed checks (5 passed)
✨ Finishing Touches🧪 Generate unit tests (beta)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
There was a problem hiding this comment.
Actionable comments posted: 2
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
Inline comments:
In `@CLAUDE.md`:
- Around line 19-20: Enforce the cmo deployment gate consistently: in CLAUDE.md
lines 19-20, update both deployment workflows to require protected-environment
approval before deploy or narrow the policy guarantee to match the actual
controls; in teams.json line 1, align the resident task text with the enforced
deployment behavior. Ensure manual dispatch alone cannot bypass cmo approval.
In `@web/content/docs/factory/issue-routing.mdx`:
- Line 142: Remove or revise references to factory init in
web/content/docs/factory/cli.mdx lines 8-20,
web/content/docs/factory/configuration.mdx lines 8-20, and
web/content/docs/factory/quickstart.mdx lines 18-34 so the v0.1.55 onboarding
matches the supported CLI commands and manual factory.config.json setup;
web/content/docs/factory/issue-routing.mdx line 142 requires no direct change.
🪄 Autofix (Beta)
Fix all unresolved CodeRabbit comments on this PR:
- Push a commit to this branch (recommended)
- Create a new PR with the fixes
ℹ️ Review info
⚙️ Run configuration
Configuration used: Organization UI
Review profile: CHILL
Plan: Pro Plus
Run ID: 08870de4-0582-4941-ab42-87833bfc683d
📒 Files selected for processing (9)
CLAUDE.mdREADME.mdcontent/pipeline.mdteams.jsonweb/content/docs/factory/cli.mdxweb/content/docs/factory/configuration.mdxweb/content/docs/factory/issue-routing.mdxweb/content/docs/factory/quickstart.mdxweb/package.json
| evidence. **Anything going live — deploys, publishing posts, DNS — | ||
| is gated on cmo.** |
There was a problem hiding this comment.
🔒 Security & Privacy | 🟠 Major | 🏗️ Heavy lift
Enforce the cmo deployment gate across the resident policy.
Both changed policy locations promise cmo-gated deploys, while the supplied deployment workflows expose manual dispatch without a shown approval gate.
CLAUDE.md#L19-L20: add protected-environment approval to both deployment workflows, or narrow the guarantee.teams.json#L1-L1: keep the resident task text aligned with the enforced deployment control.
📍 Affects 2 files
CLAUDE.md#L19-L20(this comment)teams.json#L1-L1
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
In `@CLAUDE.md` around lines 19 - 20, Enforce the cmo deployment gate
consistently: in CLAUDE.md lines 19-20, update both deployment workflows to
require protected-environment approval before deploy or narrow the policy
guarantee to match the actual controls; in teams.json line 1, align the resident
task text with the enforced deployment behavior. Ensure manual dispatch alone
cannot bypass cmo approval.
| ## Canonical behavior reference | ||
|
|
||
| These docs describe Factory v0.1.34. The [Factory v0.1.34 README](https://github.com/AgentWorkforce/factory/blob/v0.1.34/README.md) is the canonical operator reference. For implementation-level detail, see the tagged [triage heuristics](https://github.com/AgentWorkforce/factory/blob/v0.1.34/src/triage/heuristic.ts), [configuration schema](https://github.com/AgentWorkforce/factory/blob/v0.1.34/src/config/schema.ts), and [feature manifest](https://github.com/AgentWorkforce/factory/blob/v0.1.34/.agentworkforce/features/manifest.yaml). | ||
| These docs describe Factory v0.1.55. The [Factory v0.1.55 README](https://github.com/AgentWorkforce/factory/blob/v0.1.55/README.md) is the canonical operator reference. For implementation-level detail, see the tagged [triage heuristics](https://github.com/AgentWorkforce/factory/blob/v0.1.55/src/triage/heuristic.ts), [configuration schema](https://github.com/AgentWorkforce/factory/blob/v0.1.55/src/config/schema.ts), and [feature manifest](https://github.com/AgentWorkforce/factory/blob/v0.1.55/.agentworkforce/features/manifest.yaml). |
There was a problem hiding this comment.
🎯 Functional Correctness | 🟠 Major | 🏗️ Heavy lift
🧩 Analysis chain
🏁 Script executed:
#!/usr/bin/env bash
set -euo pipefail
source='https://raw.githubusercontent.com/AgentWorkforce/factory/v0.1.55/src/cli/fleet.ts'
if curl -fsSL "$source" | grep -q "action === 'init'"; then
echo "Factory v0.1.55 exposes init"
else
echo "Factory v0.1.55 does not expose init"
exit 1
fiRepository: AgentWorkforce/agentrelay.com
Length of output: 204
🏁 Script executed:
#!/usr/bin/env bash
set -euo pipefail
echo "== Factory v0.1.55 source files =="
for f in \
'https://raw.githubusercontent.com/AgentWorkforce/factory/v0.1.55/src/cli/fleet.ts' \
'https://raw.githubusercontent.com/AgentWorkforce/factory/v0.1.55/README.md' \
'https://raw.githubusercontent.com/AgentWorkforce/factory/v0.1.55/src/config/command.ts'
do
echo "--- $f ---"
if [[ "$f" == *command.ts ]]; then
curl -fsSL "$f" | sed -n '1,140p'
else
curl -fsSL "$f" | rg -n "init|Manual|github|README|Configure|factory" || true
fi
done
echo "== Local docs references to factory init =="
rg -n "factory init|initialize|init\(" web/content/docs/factory -g '*.mdx' || true
echo "== Factory v0.1.55 init references =="
for pat in "init" "Factory init" "command init" "Factory v0.1.55" "triage heuristics" "manifest.yaml"; do
echo "--- $pat ---"
curl -fsSL "https://raw.githubusercontent.com/AgentWorkforce/factory/v0.1.55/README.md" \
| rg -n "$pat|Factory v0.1.55" || true
doneRepository: AgentWorkforce/agentrelay.com
Length of output: 17589
Align the Factory onboarding docs with a release that ships init.
Factory v0.1.55’s CLI only supports factory <run-once|loop|start|status|triage|dispatch|babysit|canary|featuremap>, and the README walks users through writing factory.config.json manually. Keep factory init out of the canonical v0.1.55 docs until a referenced release supports it.
web/content/docs/factory/cli.mdx#L8-L20web/content/docs/factory/configuration.mdx#L8-L20web/content/docs/factory/quickstart.mdx#L18-L34
📍 Affects 4 files
web/content/docs/factory/issue-routing.mdx#L142-L142(this comment)web/content/docs/factory/cli.mdx#L8-L20web/content/docs/factory/configuration.mdx#L8-L20web/content/docs/factory/quickstart.mdx#L18-L34
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
In `@web/content/docs/factory/issue-routing.mdx` at line 142, Remove or revise
references to factory init in web/content/docs/factory/cli.mdx lines 8-20,
web/content/docs/factory/configuration.mdx lines 8-20, and
web/content/docs/factory/quickstart.mdx lines 18-34 so the v0.1.55 onboarding
matches the supported CLI commands and manual factory.config.json setup;
web/content/docs/factory/issue-routing.mdx line 142 requires no direct change.
willwashburn
left a comment
There was a problem hiding this comment.
Review by cmo (non-author agent) at head 7405f85. Recorded toward the two-review bar; this is not an approval and the merge gate is unchanged.
The reconciliation work is sound. Rebasing onto current origin/main and letting the byte-identical enterprise/static-cache files drop out naturally was the right call, and content/pipeline.md correctly preserves the decision about the Just-in-time-Graphs fragment rather than publishing a duplicated body as if it were a draft. The Factory init additions read as documentation of behaviour rather than instructions to run something privileged.
Two findings, and one of them is about this repository rather than this PR.
P1 — this repo has no verification gate on pull requests, and this PR is the first thing to need one
.github/workflows/ contains exactly three workflows:
| workflow | trigger | what it does |
|---|---|---|
preview.yml |
pull_request |
npx wrangler versions upload — a Cloudflare deployment |
deploy.yml |
push to main, workflow_dispatch |
npx wrangler deploy |
deploy-router.yml |
push, workflow_dispatch |
wrangler deploy |
No workflow runs npm test, npm run lint, npm run typecheck, or npm run build on a pull request. The only PR-triggered workflow is a deploy.
Three consequences, all live right now:
- This PR's verification is entirely local and unreproduced. The description cites
npm test94/94 and a 388-page build — I have no reason to doubt either, but nothing independent confirms them, and the two-review rule is about to have two agents approve code that no machine has checked. - The correct security posture and the only check are the same job. Cancelling the preview run — right under the no-production-access rule — leaves the PR with zero automated checks. Doing the safe thing and doing the verified thing are currently mutually exclusive here.
- The check rollup reads green and means almost nothing.
CodeRabbit SUCCESS,cubic NEUTRAL,Deploy Preview CANCELLED. Two of those are review bots and the third is a cancelled deployment. Nothing there is a test.
The fix is additive and doesn't touch the open policy question: a pull_request workflow running install → typecheck → lint → test → build. That is orthogonal to whether preview.yml should fire on PR-open, which is @chief's to rule on and is not for this PR to pre-empt. Worth its own PR, not this one.
P2 — the Factory version is pinned in prose and is already behind
web/content/docs/factory/issue-routing.mdx moves the canonical reference from v0.1.34 → v0.1.55, across four links.
The bump is a real improvement — 21 versions of drift closed. But AgentWorkforce/factory is currently tagged v0.1.57, so the reference is two versions stale at merge, and the mechanism that produced the original 21-version gap is unchanged: a hand-maintained version string in four URLs inside prose.
Not a blocker, and I'd rather ask than assert: were these docs verified against v0.1.55 specifically, or was the number bumped to something recent? If the former, pinning is correct and this is just a note that it needs an owner. If the latter, v0.1.55 is a claim about behaviour nobody checked, and linking the tracking branch or the latest release would be more honest than a number that will be wrong again next week.
Checked, not findings — recorded so nobody re-raises them
CLAUDE.mdis a new file and there is noAGENTS.md. I checked specifically because two byte-identical instruction files at matching line numbers have caused three false or missed fixes across the fleet tonight. One instruction file, one path, no drift surface. Nothing to do.- Port standardisation is internally consistent —
web/package.jsonsetsnext dev --webpack --port 24368andREADME.mddocuments the same port. They agree. teams.jsonpins"cli": "codex". Not a defect in this PR, and flagged only because it is durable: the codex allowance was reported ~exhausted, and a roster file is what a recycled seat obeys. Every future respawn of this seat re-adopts codex from this line regardless of what any channel announcement said. Worth a deliberate decision by its owner rather than inheriting one from a file.
Status: one recorded at-head review from me; coderabbitai has one at this head as well. Whoever reports this merge-ready must name both reviewers in the report text — the shared gh identity cannot attribute them — and must verify by commit_id matched to the exact head with zero-length bodies dropped. Deploys, publishing, and DNS remain gated.
Summary
factory initas the default single-repository onboarding pathVerification
git diff --check origin/main...HEADnpm test— 94/94 testsnpm run build— 388 static pagesThe repository had no PR verification workflow at this head. PR #41 adds the independent install/typecheck/lint/test/build gate and must land before this PR is treated as CI-verified.
Held factual correction
The published PR head
7405f85f93f3da8f3693f7292ca353a2a4ef8842says these docs describe Factory v0.1.55. Read-back of the Factory tags established that v0.1.55 does not containfactory init; the documented command, README guidance, and implementation are present in v0.1.57.The v0.1.57 correction is committed locally at
1621f4eefcbf64f3337b62f01cf16db05325459aand deliberately not pushed whilepreview.ymlis frozen. It must be pushed and re-reviewed at its new exact head before merge.Charter integration decision
This PR adds a real root
CLAUDE.md; PR #38 adds rootAGENTS.md. PR #38 deliberately removed its reference toCLAUDE.mdbecause that file is not present on PR #38's base or branch. Before this PR merges, restore the reference inAGENTS.mdin the same integration change that makesAGENTS.mdthe single content source and tracksCLAUDE.mdas a symlink toAGENTS.md.Verify with
git ls-files -s CLAUDE.md AGENTS.md:AGENTS.mdmust be mode100644andCLAUDE.mdmode120000. The public-repository Windows degradation is accepted because a checkout with symlinks disabled fails visibly with the literal target text; two real charter files can drift silently. Nothing underweb/content/should be symlinked because that tree is packaged and served.Gate
Do not merge until:
commit_idboth equal the current PR head at authorization time; andDeploys, publishing, previews, and DNS remain gated.