docs: clarify env vars in quick start are for local dev; warn against .env for runtime secrets - #55
Conversation
Harper does not auto-load .env files; secrets must be injected via the process environment (systemd, Kubernetes, cloud secrets managers, etc.). Add a note to both quick start sections so users are not misled into using a .env file in production. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Two changes rolled together — both needed to get reliable reviews: 1. Layered review-scopes integration. Clones HarperFast/ai-review-log at the merge of #19 (ef8d994), composes universal + harper/common + harper/v5 + repo-type/plugin layers into a single prompt block, and replaces the previous monolithic inline prompt's "what to ignore", "review scope and style", and "output format" sections with the composed layers. OAuth-specific bullets (CSRF state, provider-of- record, redirect/path validation, session-field preservation across refresh) stack on top. Review guidance for other HarperFast repos (core, pro, manager, apps) now lives centrally; bumping REVIEW_LAYERS is the mechanism to opt each repo in. 2. Timeout 10→15. A recent run on PR #48 cancelled at 10m18s with a partial tool_result logged at 30s and then 9+ minutes of silence. The stall was inside a single Claude API call, not a max-turns loop. 15 gives headroom without removing the backstop; max-turns=24 remains the real cost ceiling. Clone uses AI_REVIEW_LOG_TOKEN (already configured in repo secrets). Compose step fails the job if every layer is missing (hard error), but tolerates individual missing layers with a warning. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Per-repo copy of the layer files (copied from HarperFast/ai-review-log/review-scopes/ at merge SHA ef8d994) while we evaluate the layered-scope approach across a few repos. Compose step reads from .github/review-scopes/; the external clone step is removed. See .github/review-scopes/README.md for provenance and the plan for eventually sharing these across repos. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Keep .github/review-scopes/ byte-identical to upstream so future syncs against HarperFast/ai-review-log don't have to account for local formatting drift. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Caught in external review: the REVIEW_LAYERS comment still referenced HarperFast/ai-review-log/review-scopes/README.md, but the vendor commit moved the files (and the authoritative pointer) local. Point at .github/review-scopes/README.md instead. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
The layered universal.md was telling reviewers to check "New public APIs have tests / Failure-path coverage matches severity / etc." without distinguishing between the PR's own new code and pre-existing gaps in code the PR merely touches. Without a definition of "blocker-severity" in the Output discipline section, reviewers treated every Testing bullet as blocker-worthy — which scales poorly on repos that are still catching up on test coverage. Two changes: 1. Testing section now explicitly scopes each check to what the PR ITSELF introduces. A lead-in line and a closing line both state that pre-existing gaps are out of scope. Each bullet tags the check as a blocker so the gradation is explicit. 2. Output discipline grows an explicit "What counts as a blocker" list (correctness, security, broken contracts, PR-introduced test gaps, misleading docs) and a "What is NOT a blocker" list (pre-existing coverage, style, readability suggestions, edge-case tests when happy-path and primary failure are covered, prose polish, speculative architecture). Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
…nst .env for runtime secrets Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
…-docs # Conflicts: # .github/review-scopes/universal.md
Review: docs: clarify env vars in quick start2 blockers found. Both are in the documentation itself — no code changes in this PR. 1. README.md — wrong deployment platform guidanceFile: 2. docs/getting-started.md —
|
|
@claude address both blockers in claude[bot]'s review above. For README.md, mirror the Fabric/CI-secrets framing already in docs/getting-started.md. For docs/getting-started.md, loosen the .env restriction — .env via dotenv-cli is the correct local-dev pattern for OAuth secrets; only warn against committing it. Keep the Fabric production guidance. |
…DME with Fabric/CI framing - README.md: replace generic deployment platform language (systemd, Kubernetes, cloud secrets) with Fabric/CI-secrets framing that mirrors docs/getting-started.md - docs/getting-started.md: loosen .env restriction — .env via dotenv-cli is the correct local-dev pattern for OAuth secrets; only warn against committing it Addresses review comments on #55. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Review: PR #55 — docs: clarify env vars for local dev / Fabric1. Fabric runtime secrets guidance conflates deploy credentials with runtime app configurationFiles: What: Both added notes tell Harper Fabric users to inject OAuth secrets (e.g. Why it matters: The Harper v5 toolchain draws a hard line between two categories of secrets:
The Suggested fix: Determine how Fabric surfaces runtime app secrets to a deployed component (e.g., Fabric-level env var config, What the PR gets right
|
|
@claude please revise the two added notes to narrow their scope — this repo's docs shouldn't re-explain Harper/Fabric deployment mechanics, and in the current wording we're overreaching into territory that belongs in Harper's own docs. Keep and preserve:
Change:
The goal is: this PR's docs stay OAuth-specific (which env vars to set, don't commit them). Anything about HOW Harper/Fabric loads env vars gets deferred to Harper's own documentation, for easier maintenance. Scope this to |
…Harper docs Remove CI/CD injection guidance (belongs with deploy-CLI credentials, not runtime secrets). Replace with a pointer to Harper Fabric documentation for managing runtime env vars. Preserve local-dev framing and .env warning. Addresses review feedback on PR #55. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
|
Done — pushed a two-line commit (68dc649) that:
Local-dev framing and the "don't commit |
Review: docs: clarify env vars in quick start (#55)1. Incorrect Fabric guidance in
|
Summary
For **local development**label to theexportcommand block in the Quick Start.envautomatically).envconvention is fordotenv-clideploy CLI credentials, not runtime OAuth secretsCloses #32
Test plan
npm run format:checkpasses for the changed filenpm run lintreports no new errors