Skip to content

jsifalda/ai-project-rules

 
 

Repository files navigation

instructions

Jiri's personal monorepo of AI-tool instructions: rules, skills, and slash commands consumed by Claude Code, Copilot CLI, Gemini CLI, Cursor, and any other agent that can read markdown.

Everything here is tool-agnostic where possible. Each AI tool picks up what it needs through its own loading mechanism (Claude Code via the sync hook, Cursor via @file references, Gemini CLI via its commands directory, etc.).

Repository layout

Path Purpose
rules/ Always-apply rule files (type: "always_apply" frontmatter) — coding standards, restrictions, writing style
skills/ Agent skills following the agentskills.io spec. Each subdir has a SKILL.md
gemini-cli/commands/ .toml slash commands for Gemini CLI (description + prompt with {{args}})
create-prd.md, generate-tasks.md, process-task-list.md, feature-request.md Standalone PRD workflow prompts (the original "AI Dev Tasks" pipeline)
CLAUDE.md / AGENTS.md Project instructions for AI tools. AGENTS.md is a symlink to CLAUDE.md
changelog.md Manually-maintained log of notable changes
_prds/, _tasks/, _tickets/ Generated outputs from the PRD workflow (gitignored)

How it gets into Claude Code & Copilot CLI

A SessionStart hook symlinks every skills/*/ folder into ~/.claude/skills/, so skills appear automatically inside Claude Code at every session start — no manual install step.

The canonical hook script lives in this repo at skills/setup-skills-autorefresh/scripts/sync-skills.js. It syncs whatever source folder is passed to it as an argument (and prunes symlinks for skills you've removed). Register it on a machine with the bundled setup-skills-autorefresh skill, which bakes the folder into the hook command in ~/.claude/settings.json:

bash skills/setup-skills-autorefresh/scripts/install.sh ~/instructions/skills
  • Copilot CLI uses a parallel script at ~/.copilot/hooks/sync-skills.js that copies (not symlinks, github/copilot-cli#1021) skills into ~/.copilot/skills/.

The hook script is the source of truth for the sync behaviour — read it directly if you need to debug.

Rules

Three always-apply files under rules/. Each carries type: "always_apply" frontmatter so AI tools that respect that convention load them on every interaction.

  • rules/general.md — core principles, coding standards, testing (TDD mandatory), restrictions, file-length limits, writing style, git commit format.
  • rules/builder.md — defaults for spinning up new applications (tech stack picks, scaffolding flow, verification protocol).
  • rules/design.md — frontend design thinking and aesthetics guidelines (originally from the Anthropic frontend-design plugin).

CLAUDE.md mandates rules/general.md is loaded first, before anything else.

Skills

Each skill is a directory under skills/ containing a SKILL.md with name, description, and (optional) metadata frontmatter, followed by the skill body. See the agentskills.io spec for the format. The table below lists every skill in the repo — keep it in sync when you add, remove, or rename one. Each skill name links to its SKILL.md; new rows should link the name to skills/<name>/SKILL.md the same way.

The Depends on column lists other skills in this repo that the skill invokes or requires to function ( if none). It is mandatory: every row must declare its dependencies. A skill that only points the reader to another skill ("use X instead") or is synced from an upstream repo does not "depend on" it — leave the cell .

Skill What it does Depends on
apple-mail-query Query the local Apple Mail (Mail.app) SQLite DB on macOS to list, search, count, or extract emails (read-only snapshot).
apple-mail-thread-export Export Apple Mail conversation threads from a sender into one markdown file per thread, with an incremental manifest so re-runs only write new or changed threads.
better-plan Chained planning ritual: enhance the request via prompt-enhancer, build a plan (plan-mode rigor), stress-test it via grill-me, then cost-route tasks via op; presents the routed plan, executes on approval, and recaps the run. Slash-only. grill-me, op, prompt-enhancer
claude-allow-home Mark a folder as trusted in Claude Code (sets hasTrustDialogAccepted), skipping the interactive trust prompt.
council Run a question or decision through a council of 5 AI advisors that analyze, peer-review, and synthesize a verdict.
create-codebase-docs Generate an engaging STARTHERE.md codebase guide (architecture, decisions, Mermaid diagrams) and wire up auto-update checks.
create-implementation-plan Generate a concise, machine-friendly implementation-plan template for engineering work.
create-skill Guide for authoring or updating a skill — SKILL.md structure, conventions, and validation.
create-svg-image Generate production-quality SVG images (banners, cards, OG images, badges) from a text description.
deep-research Conduct multi-source research with synthesis, citation tracking, and claim verification.
defuddle Extract clean markdown from web pages with the Defuddle CLI (strips clutter) to save tokens.
distill-notes Distill raw notes into a sharp set of standalone maxims (drop 40-60% of ideas, compress to <=8 words, sharpen into antithesis/couplets); returns them in chat, then asks whether to also save to a .md file.
distill-notes-v2 Process notes that mix facts with heuristics — organize the facts losslessly (grouped by category, deadlines flagged, every value verbatim) and distill the heuristics into sharpened maxims; returns both sections in chat, then asks whether to also save to a .md file.
distill-persona Distill a leader's worldview from interview transcripts into a reusable advisor persona.
first-principles-mode Strip a problem back to fundamental truths and rebuild the answer from only what's verifiable.
founder-thinking-mode Answer in a blunt founder-operator voice — the specific decision, the trade-off, and the real risk.
frontend-design Create distinctive, production-grade frontend UI that avoids generic AI aesthetics.
generate-prd-tasks Turn a PRD into a step-by-step developer task list (parent tasks + sub-tasks).
goal-breakdown Break a big finite goal into a sharp end state, ordered milestones (riskiest first), and one-day tasks with a single clear next action; re-plans as milestones complete.
grill-me Interview the user relentlessly about a plan or design until reaching shared understanding.
handoff Compact the current conversation into a handoff document for another agent to pick up. (synced from mattpocock/skills)
highlight-key-takeaways Highlight the key takeaways in an Obsidian note with ==highlight== syntax, in place.
indie-hacker-wrapup End-of-session ritual that mines the current session for X-worthy takeaways and drafts a build-in-public post (or declines when nothing clears the bar), remembering past angles so it never repeats one. write-like-human
json-canvas Create and edit JSON Canvas (.canvas) files — nodes, edges, groups, connections.
landing-page-copy Generate high-converting landing page copy in markdown from a short product description.
landing-page-gap-analyzer Audit landing page copy against a 13-section conversion blueprint and return a scored gap report. defuddle
markdown Create, refine, or convert content into strictly formatted, export-ready Markdown.
microsoft-clarity Add Microsoft Clarity analytics (heatmaps, session recordings) to a Next.js app.
nextjs-ga-tracking Add GA4 tracking with GDPR-compliant Silktide cookie consent to a Next.js project.
obsidian-bases Create and edit Obsidian Bases (.base) — views, filters, formulas, summaries.
obsidian-cli Interact with Obsidian vaults via the Obsidian CLI (read/create/search notes; plugin/theme dev + debug).
obsidian-markdown Create and edit Obsidian Flavored Markdown (wikilinks, embeds, callouts, properties).
obsidian-task-extractor Extract atomic tasks from a note and add them to To Remember.md.
op Route each task in a plan to the cheapest capable Claude model (Haiku/Sonnet/Opus), then execute by dispatching tasks as subagents on their assigned model.
pdf PDF toolkit — extract text/tables, create, merge/split, and fill forms at scale.
persona-levelsio Channel Pieter Levels (levelsio) as a solo bootstrapped indie-hacker advisor, grounded in his frameworks and build-in-public voice.
persona-luca Channel Luca Rossi (Refactoring newsletter) as an engineering-leadership advisor, grounded in his articles and named mental models.
persona-stanier Channel James Stanier as an engineering-leadership advisor, grounded in his blog posts and frameworks.
prd-creator Generate detailed PRDs in Markdown via a clarifying-questions interview.
prompt-enhancer Transform a simple prompt into a high-quality, structured one for better AI results.
prototype Build a throwaway prototype to flesh out a design, as a runnable terminal app or several toggleable UI variations. (synced from mattpocock/skills)
qmd-project Turn any folder into a folder-local qmd semantic index over its nested .md files (isolated from the global index, shared models) and ship a project-local qmd-ask skill that answers questions from it.
radical-feedback Diagnose and improve feedback with Kim Scott's Radical Candor framework, or generate well-structured feedback for a situation.
reddit-post Create high-engagement Reddit posts (title + body) from a guided questionnaire.
rewrite Improve, correct, or rephrase text in its own language (DeepL Write style) with Simple/Business/Academic/Casual styles and Enthusiastic/Friendly/Confident/Diplomatic tones. Improve mode loads the write-like-human ruleset first so default output reads human. write-like-human
seo-keyword-generator Generate a categorized SEO keyword strategy for a side project via a questionnaire.
setup-adrs Bootstrap an Architecture Decision Record (ADR) system in any project — ADR dir + template + seed ADR-0001, ARCHITECTURE.md recap, and an ADR policy injected into AGENTS.md/CLAUDE.md.
setup-aiengineering Bootstrap a repo's AI-engineering baseline — inject verification/git/file-org policy blocks into AGENTS.md/CLAUDE.md, delegate ADRs/changelog/user-scenarios to their setup skills, and scaffold a worktree bootstrap hook plus a detected .worktreeinclude. Stack-agnostic. setup-adrs, setup-changelog, setup-user-scenarios
setup-changelog Bootstrap a per-session changelog system in any project (creates changelog/, adds the policy to AGENTS.md/CLAUDE.md).
setup-rtk Install RTK (Rust Token Killer) on a machine for a single Claude Code profile — binary (Homebrew or official install script) + the rtk hook claude PreToolUse hook in settings.json, via RTK's own rtk init.
setup-skills-autorefresh Install the SessionStart hook that auto-syncs skills from a chosen folder into ~/.claude/skills/.
setup-user-scenarios Bootstrap a BDD user-scenarios inventory (docs/user-scenarios.md) + doc-sync policy in a project.
ship-pr Manual /ship-pr only — go from a dirty working tree to an open PR/MR (self-assigned to you) in one pass.
ship-v1 Ship the smallest live version of a side project in one weekend, post it, then let real signal decide whether to continue, pivot, or drop. An anti-roadmap protocol for unvalidated, zero-user products.
summarise-text Summarise pasted text, a local file, or an Obsidian note into main idea, takeaways, and an action plan.
summarise-url Fetch a link's content and return a structured summary.
sync-mattpocock-skills Sync a curated subset of skills from the mattpocock/skills GitHub repo, flattening its category dirs into the top-level skills/ folder.
sync-obsidian-skills Sync the Obsidian-related skills from the kepano/obsidian-skills GitHub repo.
team-code-writer Writer role for an agent dev team — implements features matching existing style and summarizes with file:line refs. Writes code only, no tests and no self-review.
team-reviewer Reviewer role for an agent dev team — read-only, runs git diff and reports Critical/Important/Nitpick findings with file:line, never edits.
team-ship Lead orchestrator — /team-ship <task> records the agent territories in the project's AGENTS.md/CLAUDE.md, writes a brief, dispatches the writer and tester in parallel then the reviewer on the diff, and collects one summary that produces a PR you approve. team-code-writer, team-tester, team-reviewer
team-tester Tester role for an agent dev team — writes tests from the spec, blind to the implementation, covering every branch, edge case, and error path.
translate-to-czech Translate English text to Czech while preserving accuracy.
write-like-human Apply a strict 17-rule style guide so prose reads as human, not AI-generated.

(Inside Claude Code you may also see skills loaded from other sources; this table covers the skills defined in this repo — ls skills/.)

The four team-* skills (an agent dev team — a writer, a reviewer, a tester, and a team-ship lead that runs them) are adapted from @zodchiii's post on X.

Gemini CLI commands

TOML slash commands under gemini-cli/commands/. Format:

description = "One-line description shown in /help"
prompt = """
Your prompt body. Use {{args}} where the user's input should be interpolated.
"""

Current commands: create-prd, feature-request, generate-changelog, process-task-list, summarise.

Gemini CLI reads from its own config path — symlink or copy this directory there to wire them up.

PRD workflow (legacy)

The original PRD → tasks → process pipeline this repo started as. Still usable as standalone prompts when you want a structured feature-development flow with manual review gates.

  1. create-prd.md — interview-driven PRD generation. Output: _prds/prd-[feature-name].md.
  2. generate-tasks.md — break the PRD into parent tasks, then sub-tasks (with a confirmation gate between them). Output: _tasks/tasks-[name].md.
  3. process-task-list.md — instructs the AI to work one sub-task at a time, waiting for approval, running tests, committing per parent task.
  4. feature-request.md — alternative entry point: skip the PRD and go straight from a feature request to a task list.

Usage in Claude Code / Cursor: reference the file with @create-prd.md (or your tool's equivalent) and let it drive.

Video demo of the original workflow on Claire Vo's "How I AI" podcast.

Contributing

Personal repo, but PRs welcome if something here is genuinely useful elsewhere. To add:

  • A skill: create skills/<name>/SKILL.md following the agentskills.io spec. It will be picked up by the sync hook on next session start. Add a matching row to the Skills table above, linking the name to skills/<name>/SKILL.md, and fill the Depends on cell — list every other repo skill this one invokes or requires, or if it is self-contained.
  • A rule: add rules/<name>.md with type: "always_apply" frontmatter.
  • A Gemini command: add gemini-cli/commands/<name>.toml. Add it to the Current commands list above.

Universality requirement: anything added here must be reusable by any reader — no personal data, secrets, employer names, internal URLs, or hardcoded identities. Full policy: rules/universality.md. After cloning, activate the pre-commit scanner once: bash scripts/install-hooks.sh.

Log notable changes in changelog.md using the existing YYYYMMDDTHHMM — Title format.

About

A simple task management system for managing AI dev agents

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages

  • Python 60.4%
  • JavaScript 19.3%
  • Shell 13.1%
  • CSS 3.8%
  • HTML 3.4%