diagnose-forge
Diagnose forge gaps from E2E diagnostics, file improvement proposals, and implement approved changes. Used by Big Pickle in the unattended forge improvement loop.
- License 许可
- MIT
- 最近更新
- 2026-11-15
- Stars
- ★ 6
- Forks
- 0
01 前言 Front Matter
- name
- diagnose-forge
- license
- MIT
- metadata
- { "author": "tillandsias", "version": "1.0", "invokedBy": "/diagnose-forge" }
- description
- Diagnose forge gaps from E2E diagnostics, file improvement proposals, and implement approved changes. Used by Big Pickle in the unattended forge improvement loop.
03 SKILL.md 正文
You are loading the diagnose-forge skill — the iterative forge improvement workflow for Big Pickle.
This skill is designed for both unattended loop execution (opencode run --command diagnose-forge) and interactive TUI sessions (/diagnose-forge).
Vision
The forge should be a fully-loaded development environment — a new user with zero skills should be able to prompt "I want a web app with this and that" and every tool, compiler, SDK, and runtime should be ready inside the forge container. No install steps, no investigation, no environment setup.
Target toolset includes: Flutter, React/Angular toolchains, Dart, TypeScript, Rust, Go, Python, Node.js, Java/Kotlin, compilers (gcc, clang), builders (make, cmake, cargo, npm, maven), monitoring tools, and everything needed to build any web app from scratch.
All enhancements remain inside the existing forge privacy and isolation envelope. Proposals may add pre-installed tools and configuration, but must not request broader host mounts, host credentials, privileged containers, raw host sockets, or proxy/router/enclave bypasses.
File Layout
plan/forge-improvements/proposals/— one.mdfile per proposed gapplan/forge-improvements/.diagnose-state— tracks last processed diagnostics filetarget/forge-diagnostics/diagnostics_*.log— raw diagnostics from E2E runs (host-local, gitignored). Present only on the host that ran the annex.plan/diagnostics/diagnostics_*-summary.md— distilled summaries (durable, committed). Cross-host fallback input — see step 3 of the/diagnose-forgecommand.images/default/Containerfile— forge image definition (main target for changes)images/default/entrypoint-forge-opencode.sh— runtime env setup (main target for changes)
State Machine for Proposals
Each proposal goes through these states:
proposed → reviewed → approved → implemented
↓ ↓
stale rejected
- proposed: Filed by Big Pickle based on diagnostics analysis
- reviewed: ORCHESTRATOR has read it but not yet decided
- approved: ORCHESTRATOR has approved with privacy/isolation rationale — ready for implementation
- implemented: Changes applied and committed
- rejected: ORCHESTRATOR declined (with reason)
- stale: Diagnostics no longer show this gap (capability was added by other means)
Diagnostic Categories
| Category | Examples |
|---|---|
env-var |
PATH missing entries, RUSTUP_HOME, FLUTTER_ROOT, ANDROID_HOME, JAVA_HOME |
runtime-tool |
gcc, rustc, javac, dart, python3, node, deno, flutter, cargo |
sdk |
Flutter SDK, Android SDK, .NET SDK, Go, Rust toolchain |
cache |
.cache/ mounts, homedir layout, layer ordering |
network |
Access to crates.io, npm, pub.dev, pypi from inside forge |
shell-tool |
git, curl, jq, yq, unzip, tar, podman |
Implementation Guidelines
When implementing an approved proposal:
- Containerfile changes: Add packages via
dnf installin the correct layer. Group related tools. Order matters for layer caching. - Entrypoint changes: Export env vars, set up paths, install SDKs that need runtime initialization.
- Commit each implementation separately so the ORCHESTRATOR can review per-proposal.
- Update the proposal frontmatter with
implemented_atandevidence(commit SHA or summary).
Safety Rules
- Never remove existing capabilities — only add
- Every change must cite diagnostics evidence — no speculative additions
- One gap per proposal — keeps review tractable
- Privacy-first: No telemetry, no cloud callbacks, no data exfiltration
- Zero-trust: Changes must not open new network egress or reduce container isolation
- Do not self-approve proposals. In unattended mode, file proposals with
status: proposedand wait for the orchestrator to markstatus: approved. - If unsure about a change's safety, mark the proposal as
needs_reviewand explain the risk
04 同仓库更多 Skills
start-a-new-project
Use when the user wants to start a new project, asks how to begin, or is in an empty or nearly empty repository ("how do I start?", "I want to build an app", "help me set up a new project"). Guides them, in plain language, to describe the app as specs first (spec-driven development with OpenSpec), recommends Flutter (and the Flame engine for games and graphics), and sets up specs, a plan folder for longer work, and a README. Works for any project, not only Tillandsias.
smoke-curl-install-and-test-e2e
Clean-room end-to-end smoke test of a PUBLISHED release. Curl-installs the latest release binary from GitHub, does a full `podman system reset --force`, runs `tillandsias --debug --init` from a pristine state, and (if init is clean) launches `tillandsias --cloud 8007342/tillandsias --opencode` with ONE short fixed smoke prompt (run the credential guard, reply with a fixed token; never the /meta-orchestration loop, 1941-smkp). Every issue observed — by this skill's agent during install/reset/init, or by the agent's one turn inside the forge — is filed as a plan/issues work packet for later pickup by /advance-work-from-plan.
project-discipline
How THIS project wants its branches and pushes shaped — read its branch-discipline level (0 push to main freely; 1 integration branch + pull requests; 2 work refs into the integration branch), the drift between what it declares and what its history shows, which hooks it has installed, how to raise it, and the work format each hook refusal asks for. Every refusal that says "use /project-discipline for instructions" resolves here. Works for any project in a Tillandsias forge, not only Tillandsias.
probe-macos-tray-on-windows
Daily cross-platform health probe — compiles the macos-tray crate from the local Windows host. Expected to succeed as a stub (the crate is fully cfg-gated for non-macOS); a build failure here means a shared module or crate broke for everyone. Files structured findings to plan/issues/probe-macos-tray-on-windows-findings-<DATE>.md.
multihost-orchestration
Compatibility alias for the canonical coordinate-multihost-work skill.
meta-orchestration
Host-aware Tillandsias recurring runtime loop: sync remote state, drain claimable plan work, run eligible e2e smoke gates, coordinate integrations on mutable Linux, release when warranted, update plan, commit, and push before exit.