Docs Gardening
mhmzdev/the-holy-quran-app
Audit and maintain The Holy Qur'an app's knowledge base (AGENTS.md, .agents/rules/, docs/ OKF bundle) for staleness, broken cross-links, drift from code, and OKF structural issues.
Code style, commenting, and documentation conventions for the Campfire codebase.
$ npx skills add pandulapeter/campfire --skill code-style -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install pandulapeter/campfire code-style --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ git clone --depth 1 https://github.com/pandulapeter/campfire.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.claude/skills/code-style .claude/skills/code-style && rm -rf skills-srcUse ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.
Claude Code skills documentation · loads skills from .claude/skills/
Install the "code-style" agent skill from https://github.com/pandulapeter/campfire/tree/master/.claude/skills/code-style into .claude/skills/code-style/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "code-style", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/pandulapeter/campfire/tree/master/.claude/skills/code-styleType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add pandulapeter/campfire --skill code-style -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install pandulapeter/campfire code-style --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/pandulapeter/campfire.git skills-src && mkdir -p .agents/skills && cp -r skills-src/.claude/skills/code-style .agents/skills/code-style && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "code-style" agent skill from https://github.com/pandulapeter/campfire/tree/master/.claude/skills/code-style into .agents/skills/code-style/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "code-style", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add pandulapeter/campfire --skill code-style -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install pandulapeter/campfire code-style --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/pandulapeter/campfire.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/.claude/skills/code-style .cursor/skills/code-style && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "code-style" agent skill from https://github.com/pandulapeter/campfire/tree/master/.claude/skills/code-style into .cursor/skills/code-style/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "code-style", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/pandulapeter/campfire.git --path .claude/skills/code-style--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add pandulapeter/campfire --skill code-style -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install pandulapeter/campfire code-style --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/pandulapeter/campfire.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/.claude/skills/code-style .gemini/skills/code-style && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "code-style" agent skill from https://github.com/pandulapeter/campfire/tree/master/.claude/skills/code-style into .gemini/skills/code-style/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "code-style", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install pandulapeter/campfire code-styleInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add pandulapeter/campfire --skill code-style -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/pandulapeter/campfire.git skills-src && mkdir -p .github/skills && cp -r skills-src/.claude/skills/code-style .github/skills/code-style && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "code-style" agent skill from https://github.com/pandulapeter/campfire/tree/master/.claude/skills/code-style into .github/skills/code-style/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "code-style", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add pandulapeter/campfire --skill code-style -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install pandulapeter/campfire code-style --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/pandulapeter/campfire.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/.claude/skills/code-style .opencode/skills/code-style && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "code-style" agent skill from https://github.com/pandulapeter/campfire/tree/master/.claude/skills/code-style into .opencode/skills/code-style/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "code-style", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
code-styleCode style, commenting, and documentation conventions for the Campfire codebase.
Code Style is an agent skill from pandulapeter/campfire. Code style, commenting, and documentation conventions for the Campfire codebase. MANDATORY — invoke this skill BEFORE writing or editing ANY source in this repo (every Write or Edit to a .kt/.kts/strings.xml file, new file or change to an existing one), with NO exceptions, even for a "trivial" one-line edit. It governs the MPL-2.0 header on new files, the KDoc-for-declarations / //-for-statements split, the "why, not what" comment voice, the trailing comma rule, modifier as the first parameter, string resources…
Its SKILL.md is about 2.8k tokens, which your agent loads only when the skill is triggered. It is a single SKILL.md file with no bundled scripts.
It sits in Agent Workflows, covering Agent instruction files. The repository describes itself as: A cross-platform songbook and metronome with a built-in chordPro editor, setlists, transposition, PDF export, and Dropbox sync. The licence is MPL-2.0.
Read from SKILL.md and the folder at commit 94d4b7f. It shows what the files ask for, not the result of running them.
Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.
From allowed-tools in the SKILL.md frontmatter.
Shell commands in SKILL.md call:
gitFrom the folder's file list and the shell code blocks in SKILL.md.
No URLs in SKILL.md. Its commands use git, which can reach the network depending on how they are called.
From URLs in SKILL.md, links to its own repository left out.
Names no API keys, tokens, secrets or passwords.
From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
Code Style loads about 2.8k tokens when it runs. Until then it costs about 159 tokens; SKILL.md has 1,474 words of instructions outside code blocks.
Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.
The automated check found no risky patterns in SKILL.md.
Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.
The full file from pandulapeter/campfire at commit 94d4b7f, republished under its MPL-2.0 licence (© pandulapeter). 1,474 words, ~2,838 tokens.
.claude/skills/code-style/SKILL.md (or your agent's skills folder).Conventions for matching the pre-established style of this codebase. Architecture, the module graph
and the build are in the root CLAUDE.md and the per-module ones; this skill is about how the code
reads.
.kt, .kts,
.xml (comment syntax), .md (HTML comment), .gitignore-style config (# lines). No exceptions —
a new file without it is an incomplete change.2017-2026); don't invent a new one per file.Campfire is a heavily commented codebase, but only in one direction: comments carry the why, never the what. The bar for a comment is "a reader who understands Kotlin and Compose would still get this wrong or undo it".
remember, a when, a mapper, a LaunchedEffect
that does the obvious thing, and no section-divider banners. If the code says it, the comment is noise.WhileSubscribed, why a sheet clears visibleDialog itself, why a
file input is wider than it looks like it should be. These are exactly the comments the codebase
already has, and the ones a future "simplification" would otherwise delete.CLAUDE.md
files: specific, technical, unhurried, several lines when the reason needs several lines. Wrap at the
same width as the surrounding file (~130 columns). Not telegraphic fragments, not "// HACK"./** … */), never a // block — including on
internal and private declarations. // comments are for statements inside a function body.api modules carry the contract. Interfaces in :data:source:*:api, :data:repository:api,
:domain:api and the public surface of :chordpro are documented with KDoc that explains the rules
a second implementation must honor (see SyncProvider for the tone): what the type is for, what is
opaque, what may throw, what the caller must not assume. @param only where the parameter is not
self-explanatory.implementation modules are documented by naming and structure, plus a class-level KDoc where a
class's job isn't obvious from its name. Don't KDoc every member of an Impl.enum entries, when with
multiple guards. This keeps diffs minimal and reordering clean.) or ] that starts a line of its own ends a list that wants a trailing
comma; one that sits at the end of the last element's line does not. A parameter list broken across
lines counts even with a single parameter in it, since a second one is the expected next edit — but a
single-argument call written that way does not, and neither does a js("""…""") block.enum entries follow the same rule, except where the list ends in a ; because members come after it.
A when branch with several conditions keeps the last one on the arrow's line, so there is nothing
to put a comma after.private fun ScreenSurface(...) = Surface(...)) and one-line overrides that just delegate.commonMain stays JVM-free: no java.*, no KoinJavaComponent, no JVM-only libraries. Use
kotlin.uuid.Uuid, androidx.compose.ui.text.intl.Locale, KoinPlatform.getKoin() and
import kotlinx.coroutines.IO for Dispatchers.IO.androidMain / desktopMain / iosMain / wasmJsMain behind
expect/actual — all four actuals, in the same change. A new expect that only three platforms
implement does not build.internal and named <Interface>Impl; Compose components in
:presentation are internal too. Use cases are operator fun invoke.Module.kt, nowhere else.mapper/ packages; never leak a document/entity type upwards.modifier: Modifier = Modifier is the first parameter of a Composable that takes one — this repo's
order, even though the Compose guidelines say otherwise. Follow the repo.private @Composable named for what it is in the UI (SongFilters,
SectionHeader), not for where it sits. A single focused widget needs no extraction.Row/Column/Box a group didn't have,
don't drop one it relied on, and apply parent-scope modifiers (Modifier.weight) at the call site.org.jetbrains.compose.material3). Never import androidx.compose.material
(M2). Icons are vector drawables in composeResources/drawable/, loaded with painterResource and
passed around as Painter.Text, contentDescription, titles, labels, hints,
dialog and notification text all come from composeResources/values/strings.xml.com.pandulapeter.campfire.presentation.localization.stringResource(Res.string.x).
Never the org.jetbrains.compose.resources overload: it ignores the in-app language.values/strings.xml and values-hu/strings.xml, in the same
commented group in both files, and translate the Hungarian properly. A missing key is a build-time
hole that shows up as "???".%1$s, %1$d); never concatenate a literal
with a value. A sentence that takes text somebody else wrote — a title, a tag, a header value, a file
or account name — is read with textResource(Res.string.x, text) (:presentation's
components/TextResource.kt) instead: the plugin's formatter scans its own output a second time, and
the % s in 100% sure is a format specifier to it (pluralTextResource(Res.plurals.x, count, count.toString(), text) for a <plurals> that carries such text). Keys are lower_snake_case, grouped by intent, and an existing key is reused rather than
duplicated.expect/actual
pairs, drawables, and string keys — in every locale file.loadFile starts saving too, or a …Toggles Composable gains a
slider, the name now lies. Rename it and every call site, with no stragglers.commonTest, run on the desktop target: :chordpro, :domain:implementation
(ImportPlanner), :data:source:local:implementation (zip, file storage), :data:source:remote:* (hashing, encoders,
the authorization URL), :data:repository:implementation (SyncPlanner) and :presentation (pure helpers pulled
out of the screens and the view model, never a Composable). The UI itself is untested../gradlew :chordpro:desktopTest :domain:implementation:desktopTest :data:source:local:implementation:desktopTest :data:source:remote:api:desktopTest :data:source:remote:implementation:desktopTest :data:repository:implementation:desktopTest :presentation:desktopTestCLAUDE.md — the module's own and the root one
where it describes what you changed (module responsibilities, the data flow, a screen's behavior, the
sync rules, the library layout, build properties). These files are unusually detailed here, and their
value is that they are true.git add / git commit / git push when that request explicitly asked for it — finishing the code,
fixing the build or passing the tests is not an implicit instruction to commit.commit-messages skill first.© pandulapeter, MPL-2.0. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
Just SKILL.md in .claude/skills/code-style of pandulapeter/campfire.
Open the folder on GitHubat commit 94d4b7f
Code Style next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| Code Style this skillpandulapeter/campfire | 101 | — | ~2.8k | Automated safety check: Pass | MPL-2.0 | |
| Docs Gardeningmhmzdev/the-holy-quran-app | 889 | — | ~1.1k | Automated safety check: Pass | MIT | |
| Mine HistoryZoneMinder/zmNinjaNg | 110 | — | ~1k | Automated safety check: Pass | Apache-2.0 | |
| Happier Profile And Optimizehappier-dev/happier | 1.9k | — | ~3.2k | Automated safety check: Pass | MIT | |
| Using Agent Skillsaddyosmani/agent-skills | 103k | 4 repos | ~2.4k | Automated safety check: Pass | MIT | |
| Claude ReflectBayramAnnakov/claude-reflect | 1.7k | 2 repos | ~627 | Automated safety check: Pass | MIT |
mhmzdev/the-holy-quran-app
Audit and maintain The Holy Qur'an app's knowledge base (AGENTS.md, .agents/rules/, docs/ OKF bundle) for staleness, broken cross-links, drift from code, and OKF structural issues.
ZoneMinder/zmNinjaNg
A skill your agent uses when asked to mine the commit history for lessons the agent instruction files have not captured, to audit whether domain-context and contracts reflect what actually broke, or…
happier-dev/happier
The method for profiling and optimizing anything whose success is a measured cost — frame the phase and metric, choose an instrument that can actually see the cost, label the waste, falsify the…
addyosmani/agent-skills
Meta-skill for choosing which workflow skill fits the task at hand, plus always-on habits: surface assumptions, stop on confusion, push back, keep it simple and stay in scope.
BayramAnnakov/claude-reflect
Self-learning system that captures corrections during sessions and reminds users to run /reflect to update CLAUDE.md.
bestofjs/bestofjs
Writing documents for agents. An agent skill from bestofjs/bestofjs.
pandulapeter/campfire
The Campfire review-sweep process — read-only area reviewers, one plan file per verified finding, a README.md that indexes them into parallel lanes, an EXECUTION.md orchestrator brief, and later the…
pandulapeter/campfire
Prepare a Campfire release by writing a paste-ready GitHub release-notes draft (with the stores' "what's new" blurb and Play's update priority embedded in it), updating the localized in-app update…
pandulapeter/campfire
Retake Campfire's promotional images for every platform and form factor — the store listings (Play Store, App Store, Mac App Store, Microsoft Store), the Play Store feature graphic, Apple's product…
pandulapeter/campfire
Commit message conventions for the Campfire repo. An agent skill from pandulapeter/campfire.
Categories
Code style, commenting, and documentation conventions for the Campfire codebase. Code Style is an agent skill from pandulapeter/campfire. Code style, commenting, and documentation conventions for the Campfire codebase.
Code Style fits situations like: tasks that involve Agent instruction files.
Run `npx skills add pandulapeter/campfire --skill code-style -a claude-code`. Or copy the skill folder (.claude/skills/code-style in pandulapeter/campfire) into .claude/skills/code-style in your project. Claude Code loads it when a task matches its description.
Run `npx skills add pandulapeter/campfire --skill code-style -a codex`. Or copy the skill folder (.claude/skills/code-style in pandulapeter/campfire) into .agents/skills/code-style in your project. Codex loads it when a task matches its description.
Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add pandulapeter/campfire --skill code-style -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/code-style, .gemini/skills/code-style, .github/skills/code-style and .opencode/skills/code-style in your project.
Going by SKILL.md and its folder, Code Style needs the command-line tools its instructions call (git).
SKILL.md contains no URLs. Its commands use git, which can reach the network depending on how they are called. This is read from the text; nothing was executed.
Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.
Code Style is published under the MPL-2.0 licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 2.8k tokens (SKILL.md is roughly 11k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.
Skills that share tags, products or a category with Code Style: Docs Gardening (mhmzdev/the-holy-quran-app, 889 stars), Mine History (ZoneMinder/zmNinjaNg, 110 stars), Happier Profile And Optimize (happier-dev/happier, 1.9k stars) and Using Agent Skills (addyosmani/agent-skills, 103k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
pandulapeter (a GitHub user) maintains it in pandulapeter/campfire, which has 101 GitHub stars. The repository holds 5 skills in this directory. The repository was last updated on October 8, 2026.
Source: pandulapeter/campfire on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.