From eaadbf757ca962bd4cfb2a39d49d49d7209bada7 Mon Sep 17 00:00:00 2001 From: Steven Welch Date: Thu, 27 Aug 2026 19:53:18 -0600 Subject: [PATCH 1/2] docs: align website guidance with shared agent runtime --- AGENTS.md | 83 +++------------------------------------------------ opencode.json | 56 +--------------------------------- 2 files changed, 5 insertions(+), 134 deletions(-) diff --git a/AGENTS.md b/AGENTS.md index 73d2f9b..e9a4d88 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -1,82 +1,7 @@ -# Operational Context +# Agent Instructions -- **Type:** Static Website -- **Static checks:** `pre-commit run -a`, `node --check makeitwork.cloud/sw.js` -- **Lint:** `actionlint`, `prettier` -- **Pull request CI:** Enforces secret scanning and static checks. +Static website source for `makeitwork.cloud` and `onion.makeitwork.cloud`. -# Production Deployment +A successful push to `main` synchronizes both site directories with production using delete semantics and purges Cloudflare cache. Use scoped branches and PR CI for every change; never merge, dispatch, deploy, or purge without explicit confirmation. -**Warning:** A successful push to `main` S3-syncs both `makeitwork.cloud/` and `onion.makeitwork.cloud/` to production with `--delete`, then purges the Cloudflare cache. Files absent from either source directory are deleted from the corresponding bucket. - -Use a branch and pull request for changes. Do not push any branch or trigger a -deployment unless explicitly requested. - -# context-mode — MANDATORY routing rules - -You have context-mode MCP tools available. These rules are NOT optional — they protect your context window from flooding. A single unrouted command can dump 56 KB into context and waste the entire session. - -## BLOCKED commands — do NOT attempt these - -### curl / wget — BLOCKED - -Any shell command containing `curl` or `wget` will be intercepted and blocked by the context-mode plugin. Do NOT retry. -Instead use: - -- `context-mode_ctx_fetch_and_index(url, source)` to fetch and index web pages -- `context-mode_ctx_execute(language: "javascript", code: "const r = await fetch(...)")` to run HTTP calls in sandbox - -### Inline HTTP — BLOCKED - -Any shell command containing `fetch('http`, `requests.get(`, `requests.post(`, `http.get(`, or `http.request(` will be intercepted and blocked. Do NOT retry with shell. -Instead use: - -- `context-mode_ctx_execute(language, code)` to run HTTP calls in sandbox — only stdout enters context - -### Direct web fetching — BLOCKED - -Do NOT use any direct URL fetching tool. Use the sandbox equivalent. -Instead use: - -- `context-mode_ctx_fetch_and_index(url, source)` then `context-mode_ctx_search(queries)` to query the indexed content - -## REDIRECTED tools — use sandbox equivalents - -### Shell (>20 lines output) - -Shell is ONLY for: `git`, `mkdir`, `rm`, `mv`, `cd`, `ls`, `npm install`, `pip install`, and other short-output commands. -For everything else, use: - -- `context-mode_ctx_batch_execute(commands, queries)` — run multiple commands + search in ONE call -- `context-mode_ctx_execute(language: "shell", code: "...")` — run in sandbox, only stdout enters context - -### File reading (for analysis) - -If you are reading a file to **edit** it → reading is correct (edit needs content in context). -If you are reading to **analyze, explore, or summarize** → use `context-mode_ctx_execute_file(path, language, code)` instead. Only your printed summary enters context. - -### grep / search (large results) - -Search results can flood context. Use `context-mode_ctx_execute(language: "shell", code: "grep ...")` to run searches in sandbox. Only your printed summary enters context. - -## Tool selection hierarchy - -1. **GATHER**: `context-mode_ctx_batch_execute(commands, queries)` — Primary tool. Runs all commands, auto-indexes output, returns search results. ONE call replaces 30+ individual calls. -2. **FOLLOW-UP**: `context-mode_ctx_search(queries: ["q1", "q2", ...])` — Query indexed content. Pass ALL questions as array in ONE call. -3. **PROCESSING**: `context-mode_ctx_execute(language, code)` | `context-mode_ctx_execute_file(path, language, code)` — Sandbox execution. Only stdout enters context. -4. **WEB**: `context-mode_ctx_fetch_and_index(url, source)` then `context-mode_ctx_search(queries)` — Fetch, chunk, index, query. Raw HTML never enters context. -5. **INDEX**: `context-mode_ctx_index(content, source)` — Store content in FTS5 knowledge base for later search. - -## Output constraints - -- Keep responses under 500 words. -- Write artifacts (code, configs, PRDs) to FILES — never return them as inline text. Return only: file path + 1-line description. -- When indexing content, use descriptive source labels so others can `search(source: "label")` later. - -## ctx commands - -| Command | Action | -| ------------- | --------------------------------------------------------------------------------- | -| `ctx stats` | Call the `stats` MCP tool and display the full output verbatim | -| `ctx doctor` | Call the `doctor` MCP tool, run the returned shell command, display as checklist | -| `ctx upgrade` | Call the `upgrade` MCP tool, run the returned shell command, display as checklist | +Use the configured GitHub and documentation MCP integrations. Do not assume a local context-mode plugin, local checkout, shell tooling, or production credentials. Keep public content free of secrets, tokens, private endpoints, and personal data. diff --git a/opencode.json b/opencode.json index db83e07..6376bc7 100644 --- a/opencode.json +++ b/opencode.json @@ -1,58 +1,4 @@ { "$schema": "https://opencode.ai/config.json", - "mcp": { - "agent-hub": { - "type": "remote", - "url": "http://127.0.0.1:8776/mcp", - "enabled": true, - "oauth": false - }, - "context-mode": { - "type": "local", - "command": ["context-mode"], - "enabled": true - }, - "context7": { - "type": "remote", - "url": "https://mcp.context7.com/mcp", - "enabled": true - }, - "github": { - "type": "remote", - "url": "https://api.githubcopilot.com/mcp/", - "enabled": true, - "oauth": false, - "headers": { "Authorization": "Bearer {env:GITHUB_TOKEN}" } - }, - "opencode-docs": { "enabled": false }, - "opentofu-docs": { "enabled": false }, - "aws-docs": { "enabled": false }, - "kubernetes": { "enabled": false }, - "tmux": { "enabled": false }, - "linear": { "enabled": false }, - "notion": { "enabled": false }, - "aws-staging": { "enabled": false }, - "aws-prod": { "enabled": false }, - "grafana": { "enabled": false }, - "terraform-docs": { "enabled": false }, - "argocd-makeitwork": { "enabled": false }, - "argocd-staging-eks": { "enabled": false }, - "argocd-prod-eks": { "enabled": false } - }, - "tools": { - "opencode-docs_*": false, - "opentofu-docs_*": false, - "aws-docs_*": false, - "kubernetes_*": false, - "tmux_*": false, - "linear_*": false, - "notion_*": false, - "aws-staging_*": false, - "aws-prod_*": false, - "grafana_*": false, - "terraform-docs_*": false, - "argocd-makeitwork_*": false, - "argocd-staging-eks_*": false, - "argocd-prod-eks_*": false - } + "instructions": ["AGENTS.md"] } From ff0464a84973b5d168878c836929360458e9c510 Mon Sep 17 00:00:00 2001 From: Steven Welch Date: Thu, 27 Aug 2026 20:01:33 -0600 Subject: [PATCH 2/2] chore: remove obsolete local OpenCode overlay --- opencode.json | 4 ---- 1 file changed, 4 deletions(-) delete mode 100644 opencode.json diff --git a/opencode.json b/opencode.json deleted file mode 100644 index 6376bc7..0000000 --- a/opencode.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "$schema": "https://opencode.ai/config.json", - "instructions": ["AGENTS.md"] -}