feat: testable local-only install, real CI, Dependabot, docs refresh (v1.6.0) - #1
Merged
Merged
Conversation
install.sh --local-only installs only commands, skills, rules and the CLAUDE.md snippet (no Ghost, Ollama, cc-conversation-search, ccs binary or completions) and creates CLAUDE_DIR if needed, so the file layout can be tested in CI. verify.sh gains the same flag and now checks every shipped command; uninstall.sh gains --yes and --local-only and removes every command the repo ships instead of only /rename-session. update.sh honours CLAUDE_DIR. ccs reports 1.6.0 and the Claude Code docs link follows its redirect to code.claude.com/docs.
…ncy status README install section matches what install.sh does (all five commands, ccs shortcut, completions, CLAUDE.md snippet), the project structure lists the CI workflow, scripts/ and docs helpers, the docs links follow the redirect to code.claude.com/docs, and a dependency status note records that cc-conversation-search upstream has been idle since December 2025. CONTRIBUTING lists the CI checks. Em and en dashes in the planning skill replaced with hyphens.
…eekly Dependabot Replaces the syntax-only workflow with shellcheck on every script, py_compile, a real README anchor check (scripts/check_readme_anchors.py), command and skill header checks, an end-to-end install/verify/uninstall in --local-only mode against a temp CLAUDE_DIR, ccs --version and help without optional dependencies, and a dash check. A docs job builds the cheatsheet PDF with WeasyPrint and uploads it as an artifact. Dependabot covers GitHub Actions and docs/requirements.txt weekly.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What changed
install.sh --local-only(orPOWER_STACK_LOCAL_ONLY=1) installs only commands, skills, rules and the CLAUDE.md snippet into$CLAUDE_DIR(default~/.claude, created if missing) and skips Ghost, Ollama, cc-conversation-search, theccsbinary and completions. Default behaviour is unchanged.verify.sh --local-onlychecks only the Claude config layout and now verifies all five shipped commands, not just/rename-session.uninstall.sh --yes --local-onlyskips the prompt and the MCP/ccs/completion removals, and removes every command incommands/(previously only/rename-sessionwas removed).update.shhonoursCLAUDE_DIR.bin/ccsreports 1.6.0. Claude Code docs links follow the redirect chain tohttps://code.claude.com/docs..github/workflows/ci.yml): shellcheck at-S styleplusbash -non every script includingbin/ccsand the skill scripts, executable bits,py_compile, a real README anchor check (scripts/check_readme_anchors.py, GitHub slug rules), command and skill header checks, required files, an end-to-endinstall --local-only(twice, snippet appended once) thenverify --local-onlythenuninstall --yes --local-onlyagainst$RUNNER_TEMP,ccs --versionandccs helpwithout the optional dependencies, and a dash check. A separatedocsjob buildsdocs/cheatsheet.pdfwith WeasyPrint on Ubuntu and uploads it as an artifact..github/dependabot.yml: weekly for GitHub Actions and fordocs/requirements.txt(markdown 3.10.3, weasyprint 70.0).Verified locally (macOS, shellcheck 0.11.0, Python 3.13)
shellcheck -S styleon setup.sh install.sh verify.sh uninstall.sh update.sh bin/ccs and the two skill scripts: cleanpython3 scripts/check_readme_anchors.py: OK, all 7 README anchors resolvepython3 -m py_compileon the four Python files: okCLAUDE_DIR=$(mktemp -d)/claude bash install.sh --local-onlytwice: all five commands, the skill and the rule installed;Memory & Context Systemappears exactly once in the generated CLAUDE.mdbash verify.sh --local-only: 8 passed, 0 failed, 0 warningsbash uninstall.sh --yes --local-only: all five commands and the rule removed; asserted absent afterwardsbash bin/ccs --versionprintsccs 1.6.0;bash bin/ccs helpexits 0cc-conversation-search 0.5.3still exposesinit,index --all,search --json --limit --days --project, which is everythingccscallsruby -ryamlparse of both YAML files: ok; dash grep over md/sh/py/yml/ccs: noneSkipped
docs/cheatsheet.pdfwas not regenerated locally: WeasyPrint cannot load libgobject on this machine. The committed PDF is unchanged and the newdocsCI job builds it on Ubuntu (untested until the workflow runs; theaptpackage names follow the WeasyPrint install docs).