feat(skills): insforge.toml config-as-code + compute scale-to-zero docs#62
Conversation
|
Note Reviews pausedIt looks like this branch is under active development. To avoid overwhelming you with review comments due to an influx of new commits, CodeRabbit has automatically paused this review. You can configure this behavior by changing the Use the following commands to manage reviews:
Use the checkboxes below for quick actions:
WalkthroughAdds documentation for ChangesConfiguration Command and Auth Integration
Estimated code review effort 🎯 3 (Moderate) | ⏱️ ~20 minutes Suggested reviewers
Poem
🚥 Pre-merge checks | ✅ 4 | ❌ 1❌ Failed checks (1 warning)
✅ Passed checks (4 passed)
✏️ Tip: You can configure your own custom pre-merge checks in the settings. ✨ Finishing Touches🧪 Generate unit tests (beta)
Comment |
There was a problem hiding this comment.
Actionable comments posted: 1
🤖 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 `@skills/insforge-cli/SKILL.md`:
- Line 181: Update the command description for `npx `@insforge/cli` config plan
[--file insforge.toml]` to use clear grammar; replace "Tags which changes will
apply vs. skip on the connected backend." with a concise phrasing such as "Shows
which changes will apply vs. skip on the connected backend." so the sentence
reads: "`npx `@insforge/cli` config plan [--file insforge.toml]` — show diff
between TOML and live state. Shows which changes will apply vs. skip on the
connected backend."
🪄 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
Run ID: 468af17a-b4fb-447c-965a-3efd6873d53d
📒 Files selected for processing (2)
skills/insforge-cli/SKILL.mdskills/insforge/auth/backend-configuration.md
There was a problem hiding this comment.
1 issue found across 2 files
Prompt for AI agents (unresolved issues)
Check if these issues are valid — if so, understand the root cause of each and fix them. If appropriate, use sub-agents to investigate and fix each issue separately.
<file name="skills/insforge-cli/SKILL.md">
<violation number="1" location="skills/insforge-cli/SKILL.md:199">
P2: The example uses `--yes` (positioned as a global flag before the subcommand) but the command signature lists `--auto-approve`. An agent following the signature would use `--auto-approve`; one copying the example would use `--yes`. Consider aligning them to avoid confusion.</violation>
</file>
Reply with feedback, questions, or to request a fix. Tag @cubic-dev-ai to re-run a review, or fix all with cubic.
| > | ||
| > ```bash | ||
| > npx @insforge/cli secrets add SMTP_PASSWORD "<actual-value>" | ||
| > npx @insforge/cli --yes config apply |
There was a problem hiding this comment.
P2: The example uses --yes (positioned as a global flag before the subcommand) but the command signature lists --auto-approve. An agent following the signature would use --auto-approve; one copying the example would use --yes. Consider aligning them to avoid confusion.
Prompt for AI agents
Check if this issue is valid — if so, understand the root cause and fix it. At skills/insforge-cli/SKILL.md, line 199:
<comment>The example uses `--yes` (positioned as a global flag before the subcommand) but the command signature lists `--auto-approve`. An agent following the signature would use `--auto-approve`; one copying the example would use `--yes`. Consider aligning them to avoid confusion.</comment>
<file context>
@@ -173,6 +173,32 @@ For frontend hosting see **Frontend Deployments** above.
+>
+> ```bash
+> npx @insforge/cli secrets add SMTP_PASSWORD "<actual-value>"
+> npx @insforge/cli --yes config apply
+> ```
+
</file context>
| > npx @insforge/cli --yes config apply | |
| > npx @insforge/cli config apply --auto-approve |
There was a problem hiding this comment.
Actionable comments posted: 1
♻️ Duplicate comments (1)
skills/insforge-cli/SKILL.md (1)
181-181:⚠️ Potential issue | 🟡 Minor | ⚡ Quick winTighten wording for clarity at Line 181.
“tags which changes will apply…” is still grammatically awkward; use clearer phrasing (e.g., “shows which changes will apply vs. be skipped”).
Suggested edit
-- `npx `@insforge/cli` config plan [--file insforge.toml]` — diff TOML vs. live state; tags which changes will apply vs. skip on the connected backend. +- `npx `@insforge/cli` config plan [--file insforge.toml]` — diff TOML vs. live state; shows which changes will apply vs. be skipped on the connected backend.🤖 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 `@skills/insforge-cli/SKILL.md` at line 181, Update the description for the command that starts with `npx `@insforge/cli` config plan [--file insforge.toml]` to fix the awkward phrase "tags which changes will apply" — replace it with a clearer wording such as "shows which changes will apply vs. be skipped" so the sentence reads: "diff TOML vs. live state; shows which changes will apply vs. be skipped on the connected backend." Locate the description string in SKILL.md near the `npx `@insforge/cli` config plan` entry and update that wording accordingly.
🤖 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 `@skills/insforge-cli/SKILL.md`:
- Around line 184-188: The blockquote in SKILL.md has blank lines breaking the
quoted paragraph and triggers MD028; open the blockquote that contains the three
bold rules (the lines starting with "**TOML is for knobs only — never embed
programs.**", "**If `apply` returns `skipped: [...]`, surface verbatim.**", and
"**Sensitive values use `env(NAME)` references, never literal strings.**") and
remove the empty lines so the quote lines are contiguous (one blockquote without
blank lines), then re-run markdownlint/MD028 to confirm the warning is resolved.
---
Duplicate comments:
In `@skills/insforge-cli/SKILL.md`:
- Line 181: Update the description for the command that starts with `npx
`@insforge/cli` config plan [--file insforge.toml]` to fix the awkward phrase
"tags which changes will apply" — replace it with a clearer wording such as
"shows which changes will apply vs. be skipped" so the sentence reads: "diff
TOML vs. live state; shows which changes will apply vs. be skipped on the
connected backend." Locate the description string in SKILL.md near the `npx
`@insforge/cli` config plan` entry and update that wording accordingly.
🪄 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
Run ID: 1a6c683a-a7bf-45d2-96ce-b480587be1c3
📒 Files selected for processing (2)
skills/insforge-cli/SKILL.mdskills/insforge-cli/references/config.md
✅ Files skipped from review due to trivial changes (1)
- skills/insforge-cli/references/config.md
| > **TOML is for knobs only — never embed programs.** SQL → `db migrations`. Function code → `functions deploy`. Compute → `compute deploy`. Frontend → `deployments deploy`. TOML carries booleans, strings, and arrays — anything bigger lives in its own file managed by a dedicated CLI command. | ||
|
|
||
| > **If `apply` returns `skipped: [...]`, surface verbatim.** The user's project backend doesn't support those sections yet. Tell the user which sections were skipped and to upgrade their backend; do not retry, do not bypass with `curl` (silent drop). Sample message: _"I tried to set `auth.allowed_redirect_urls` but your project's backend is on an older version that doesn't support this yet. Upgrade your backend and re-run `npx @insforge/cli config apply`."_ | ||
|
|
||
| > **Sensitive values use `env(NAME)` references, never literal strings.** Store the actual value with `secrets add` first, then reference it from TOML. The CLI rejects literals on sensitive fields with a `ConfigValidationError` naming the exact `secrets add` command to run. |
There was a problem hiding this comment.
Fix blockquote spacing to satisfy markdownlint (MD028).
Lines 185 and 187 introduce blank lines inside a blockquote block; this triggers lint warnings. Keep blockquote lines contiguous.
Suggested edit
> **TOML is for knobs only — never embed programs.** SQL → `db migrations`. Function code → `functions deploy`. Compute → `compute deploy`. Frontend → `deployments deploy`. TOML carries booleans, strings, and arrays — anything bigger lives in its own file managed by a dedicated CLI command.
-
> **If `apply` returns `skipped: [...]`, surface verbatim.** The user's project backend doesn't support those sections yet. Tell the user which sections were skipped and to upgrade their backend; do not retry, do not bypass with `curl` (silent drop). Sample message: _"I tried to set `auth.allowed_redirect_urls` but your project's backend is on an older version that doesn't support this yet. Upgrade your backend and re-run `npx `@insforge/cli` config apply`."_
-
> **Sensitive values use `env(NAME)` references, never literal strings.** Store the actual value with `secrets add` first, then reference it from TOML. The CLI rejects literals on sensitive fields with a `ConfigValidationError` naming the exact `secrets add` command to run.📝 Committable suggestion
‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.
| > **TOML is for knobs only — never embed programs.** SQL → `db migrations`. Function code → `functions deploy`. Compute → `compute deploy`. Frontend → `deployments deploy`. TOML carries booleans, strings, and arrays — anything bigger lives in its own file managed by a dedicated CLI command. | |
| > **If `apply` returns `skipped: [...]`, surface verbatim.** The user's project backend doesn't support those sections yet. Tell the user which sections were skipped and to upgrade their backend; do not retry, do not bypass with `curl` (silent drop). Sample message: _"I tried to set `auth.allowed_redirect_urls` but your project's backend is on an older version that doesn't support this yet. Upgrade your backend and re-run `npx @insforge/cli config apply`."_ | |
| > **Sensitive values use `env(NAME)` references, never literal strings.** Store the actual value with `secrets add` first, then reference it from TOML. The CLI rejects literals on sensitive fields with a `ConfigValidationError` naming the exact `secrets add` command to run. | |
| > **TOML is for knobs only — never embed programs.** SQL → `db migrations`. Function code → `functions deploy`. Compute → `compute deploy`. Frontend → `deployments deploy`. TOML carries booleans, strings, and arrays — anything bigger lives in its own file managed by a dedicated CLI command. | |
| > **If `apply` returns `skipped: [...]`, surface verbatim.** The user's project backend doesn't support those sections yet. Tell the user which sections were skipped and to upgrade their backend; do not retry, do not bypass with `curl` (silent drop). Sample message: _"I tried to set `auth.allowed_redirect_urls` but your project's backend is on an older version that doesn't support this yet. Upgrade your backend and re-run `npx `@insforge/cli` config apply`."_ | |
| > **Sensitive values use `env(NAME)` references, never literal strings.** Store the actual value with `secrets add` first, then reference it from TOML. The CLI rejects literals on sensitive fields with a `ConfigValidationError` naming the exact `secrets add` command to run. |
🧰 Tools
🪛 markdownlint-cli2 (0.22.1)
[warning] 185-185: Blank line inside blockquote
(MD028, no-blanks-blockquote)
[warning] 187-187: Blank line inside blockquote
(MD028, no-blanks-blockquote)
🤖 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 `@skills/insforge-cli/SKILL.md` around lines 184 - 188, The blockquote in
SKILL.md has blank lines breaking the quoted paragraph and triggers MD028; open
the blockquote that contains the three bold rules (the lines starting with
"**TOML is for knobs only — never embed programs.**", "**If `apply` returns
`skipped: [...]`, surface verbatim.**", and "**Sensitive values use `env(NAME)`
references, never literal strings.**") and remove the empty lines so the quote
lines are contiguous (one blockquote without blank lines), then re-run
markdownlint/MD028 to confirm the warning is resolved.
There was a problem hiding this comment.
♻️ Duplicate comments (1)
skills/insforge-cli/SKILL.md (1)
184-186:⚠️ Potential issue | 🟡 Minor | ⚡ Quick winRemove blank line between blockquotes to fix MD028 linting warning.
The blank line at line 185 between the two blockquote paragraphs triggers the MD028 (no-blanks-blockquote) warning. Remove the blank line to make the blockquotes contiguous.
📝 Proposed fix
> **If `apply` returns `skipped: [...]`, surface verbatim.** The user's backend predates this section. Tell them which sections were skipped and to upgrade; do not retry, do not bypass with `curl` (silent drop). Sample message: _"I tried to set `auth.allowed_redirect_urls` but your backend is on an older version that doesn't support it yet. Upgrade your backend and re-run `npx `@insforge/cli` config apply`."_ - > **TOML is for knobs only — never embed programs.** SQL → `db migrations`. Function code → `functions deploy`. Compute → `compute deploy`. Frontend → `deployments deploy`. TOML carries booleans, strings, and arrays — anything bigger lives in its own file managed by a dedicated CLI command.🤖 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 `@skills/insforge-cli/SKILL.md` around lines 184 - 186, Remove the blank line separating the two consecutive blockquotes in SKILL.md so they become contiguous (i.e., make the two lines starting with ">" that begin with "**If `apply` returns `skipped: [...]`, surface verbatim.**" and "**TOML is for knobs only — never embed programs.**" follow each other with no empty line between) to satisfy the MD028 lint rule.
🤖 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.
Duplicate comments:
In `@skills/insforge-cli/SKILL.md`:
- Around line 184-186: Remove the blank line separating the two consecutive
blockquotes in SKILL.md so they become contiguous (i.e., make the two lines
starting with ">" that begin with "**If `apply` returns `skipped: [...]`,
surface verbatim.**" and "**TOML is for knobs only — never embed programs.**"
follow each other with no empty line between) to satisfy the MD028 lint rule.
ℹ️ Review info
⚙️ Run configuration
Configuration used: Organization UI
Review profile: CHILL
Plan: Pro
Run ID: 2f2b6ba3-79d3-4d81-8f81-af1f24869e46
📒 Files selected for processing (4)
skills/insforge-cli/SKILL.mdskills/insforge-cli/references/config.mdskills/insforge/SKILL.mdskills/insforge/auth/sdk-integration.md
✅ Files skipped from review due to trivial changes (3)
- skills/insforge/auth/sdk-integration.md
- skills/insforge/SKILL.md
- skills/insforge-cli/references/config.md
Adds guidance for the new `npx @insforge/cli config export/plan/apply` commands that ship with CLI #109 and backend #1216: skills/insforge-cli/SKILL.md - New "Configuration" command section listing export/plan/apply - Calls out version-aware capability gating: supported sections apply, unsupported go to skipped[] with an upgrade message; no PUT issued for unsupported sections - "TOML is for knobs only — never embed programs" rule with pointers to the dedicated commands for SQL / functions / compute / frontend - "Surface skipped[] verbatim" rule with sample agent message - env(NAME) reference convention for sensitive fields (forward-looking; CLI side ships with secrets-validation PR #110) skills/insforge/auth/backend-configuration.md - Recommends config apply over direct PUT /api/auth/config when changing settings-page knobs - Keeps PUT documented for the "flip one boolean from function code" case Both files reference behaviors not yet shipped on @insforge/cli@latest. Hold this PR until CLI #109 and backend #1216 land so agents don't see docs for commands they can't run. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
The file mixed admin HTTP endpoint reference (PUT /api/auth/config,
List/Delete Users, Anon Token) with SDK-side discovery guidance.
That violated the parent skill's own scoping ("client-side @insforge/sdk
integration; for backend infrastructure, use the insforge-cli skill").
With config-as-code landing (CLI #109), auth backend config is now a
CLI workflow, not an HTTP-only escape hatch:
- Read settings: `npx @insforge/cli metadata --json`
- Change settings: `npx @insforge/cli config apply`
The SDK-relevant guidance (best practices, common mistakes, OAuth
provider checks, verification flow branching) was already duplicated in
auth/sdk-integration.md, so deleting the file loses nothing the SDK
developer needs. The few admin-only endpoints (List/Delete Users) are
better served as future CLI commands than as docs in the SDK skill.
Updated:
- skills/insforge/SKILL.md: drop the Auth row from the
"Backend Configuration (Not Yet in CLI)" table; add a pointer to
the new CLI Configuration section
- skills/insforge/auth/sdk-integration.md: replace two stale links to
backend-configuration.md with the corresponding CLI commands
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Restructured the new Configuration content to match the conventions the rest of the skill follows: - Inline section in SKILL.md is now a tight command list + the three load-bearing rules (TOML for knobs only, surface skipped[] verbatim, env() refs for secrets), with a pointer to the deeper reference - New references/config.md covers: typical end-to-end flow, output shapes for export/plan/apply --json, partial-apply semantics, file location, sensitive-field handling, --json consent rule, and a common-mistakes table - New "Configure project settings (insforge.toml)" entry under Common Workflows so agents discover the flow from the workflow index - New Non-Obvious Behavior bullet explaining the per-project version drift and why direct API calls are unsafe - Frontmatter description updated to mention insforge.toml as one of the things this skill covers, so the trigger surface is right Bumped skill version 1.4.0 → 1.5.0. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Skill previously described forward-looking surface (SMTP example with env(SMTP_PASSWORD), `ConfigValidationError` for sensitive-literal rejection, password policy / OAuth providers / custom subdomain via TOML). None of that ships in CLI #109 — only `auth.allowed_redirect_urls` is wired in src/lib/config-schema.ts. Trim to match reality: - Narrow Configuration section to the one supported field - Drop `env(NAME)` callout in SKILL.md (validation not implemented) - Drop SMTP example block + sensitive-field section in references/ - Add explicit "Scope today" line + "Coming soon" stub for forward path - Tighten cross-refs in insforge/SKILL.md and auth/sdk-integration.md so they don't imply password-policy / OAuth providers are TOML-managed Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
63a363f to
ba559c8
Compare
There was a problem hiding this comment.
♻️ Duplicate comments (1)
skills/insforge-cli/SKILL.md (1)
184-187:⚠️ Potential issue | 🟡 Minor | ⚡ Quick winFix MD028: remove blank lines inside the blockquote block.
Lines 185 and 187 split one blockquote into separate blocks and trigger markdownlint
MD028. Keep quoted lines contiguous.Suggested patch
> **If `apply` returns `skipped: [...]`, surface verbatim.** The user's backend predates this section. Tell them which sections were skipped and to upgrade; do not retry, do not bypass with `curl` (silent drop). Sample message: _"I tried to set `auth.allowed_redirect_urls` but your backend is on an older version that doesn't support it yet. Upgrade your backend and re-run `npx `@insforge/cli` config apply`."_ - > **TOML is for knobs only — never embed programs.** SQL → `db migrations`. Function code → `functions deploy`. Compute → `compute deploy`. Frontend → `deployments deploy`. TOML carries booleans, strings, and arrays — anything bigger lives in its own file managed by a dedicated CLI command. - **Scope today:** only `auth.allowed_redirect_urls`. Password policy, SMTP, OAuth providers, custom subdomain, and similar will land in TOML later. For other `auth.config` fields today, use the dashboard.🤖 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 `@skills/insforge-cli/SKILL.md` around lines 184 - 187, The blockquote containing the two guidance items ("If `apply` returns `skipped: [...]`, surface verbatim." and "TOML is for knobs only — never embed programs.") is split by blank lines which triggers markdownlint MD028; remove the blank lines between these quoted lines so they form one contiguous blockquote, ensuring the quoted lines remain immediately consecutive and not separated by empty lines.
🤖 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.
Duplicate comments:
In `@skills/insforge-cli/SKILL.md`:
- Around line 184-187: The blockquote containing the two guidance items ("If
`apply` returns `skipped: [...]`, surface verbatim." and "TOML is for knobs only
— never embed programs.") is split by blank lines which triggers markdownlint
MD028; remove the blank lines between these quoted lines so they form one
contiguous blockquote, ensuring the quoted lines remain immediately consecutive
and not separated by empty lines.
ℹ️ Review info
⚙️ Run configuration
Configuration used: Organization UI
Review profile: CHILL
Plan: Pro
Run ID: 9cce4c9d-fe9e-463b-9274-9fa093fe8b39
📒 Files selected for processing (5)
skills/insforge-cli/SKILL.mdskills/insforge-cli/references/config.mdskills/insforge/SKILL.mdskills/insforge/auth/backend-configuration.mdskills/insforge/auth/sdk-integration.md
💤 Files with no reviewable changes (1)
- skills/insforge/auth/backend-configuration.md
✅ Files skipped from review due to trivial changes (3)
- skills/insforge/SKILL.md
- skills/insforge/auth/sdk-integration.md
- skills/insforge-cli/references/config.md
Compute services now deploy with Fly's full scale-to-zero (auto_stop_machines: stop, auto_start_machines: true, min_machines_running: 0) — see InsForge/InsForge#1251. Document this in the skill so agents: - Know scale-to-zero is the default behavior - Set the right cold-start expectation (~1s on shared-1x) - Understand the CLI/skill can only dial it *up* toward always-on, never below zero (it's already the floor on Fly) - Map InsForge's behavior to Fly's exact field names so users familiar with Fly can predict what they're getting - Know that pre-existing services need a redeploy to pick up the new defaults Also notes that flags for `auto_stop_machines: off|suspend` and `min_machines_running > 0` aren't yet exposed via the CLI — route latency-critical services through support for now. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
The first draft documented the fly.toml field names (`auto_stop_machines` / `auto_start_machines`). Companion fix in InsForge/InsForge#1251 corrected the backend to send the Machines API short names — `autostop` / `autostart` — because that's what the `POST api.machines.dev/v1/apps/<app>/machines` body actually accepts (`auto_*_machines` are silently ignored). Rewrites the scale-to-zero section to: - Show the body InsForge actually sends (short names) - Cross-reference both spellings in one table so users coming from fly.toml docs and users debugging via `flyctl machines list --json` both see what they expect - Note that `min_machines_running` is honored only in the app's primary region Authoritative schema reference: fly.MachineService in https://docs.machines.dev/spec/openapi3.json Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Earlier draft hedged with "not yet exposed via the CLI" language for autostop/min_machines override flags. Decision: don't build those for v1. One mode, less surface area, simpler support story. Rewrites both files to be explicit: - "v1 is the only mode" — every service is scale-to-zero, no flags - Removes the "What the CLI/skill can change" matrix that implied flags were coming. Replaced with a short "Why no override flags" paragraph explaining the tradeoff and the support escape hatch. - Adds a direct instruction for agents: don't ask "set autostop to off" or "keep N warm" — there's no flag, nothing the skill can do, route to support instead. Prevents the agent from invoking imaginary flags and confusing the user. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
…tion Compute scale-to-zero (v1): - Drop the 33-line dedicated section in compute-deploy.md (fly.toml vs Machines API field-name table, "Why no override flags", "Already-deployed services") — v1 has one mode with zero flags, so there's no agent decision to support. Replace with one FAQ line for agents debugging cold-start questions. - Drop the SKILL.md callout paragraph for the same reason. Config: - Trim references/config.md from 898 to 335 words. Remove "Why this exists", the TOML-is-for-knobs table, "Handling skipped[]" prose, and "Coming soon" — all duplicate principles already loaded by SKILL.md's Configuration section. Keep what's unique to the reference: output shapes for --json mode, file location, and the common-mistakes table. Net: -105 / +11 lines. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
REFACTOR pass from writing-skills TDD test. GREEN subagent flagged the relationship between the global -y/--yes flag and the subcommand-local --auto-approve as ambiguous. Single-row tweak in the common-mistakes table: name which is global, which is the subcommand alias, and that they have the same effect. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Summary
Bundles two doc changes:
1. insforge-cli skill —
configcommand groupconfig export | plan | applyfor declarativeauth.allowed_redirect_urlsreferences/config.mdwith output shapes, common-mistakes table, skipped[] handlingauth.allowed_redirect_urlstoday; coming-soon stub for password policy / OAuth / SMTP / custom subdomaininsforge/auth/backend-configuration.md(mis-categorized in SDK skill); updates cross-refs ininsforge/SKILL.mdandauth/sdk-integration.md2. insforge-cli skill — compute scale-to-zero
Companion PR
configcommand group these docs describeCo-Authored-By: Claude Opus 4.7 (1M context) noreply@anthropic.com