ce-polish
$
npx mdskill add EveryInc/compound-engineering-plugin/ce-polishStart dev server, open browser, and iterate on improvements together
- Solve the task of testing and refining features locally
- Uses launch.json or auto-detects project type to start dev servers
- Routes to framework-specific recipes for server configuration
- Opens the feature in a browser for real-time collaboration and feedback
SKILL.md
.github/skills/ce-polishView on GitHub ↗
--- name: ce-polish description: "Start the dev server, open the feature in a browser, and iterate on improvements together. Manual invocation only — type /ce-polish to run it." disable-model-invocation: true argument-hint: "[PR number, branch name, or blank for current branch]" --- # Polish Start the dev server, open the feature in a browser, and iterate. You use the feature, say what feels off, and fixes happen. ## Phase 0: Get on the right branch 1. If a PR number or branch name was provided, check it out (probe for existing worktrees first). 2. If blank, use the current branch. 3. Verify the current branch is not main/master. ## Phase 1: Start the dev server ### 1.1 Check for `.claude/launch.json` Run `bash scripts/read-launch-json.sh`. If it finds a configuration, use it — the user already told us how to start the project. ### 1.2 Auto-detect (when no launch.json) Run `bash scripts/detect-project-type.sh` to identify the framework. Route by type to the matching recipe reference for start command and port defaults: | Type | Recipe | |------|--------| | `rails` | `references/dev-server-rails.md` | | `next` | `references/dev-server-next.md` | | `vite` | `references/dev-server-vite.md` | | `nuxt` | `references/dev-server-nuxt.md` | | `astro` | `references/dev-server-astro.md` | | `remix` | `references/dev-server-remix.md` | | `sveltekit` | `references/dev-server-sveltekit.md` | | `procfile` | `references/dev-server-procfile.md` | | `unknown` | Ask the user how to start the project | For framework types that need a package manager, run `bash scripts/resolve-package-manager.sh` and substitute the result into the start command. Resolve the port with `bash scripts/resolve-port.sh --type <type>`. ### 1.3 Start the server Start the dev server in the background, log output to a temp file. Probe `http://localhost:<port>` for up to 30 seconds. If it doesn't come up, show the last 20 lines of the log and ask the user what to do. ### 1.4 Open in browser Load `references/ide-detection.md` for the env-var probe table. Open the browser using the IDE's mechanism (Claude Code → `open`, Cursor → Cursor browser, VS Code → Simple Browser). Tell the user: ``` Dev server running on http://localhost:<port> Browse the feature and tell me what could be better. ``` ## Phase 2: Iterate This is the core loop. The user browses the feature and tells you what to improve. You fix it. Repeat until they're happy. - When the user describes something to fix → make the change, the dev server hot-reloads - When the user asks to check something → use `agent-browser` to screenshot or inspect the page - When the user says they're done → commit the fixes and stop No checklist. No envelope. Just conversation. ## References Reference files (loaded on demand): - `references/launch-json-schema.md` — launch.json schema + per-framework stubs - `references/ide-detection.md` — host IDE detection and browser-handoff - `references/dev-server-detection.md` — port resolution documentation - `references/dev-server-rails.md` — Rails dev-server defaults - `references/dev-server-next.md` — Next.js dev-server defaults - `references/dev-server-vite.md` — Vite dev-server defaults - `references/dev-server-nuxt.md` — Nuxt dev-server defaults - `references/dev-server-astro.md` — Astro dev-server defaults - `references/dev-server-remix.md` — Remix dev-server defaults - `references/dev-server-sveltekit.md` — SvelteKit dev-server defaults - `references/dev-server-procfile.md` — Procfile-based dev-server defaults Scripts (invoked via `bash scripts/<name>`): - `scripts/read-launch-json.sh` — launch.json reader - `scripts/detect-project-type.sh` — project-type classifier - `scripts/resolve-package-manager.sh` — lockfile-based package-manager resolver - `scripts/resolve-port.sh` — port resolution cascade
More from EveryInc/compound-engineering-plugin
- ce-agent-native-architectureBuild applications where agents are first-class citizens. Use this skill when designing autonomous agents, creating MCP tools, implementing self-modifying systems, or building apps where features are outcomes achieved by agents operating in a loop.
- ce-agent-native-auditRun comprehensive agent-native architecture review with scored principles
- ce-brainstormExplore requirements and approaches through collaborative dialogue, then write a right-sized requirements document. Use when the user says "let''s brainstorm", "what should we build", or "help me think through X", presents a vague or ambitious feature request, or seems unsure about scope or direction -- even without explicitly asking to brainstorm.
- ce-clean-gone-branchesClean up local branches whose remote tracking branch is gone. Use when the user says "clean up branches", "delete gone branches", "prune local branches", "clean gone", or wants to remove stale local branches that no longer exist on the remote. Also handles removing associated worktrees for branches that have them.
- ce-code-reviewStructured code review using tiered persona agents, confidence-gated findings, and a merge/dedup pipeline. In interactive mode it applies safe, verified fixes and commits them when the working tree is clean (it never pushes); in mode:agent it reports only and the caller applies. Use when reviewing code changes before creating a PR.
- ce-commitCreate a git commit with a clear, value-communicating message. Use when the user says "commit", "commit this", "save my changes", "create a commit", or wants to commit staged or unstaged work. Produces well-structured commit messages that follow repo conventions when they exist, and defaults to conventional commit format otherwise.
- ce-commit-push-prCommit, push, and open a PR with an adaptive, value-first description that scales in depth with the change. Use when the user says "commit and PR", "ship this", "create a PR", or "open a pull request". Also handles description-only flows ("write a PR description", "rewrite the PR body", "describe this PR") without committing or pushing.
- ce-compoundDocument a recently solved problem to compound your team's knowledge or CONCEPTS.md, the project's shared domain vocabulary.
- ce-compound-refreshRefresh stale learning and pattern docs under docs/solutions/ by reviewing them against the current codebase, then updating, consolidating, or deleting drifted ones. Use when the user asks to "refresh my learnings", "audit docs/solutions/", "clean up stale learnings", or "consolidate overlapping docs", or when ce-compound flags an older doc as superseded. Do not trigger for general refactor, debugging, or code-review work unless the user has explicitly pointed at docs/solutions/.
- ce-debugSystematically find root causes and fix bugs. Use when debugging errors, investigating test failures, reproducing bugs from issue trackers (GitHub, Linear, Jira), or when stuck on a problem after failed fix attempts. Also use when the user says ''debug this'', ''why is this failing'', ''fix this bug'', ''trace this error'', or pastes stack traces, error messages, or issue references.