rule (159)
- Cross-machine parity via sync 2026-07-03Every machine can act as primary; sync auto keeps them equal; no machine-specific state that can't be reproduced from cloud+workspace.
- Everything durable → cloud 2026-07-03Every long-lived artefact (knowledge, skills, memory, secrets, repo mirrors) has a cloud copy; local machine is a cache, not source of truth.
- Ecosystem first-mover on emerging OKF conventions 2026-07-03When a new tool/format/convention emerges in the OKF ecosystem, adopt fast + contribute upstream — first-mover shapes the standard.
- AGENTS.md is a living doc — update when patterns recur 2026-07-02AGENTS.md is not written-once. When a recurring issue surfaces during development (tool quirk, banned pattern, style rule), update AGENTS.md before moving on. Solve once, document, forget.
- Context interview — agent asks user first when uncertain 2026-07-02When unsure what context is needed for a task, agent asks the user targeted questions BEFORE attempting. 'Ask me any further questions you need to achieve the best result.'
- Distill the winning prompt — save the retrospective one-shot 2026-07-02After long back-and-forth to reach a working answer, ask Claude to write the prompt that would have gotten there first-try. Save that prompt. Skip the iteration next time.
- Draft ≠ send: external comms need explicit approval 2026-07-02Never send/publish/post/comment/PR-file externally without explicit human approval. Draft means draft. Insurance-agent-sent-email pattern is the failure mode this prevents.
- Fable 5 prompting — 6 habits + safety-route awareness 2026-07-02Six locked prompting habits for Claude Fable 5: give why, negative-prompt, act when enough, make it prove, don't ask for reasoning, say less. Plus safety-router awareness (Fable→Opus 4.8 on suspicious intent).
- Grill before adding any rule — choose the right artefact type 2026-07-02Every proposed rule triggers a grill to determine if it belongs as a rule, skill, hook, knowledge file, or AGENTS.md line. Adding rules without grilling = knowledge bloat.
- Ground first, ask second 2026-07-02For tasks requiring domain knowledge or fresh context, send a research/ground prompt FIRST, then the action prompt. Two-prompt pattern. Reduces hallucination + generic answers.
- ICC prompt formula — Instructions + Context + Constraints 2026-07-02Every non-trivial prompt must have all three: what to do (instructions), what to know (context), what shape/limits apply (constraints). Order doesn't matter, completeness does. Optional: output example.
- Iterate before creating a skill 2026-07-02Never invoke skill-creator on the first attempt. Iterate manually 3-5 times, tag responses as good/bad with reasoning, THEN distill into a skill. Prevents overfit-on-one-example.
- Review per-project memory monthly, prune stale entries 2026-07-02Auto-saved memory files (~/.claude/projects/*/memory/MEMORY.md) get stale — 'currently working on X' after X shipped. Monthly review + prune.
- Own the memory, rent the intelligence 2026-07-02Memory + skills + orchestration are portable and belong to you. Intelligence (frontier models) is rented — swap providers freely. Never couple your knowledge to one vendor's tool.
- Practical vibe coding — the middle way 2026-07-02Neither over-plan nor yolo. Iterate feature-by-feature with an anchoring AGENTS.md, focused ICC prompts, behavior-constraints, and verify each before starting next. The umbrella framework.
- Proactively add rules and knowledge — don't wait to be asked 2026-07-02Every session that surfaces a durable insight, decision, taste rule, or pattern must write it to knowledge/ or memory/ in the same turn. Don't wait for user to ask.
- Session hygiene — break sessions between distinct features 2026-07-02Reset chat/session when moving between distinct features. Stale context leaks confuse the agent and waste tokens. Stay in same chat only when tied to what you just built.
- Subagent transparency — show what they do, don't silent-pass-through 2026-07-02When spawning a subagent, show what it will do + return format + verification plan. Summarize subagent output back to user before acting on it.
- Small composable skills, not mega-skills 2026-07-02One skill does one thing well. Chain 4-6 small skills > one 500-line mega-skill. Enables auto-invocation per sub-task + composition across workflows.
- Ticketing primitive — agent operations visible via TaskCreate 2026-07-02Every multi-step operation and every external-state operation goes through the task system. No hidden work in chain-of-thought.
- Everything should be in Dagger — GHA/GitLab/Codeberg are thin adapters only 2026-07-02All CI/CD logic lives in Dagger TS modules. GitHub Actions, GitLab CI, Woodpecker, Codeberg are 5-line wrappers that call `dagger call`. No real logic in YAML.
- Proactive creative workarounds — don't just report blockers 2026-07-02When a constraint blocks the ideal path, suggest a creative workaround before reporting the blocker. Blocked = opportunity to be creative.
- Fork model: chirag127-owned + upstream tracking + weekly auto-sync 2026-07-01Forks live under chirag127 personal account. origin=chirag127 + upstream=source. PRs directly from origin. Weekly auto-PR sync from upstream.
- Forks are submodules, never plain clones 2026-07-01Every fork under repos/frk/ is added via `git submodule add`, never via `git clone`. Locks fork pointer in umbrella, keeps umbrella tree clean.
- All durable knowledge in knowledge/ — caveman style, no exceptions 2026-07-01Everything worth remembering lives in knowledge/ as an OKF file. Caveman style: terse, dense, no filler. README/AGENTS.md stay lean.
- No fork divergence — upstream PRs only 2026-07-01Local forks in repos/frk/* stay byte-identical to upstream main. Every local change files as an upstream PR immediately.
- Terse upstream issues + comments — less is less hallucination 2026-07-01GitHub issues and comments: short, factual, no filler. Every unverified claim is a potential hallucination. Min words = min risk.
- Thank maintainers on every upstream issue/PR/comment 2026-07-01Every upstream contribution ends with a one-line thanks to the maintainer for their work on the project.
- Windows shortcuts/wt-spawned shells: use absolute paths to .cmd/.exe binaries 2026-06-30Windows Terminal tabs launched via wt new-tab + a -Command string don't reliably inherit the User PATH. Always use the absolute path to npm.cmd / pnpm.cmd / python.exe etc. when constructing startup scripts.
- Agent fleet parity: same rules + MCPs across all agents 2026-06-29All fleet agents share same rules + MCP servers. Sync via scripts/sync-mcp-configs.mjs. No private rule sets
- Rule additions land in 3 places: concept file + AGENTS.md table + count 2026-06-29Add rule: write to knowledge/rules/ + AGENTS.md entry + bump section count. All three same commit
- Globals derived from workspace by script (with grill on drift) 2026-06-29.mcp.json + workspace anchors canonical. Globals synced by scripts/sync-globals.mjs. Fires grill-me on drift
- Junctions on Windows, symlinks on Unix 2026-06-29Use directory junctions on Windows (mklink /J), symlinks on Unix (ln -s). No Developer Mode needed
- Karpathy — surface uncertainty, clean orphans, goal-loop execution 2026-06-29ACTIVE every coding task. State assumptions. Surface ambiguity via MCQ. Clean orphaned imports. Define success criteria + loop
- MCP config single source of truth 2026-06-29.mcp.json canonical MCP config. All 5 agents sync via scripts/sync-mcp-configs.mjs. Never edit per-agent configs
- Run okf-prompt-lookup before answering knowledge-touching prompts 2026-06-29Every agent must surface top-3 OKF concept files before answering any non-trivial prompt. Claude Code does it via UserPromptSubmit hook; other agents must run scripts/okf-prompt-lookup.py themselves.
- Read the file, not just the grep, before claiming a gap 2026-06-29Claims about external project gap must be backed by Read of source file — not grep alone
- MCP forks live in repos/frk/<name>-mcp/; fixes go upstream via PR 2026-06-29Fork MCP servers to frk/ and PR upstream
- MCP server repo naming: <name>-mcp suffix 2026-06-29MCP repos use <name>-mcp suffix
- Workspace Root Cleanliness 2026-06-29Workspace root is canonical-config-only. No generated, derived, or junction content lives here — only committed-first source files.
- Claude Code settings balance — speed × accuracy × cost (2026-06-29 pin) 2026-06-2912 settings.json picks from 2026-06-29 grill. Opus-default + always-thinking-floor + adaptive-on + 85% compact + agent-teams-on
- Delegate to sub-agents by default — researcher for reads, Haiku for batch 2026-06-28ACTIVE every response. Use sub-agent before reading 3+ files. Isolated context; only summary returns. Cuts tokens 40-70%
- Output minimalism — no preamble, no restatement, answer-first, no abstract language 2026-06-28ACTIVE every response. Bans 4 verbosity anti-patterns. Cuts ~20-40% beyond Caveman
- Minimum everything — fewest lines, fewest tool calls, fewest packages 2026-06-28Hard rule. Smallest unit of everything. Per response, per file, per workflow
- Ponytail — lazy senior dev (ULTRA level) 2026-06-28ACTIVE every code-gen response. 7-rung ladder picks laziest working solution. ULTRA = no-code, one-line, zero abstraction
- User prefers features-on when cost is small 2026-06-28User prefers features-on when cost is small
- Edit-mode preferences — tool choice + task tracking 2026-06-28Edit > Write, batch parallel tool calls, task-list for 3+ steps, no .md deliverables
- Don't recreate what already exists freely as open source 2026-06-28Before forking/scaffolding/building: 2 web searches confirming no free OSS equivalent. If exists, use it
- Never recreate headroom-proxy container without checking entrypoint 2026-06-28headroom-extras ENTRYPOINT already headroom. docker run CMD must start with proxy..., not headroom proxy...
- Automate everything — never deliver a runbook 2026-06-27Ship one executable script per setup/host/deploy request. Manual steps = defect
- Bitwarden CLI as cross-machine secrets source-of-truth 2026-06-27Bitwarden CLI (bw): canonical age key retrieval + secondary secrets backup. Read-only locally; updates via Web UI
- Caveman — terse prose discipline 2026-06-27ACTIVE every prose response. Drop articles, filler, pleasantries, hedging. Code unchanged. Drop terse mode for irreversible actions
- Don't install MCP tools already bundled in Smithery toolbox 2026-06-27chirag127 Smithery = meta-toolbox. Check before adding separate MCP server
- Firebase: use the CLI directly, never install Firebase skills 2026-06-27Firebase CLI + agent context enough. No skill wrappers. Saves context, kills doc rot
- Grill me properly before non-trivial work 2026-06-27Default grill-mode for >1 interpretation. Walk decision tree branch-by-branch. Surface assumptions, lock, act
- kepano/obsidian-skills: global install 2026-06-27Steph Ango obsidian-skills cloned to ~/skill-sources/; 5 sub-skills symlinked global
- MCP env credentials — Win env vars + Smithery profile (both layers) 2026-06-27MCP env vars sync via Win system env (local) + Smithery profile (cross-machine). Never commit values
- MCP servers: use workspace scope, not global 2026-06-27Workspace-scoped MCP in committed .mcp.json. claude mcp add -s project. Default scope wrong
- No dual-remote backup. GitHub IS the backup. 2026-06-27Never add second remote to forks. chirag127 fork on GitHub = backup. Stop re-asking
- PowerShell scripts: ASCII only (no em-dash, smart quotes, etc.) 2026-06-27PS 5.1 without UTF-8 BOM reads as Windows-1252. Em-dashes + smart quotes break parser. Use ASCII hyphens + straight quotes in .ps1
- PowerShell: native commands writing to stderr trip strict mode 2026-06-27Cargo/winget/npm/gcc print to stderr. PS 5.1 + EAP=Stop wraps stderr in RemoteException. Pipe through cmd /c ... 2>&1
- Web search — 3-MCP fallback chain (10 engines, no keys) 2026-06-27searxng + duckduckgo + open-websearch. 10 engines, no API key. Try in order on failure
- chirag127/backup is the new-laptop bootstrap + disaster recovery repo 2026-06-27Private repo. Bootstrap: one-command new-laptop setup + restic recovery + encrypted secrets (sops+age)
- Try multiple alternatives on failure — never stop at first fail 2026-06-27Website/API/tool/install failure: try 3+ alternatives before reporting blocker
- 5-agent workspace setup: the AI agent, OpenCode, Cline, Kilo Code, Antigravity 2026-06-27Workspace supports exactly 5 agents. All config inside C:\D\oriz\. Never touch global files
- Obsidian vault: minimal plugin set 2026-06-27Only 3 Obsidian plugins: Terminal, Templater, Dataview
- Always search the web at least twice before any non-trivial decision 2026-06-27Two independent web searches before recommending tool/hosting/library/API/architecture. No memory-only answers
- Direct commit to main on own repos; branches only for upstream contributions 2026-06-27No feature branches on chirag127/* or chirag127/*. Commit to main. Branches only for upstream PRs
- Adaptive commit granularity 2026-06-26Commits sized to work unit: single decision = 1 commit; batch grill = 1; refactor = 1 per unit
- Headroom scoped-use policy 2026-06-26Headroom (Hr): input-compression proxy only. No memory/Qdrant/TOIN/learn. Docker-only
- Knowledge-only, no memory dual-write 2026-06-26Durable prefs + locked decisions ? knowledge/ ONLY. Not mirrored to MEMORY.md
- Loop engineering for AI agents 2026-06-26AI agent loops across engines/tools with fan-out, fallback, self-correction. No infinite loops
- MCP no-key in repo, keyed in Smithery 2026-06-26No-API-key MCP servers committed as configurable entries. Keyed/auth MCP servers go in Smithery toolbox
- Memory file mapping by `type` field 2026-06-26Migrating MEMORY.md to knowledge/: type field determines directory (rule?rules/, decision?decisions/, etc.)
- OKF graph discipline (inspired by okf-mcp) 2026-06-26Validate cross-links, prefer index-scan over directory-scan, propose-first authoring, structured graph queries
- Per-batch grill log granularity 2026-06-26Grill sessions logged at batch granularity — one log per session. Lives in knowledge/log/grills/
- Write + commit per decision (not per session) 2026-06-26Each locked decision ? knowledge/ + committed as discrete unit. Not batched end-of-session
- 4 options per MCQ (default) 2026-06-26MCQs: exactly 4 ranked options (Recommended + 2nd choice + 2 others). Never 3 or 2
- Output style: terse + acronyms 2026-06-26Agent output terse, uses acronyms freely (OKF, MCQ, MCP, LOC, CF, GH, PWA, SERP). Expand only if non-obvious
- Rules centralized at umbrella — no per-repo rules 2026-06-26All rules + .env.example ONLY in umbrella. Submodules have NO own rules. Reverses earlier per-repo rule
- Spare forks with downstream forkers 2026-06-26Bulk-deleting forks: spare forks others forked. Downstream fork = real user chose your fork as upstream
- Knowledge — hard-delete superseded files 2026-06-25Superseded decision: git rm old file same commit as new. Audit trail in git history
- Don't rebuild software that already exists completely free 2026-06-25Don't rebuild software that exists free
- Every repo README must carry a star-this-repo badge near the top 2026-06-25Star-this-repo badge near top of every README
- Userscript @author metadata uses GitHub handle `chirag127` 2026-06-25Userscript @author = chirag127
- React > Preact — ecosystem over bundle size 2026-06-25React over Preact — ecosystem over bundle size
- Atomic packages — extract lazily on second use 2026-06-252+ apps need same logic ? extract to @oriz/* or oriz-* package. Concern-atomic (3-5 exports, 100-300 LOC). Build only when forced
- Fork features ? also file upstream issues 2026-06-25Feature patched in repos/frk/ ? file upstream issue requesting same. If merged, drop patch
- Lean by need, not count 2026-06-25Build-gate applies to npm deps as features. No min/max dep count. Each dep justifies itself
- GH org secrets, build-time inject 2026-06-25Shared tokens flow from GH org-level Actions secrets into each repo CI, baked into Astro static output
- GitHub repo names are brand identity 2026-06-25Prefer renaming local folder over renaming GitHub repo. GitHub repo names = brand identity
- Scope-cut: only shipping survives 2026-06-25Only shipping-content repos survive. In-progress/scaffold/will-build-someday archived. 33 repos cut
- vsce: publish VS Code extensions to all marketplaces 2026-06-25VS Code extensions ALWAYS publish to both VS Code Marketplace (vsce) + Open VSX (ovsx). Both tokens in .env
- Agent minimum-context protocol — find before deriving 2026-06-24How AI agent operates on this repo with minimum upfront token cost Read knowledge/_navigation.md FIRST. Grep before writing. Terse self-contained files. [[wikilinks]] for chaining. Commit knowledge same-turn. Plus a cookbook of recurring tasks with entry-point file paths.
- Self-update on every decision (durable info only) 2026-06-24Decisions written to knowledge/ same session
- Fork discipline — minimum diff, rebase-friendly, upstream-aligned 2026-06-24Minimum-diff forks, rebase-friendly, upstream-aligned
- Git identity — always use chirag127's GitHub noreply email 2026-06-24chirag127 noreply email for all commits
- Recruiter strategy: optimize pinned repos + contribution graph, not the repo list 2026-06-24Optimize pinned repos + contribution graph for recruiters
- Profile README must cross-link chirag127 ↔ chirag127 2026-06-24chirag127 ↔ chirag127 cross-link in profile READMEs
- Playwright Persistent Browser Context Rules 2026-06-24Playwright persistent auth, cookie encryption, memory leak prevention
- 2025 agents.md discipline — tight context, knowledge bundle, don't drift to 2026 yolo 2026-06-23User locked 2025 mindset 2026-06-23: AGENTS.md stays short sharp, knowledge/ is the brain, every concept gets a file. Reject the 'just let\ agents figure it out from context' 2026 yolo for non-toy projects. For oriz family\ this means: AGENTS.md ≤200 lines pointing at README.md and knowledge/, never\ inline rules in AGENTS.md if a knowledge file exists, prune stale knowledge weekly,\ treat context as a precious limited resource.
- Auto-grill on architectural decisions 2026-06-23Before multi-file architectural choice — grill first \ framework, data model), agents MUST run the grill skill or its inline equivalent\ \ (3\u20134 ranked-recommendation questions via multi-choice question prompt). Decision must\ \ be locked into knowledge/decisions/ before code lands. Locked 2026-06-23 in response\ \ to user explicitly choosing the auto-grill cadence. Compounds with self-update-on-every-decision:\ \ grill produces the decision, that rule files it."
- Community packages first — prefer external dependencies over hand-rolling 2026-06-23Prefer well-maintained community packages over hand-rolling
- AWS Lambda EXCEPTION to no-card-on-file rule 2026-06-23AWS Lambda exception to no-card rule
- Cloudflare Pages = apps only. Everything else = GitHub Pages 2026-06-23CF Pages for apps, GH Pages for everything else
- Card-on-file allowed BUT only on free-tier-safe providers with hard cost controls 2026-06-23Card-on-file OK with hard $0 spend cap
- Storage decision needs explicit grill 2026-06-23User voices DB/storage concern → grill on concern, not preemptively pick different stack
- Frontend-design skill: distinctive intentional visual design for every UI 2026-06-22Distinctive intentional visual design for every UI
- Per-app distinctive frontend design — adopt the frontend-design skill principles family-wide 2026-06-22Each app gets distinctive visual identity, same chrome stays family-wide
- Grill the user on every new input that contradicts existing knowledge 2026-06-22When user contradicts/narrows/widens/reverses knowledge — confirm before acting a decision already in knowledge/, the agent must explicitly call out the delta, ask the user to confirm whether to overwrite knowledge or treat as one-off, and only then act. Latest user input is the source of truth ONLY after explicit confirmation.
- Grill on LOC removal >= 50 lines per sweep (TIGHTENED 2026-06-22 evening) 2026-06-22TIGHTENED 2026-06-22: threshold dropped from 1000 LOC 50 LOC. When a dedup/refactor/cleanup sweep removes ≥50 lines of code in\ a single agent action, the agent MUST surface this as a delta, ask the user MCQs\ about what was removed + why, offer restoration paths, and confirm before deleting.\ Reason: 50-LOC sweeps can hide substantive functional removal (an entire component,\ a route, a feature). Design pattern consolidation safe ONLY after grill; content/feature\ deletion NEVER safe without grill.
- No Firebase Cloud Functions — Blaze requires a card on file 2026-06-22No Firebase Functions — Blaze requires card
- No PAID self-hosting — free + no-card-on-file providers are fine 2026-06-22Self-hosting OK on free / no-card providers
- One-level subdomains only — never two levels deep below oriz.in 2026-06-22One-level subdomains only below oriz.in
- Shared-tenant-by-default for every 3rd-party service 2026-06-22Single shared tenant for every 3rd-party service
- Every AI provider adapter must be OpenAI-compatible (SDK schema) 2026-06-22Every AI adapter uses OpenAI SDK schema
- Always parse 'Other' answers in MCQs for additional context beyond the literal question 2026-06-22Parse MCQ 'Other' answers for extra directives
- Telegram channels and roles (restored 2026-06-22) 2026-06-224 Telegram channels in Oriz namespace
- Design divergence is NOT duplication 2026-06-21Per-app design divergence, not duplication
- Grill-to-knowledge — every grill-me answer lands in knowledge/ 2026-06-21Invoke grill-me or design Q&A — write results to knowledge/ EVERY locked answer (question stem + chosen option + rejected options + 'why') MUST land in knowledge/ in the same conversation. No locked answer may live only in chat history. The conversation context is the audit trail; the decision file is the durable truth.
- Keep knowledge fresh — read first, write current truth, delete obsoletes 2026-06-21Every session reads knowledge before acting, writes decisions into knowledge/ as CURRENT TRUTH (not historical logs), and deletes obsoleted content same-turn. Knowledge files are snapshots of what IS, not journeys of how we got here.
- Astro version pin: major in package.json, auto-update minors weekly 2026-06-21Astro pinned at major, minors auto-update weekly
- Tests in parallel + master `pnpm install -r` is THE install command 2026-06-21Tests parallel, pnpm install -r from master
- Cloudflare Pages only — every website and every app hosts on CF Pages 2026-06-21CF Pages family hosting lock
- No subscriptions — no service requiring a recurring paid plan 2026-06-21No recurring paid subscriptions
- Communication is STT-friendly — accept transcription noise, infer intent 2026-06-21STT-friendly communication, infer intent, ≤4 MCQ options
- iOS is PWA-only — user has no Mac 2026-06-21iOS PWA-only, no Apple devices
- Linux/Ubuntu only on CI runners — never Windows or macOS 2026-06-21Linux/Ubuntu only on CI runners
- No card on file — one-time prepaid OK 2026-06-21One-time prepaid OK, no recurring cards
- Don't create .bak folders 2026-06-21User rejected src.bak/ pattern. Git history = durable backup. Destructive edit? ASK FIRST
- "Free for the developer" means services we consume, not license 2026-06-21\"Free for developer\" = services we consume free (no card, no quotas). NOT code OSS
- Repo slug `-npm-pkg` suffix for npm packages 2026-06-21GitHub repo slugs for npm packages get -npm-pkg suffix even though npm name does not. 22 packages converged
- PWABuilder is primary PWA→native converter 2026-06-21PWABuilder (Microsoft, free, CLI) = primary PWA→native converter. Tauri demoted to opt-in. iOS PWA-only
- No emoji in site chrome 2026-06-20No emoji in site chrome — SVG icons only
- No ad-slot rectangles reserved in markup 2026-06-20No reserved ad-slot divs in markup
- Always Read a file before Edit 2026-06-20Always Read file before Edit in current session \ enforces this; the rule restates the why so agents don't fight it \u2014 it prevents\ \ stale-match failures and accidental clobbering."
- Always install the latest version of every dependency 2026-06-20Always install latest version of every dependency
- Conventional commits 2026-06-20Conventional Commits prefixes for every commit
- Never force-push to main 2026-06-20Force-push to main needs explicit user instruction
- One branch only — main 2026-06-20Only main branch across all repos
- Never call Web3Forms from server-side code 2026-06-20Web3Forms browser-only, never server-side
- Push to main by default — no explicit say-so needed 2026-06-20Push to main by default without explicit say-so
- Every repo in the family must work independently when cloned alone 2026-06-20Every repo works independently when cloned alone
- Apply the role suffix to every new repo, and audit before publish 2026-06-20Role suffix on every repo slug
- pnpm is the package manager for every JS repo in the family 2026-06-20pnpm mandatory across oriz family
- No firebase-admin inside Cloudflare Workers 2026-06-20No firebase-admin in CF Workers, use REST
- Auto-only tracking 2026-06-20Auto-only tracking for system metrics
- Future decisions override past decisions 2026-06-20Chat contradicts file → chat wins, update same turn
- Match the surrounding code style 2026-06-20Match surrounding code style when editing
- Never delete an empty placeholder repo without explicit user authorisation 2026-06-20Never delete empty placeholder repos without user OK
- Never hit a free-tier quota 2026-06-20Architect for headroom, never hit quotas
- Parallel fan-out by default (background subagents) 2026-06-20Parallel fan-out via background subagents
- User prefers atomic split over consolidation 2026-06-20User prefers atomic split over consolidation
- User prefers deletion over archive for superseded repos (same-day migration) 2026-06-20User prefers deletion over archive for superseded repos
- User prefers per-product brand over family chrome 2026-06-20User prefers per-tool brand over family chrome
- User prefers same name across GitHub repo and npm package 2026-06-20Same slug across GitHub repo and npm package
- User prefers strict-no-toggle interpretation of locked rules 2026-06-20User prefers strict-no-toggle for locked rules
- User prefers wider topical coverage over narrow SEO concentration 2026-06-20User prefers wider topical coverage over narrow SEO
- No hardcoded secrets — everything via envpact 2026-06-20No hardcoded secrets, envpact provides at runtime