TitusKirch
- 26 skills
- 0 followers
- 6 hours ago last updated
- ▌ Tldr · tituskirch bundleSummarises what just happened into a fixed section order — a TL;DR first, a middle named for what it carries, open items last — over one scope taken from the request, either the last answer, the task just finished, or the whole session. Reads the conversation, and the repo's own git state whenever the subject is work performed, so what changed is evidenced rather than remembered. Prints terminal text, writes no file, and never turns into a mode that reformats later answers. Use when the user wants a summary, recap, digest or overview of what happened, asks what changed or what is still open, or says things like "tldr", "summarise this session", "recap that", "give me the short version", "fasse das zusammen", "kurzfassung", "was ist offen".
- ▌ Issue · tituskirch bundleManages issues — create, update, search/list, and bulk — across GitHub (gh CLI), GitLab (glab CLI), Linear (MCP) or local issue files, with the active tracker and the host it talks to chosen per-repo by a committed config (.tituskirch-skills.json), self-hosted instances included. Drafts title and body from a free-text description plus session context, previews once, and creates only after confirmation; switches to plan-only when asked. Use when the user wants to create, open, update, or find an issue or ticket, mentions GitHub issues, GitLab issues or Linear, or says things like "open an issue", "create a ticket", "find the issue about X", "Issue erstellen", "Ticket anlegen".
- ▌ Decide · tituskirch bundleCloses the open decisions a run has already named by putting each one in front of the human as a select dialog — concrete options with the recommendation first, one question at a time, in dependency order, and a prose question where a decision has no distinct options. It drives whichever interview skill grillWith names, forcing the dialog form; with no engine configured it forms the questions itself and asks them as dialogs anyway. The answers go back where the context says they belong — an issue body, the artifact the decisions came from, or the terminal — previewed and confirmed first. Manually invoked only, never inside an unattended loop. Use when a run ended by listing open questions, decisions or trade-offs and the user wants to work through them, asks to decide, settle or answer them, or says things like "let's decide these", "ask me these as options", "entscheide die offenen Punkte", "frag mich das der Reihe nach".
- ▌ Release · tituskirch bundleDrives a repo's release-please flow to a shipped release — promotes the integration branch onto the release branch (config-gated), waits for the release PR release-please opens, validates it, and merges it. GitHub-only by decision, not by staging — release-please, the flow it drives, exists on no other forge, so a repo whose root `forge` key names another one is told why and the run stops. Invoke manually only — this skill never fires proactively, never merges without confirmation, and opens at most one pull request (the promotion PR, and only where configured to create it). Use when the user explicitly asks to cut, ship or publish a release, to merge the release-please PR, to promote dev onto main for a release, or says things like "ship the release", "cut a release", "merge the release PR", "Release machen", "Release veröffentlichen".
- ▌ Handoff · tituskirch bundleHands in-progress work from one agent or session to another through a structured handoff document committed to the repo under `.agents/handoffs/`, and resumes an existing handoff by its number. Captures goal, context gathered, progress, next steps and open questions in a document that assumes none of the writer's session, so the work can continue in a fresh session or on another machine. The resuming agent deletes the handoff once the work is finished — not when it reads it. Use when the user wants to hand off, park or pause work for another agent or session, to write or read a handoff, to continue handed-off work, or says things like "hand this off", "write a handoff", "continue handoff 0003", "resume the handoff", "übergib das", "fahre das fort".
- ▌ Vhs Demo · tituskirch bundleCreates and maintains a scripted, reproducible terminal-demo GIF for a CLI repo from a Charm VHS tape rendered headless via Docker — the .tape is the committed source of truth, the GIF a regenerated artifact. Use when the user wants to add, record, regenerate or tweak a terminal demo GIF for a kirchDev CLI repo (citty/Bun tools like envprism, forgemap), or asks about VHS tapes, demo.gif, or README terminal previews. Do not use for editing or optimising arbitrary existing GIFs.
- ▌ Write Docs · tituskirch bundleScaffolds, extends, and reconciles a project's `docs/` tree in the TitusKirch docs format — one stack-agnostic convention shared across all repos, ADRs included (append-only records in `docs/99.adr/`). Routes by state — scaffolds when `docs/` is missing, adds to the right section when it exists, reconciles pages when asked (never rewriting prose). Always previews a plan, writing only after confirmation. Use when the user wants to write, add, scaffold, or update documentation, set up docs/, document a feature, record or supersede an architecture decision, or says things like "write the docs", "add a docs page", "document this", "reconcile the docs", "write an ADR", "record this decision", "Doku schreiben", "docs aktualisieren". Also trigger proactively once a feature has cleared review and final approval — when the work is settled, not when implementation ends — to document the shipped result, and offer an ADR when a decision clearly earns one.
- ▌ Merge Deps · tituskirch bundleTriages and merges a repo's open dependency-bot pull requests — on GitLab, merge requests — selected strictly by author so no human's and no other bot's request is ever touched. On GitHub that author is the constant app/dependabot; on GitLab it is the one identity mergeDeps.gitlab.bot names, since Renovate is self-run there. Verifies each update on its own branch first, because such a request into an integration branch often runs no meaningful CI at all. Merging is opt-in per repo via mergeDeps.merge; mergeDeps.confirm (default major) then lets the low-risk tier ride that opt-in while major bumps wait for a human. Forge per-repo by config (root forge key) — GitHub via gh, GitLab via glab. Invoke manually only — never fires proactively and never opens a request. Use when the user asks to triage, review or merge Dependabot or Renovate requests, dependency updates or bumps, or says things like "merge the dependabot PRs", "Dependabot PRs mergen".
- ▌ Update Deps · tituskirch bundleUpdates a repo's dependencies across Node (npm / pnpm / bun), PHP (Composer), Rust (Cargo), Go (modules), container images (Dockerfile / Compose), GitHub Actions (workflows) and GitLab CI, monorepos included — minor by default, patch or major only when explicitly asked. Detects ecosystems from lockfiles and manifests, drives the repo's own updater or resolves refs itself, honours a release-age gate or an exact pin, and reports what is held and why. Always runs the advisory check, reporting what it cannot fix. Invoke manually only — plans first, writes after confirmation, never commits, pushes, opens a PR or merges. Use when the user wants to update, upgrade or refresh dependencies, bump packages, image tags, action refs or CI components, run taze, composer update, cargo update or go get, check for outdated packages or advisories, or says things like "update the deps", "upgrade the packages", "Abhängigkeiten aktualisieren", "Pakete updaten".
- ▌ Work Review · tituskirch bundleReviews a single tracked issue's pushed implementation across GitHub (gh), GitLab (glab), Linear (MCP) or local issue files as a fresh, independent agent — reads the issue's requirements and the pushed diff, adversarially checks whether the work is correct and complete, and writes a verdict that routes the issue to done (accepted), changes-requested (feedback, back to the implement loop), needs-human (escalation), or blocked. It never implements or fixes anything — review only. It also applies a human's verdict on a needs-human issue. Tracker, labels and the round cap come from the committed config (.tituskirch-skills.json). Use when the user wants to review, check, or sign off one specific issue's AI work, mentions an issue awaiting review, or says things like "review issue 42", "check the work on issue 42", "reviewe Issue 42", or gives a verdict on an escalated issue.
- ▌ Write Readme · tituskirch bundleGenerates project READMEs in the kirchDev house style — centered hero header with emoji + bold tagline, a one-liner code-snippet hook, feature bullets with prescribed section emojis, and standardized closing sections (Versioning, License). Use when the user asks to write, draft, scaffold, or regenerate a README.md for a kirchDev / IT-Dienstleistungen Titus Kirch repository, or when starting a new repo that needs its top-level README. Do not use for editing arbitrary unrelated READMEs.
- ▌ Pull Request · tituskirch bundleCreates a pull request — on GitLab, a merge request — from the current branch in the repo's own conventions, with an umbrella Conventional-Commits title and a body from the repo's own template. Forge per-repo by config (root `forge`) — GitHub via gh, GitLab via glab — against a host resolved per repo, self-hosted included. Presents the full plan first and creates only after confirmation; plan-only when asked. Updates your own existing PR instead of duplicating, and never touches PRs opened by others or automation. Recognises a branch stacked on another open PR's branch and bases the PR there rather than on the trunk, stopping where the chain cannot be read cleanly. Use when the user wants to open, create, or raise a pull request or merge request, mentions a PR/MR or a conventional PR, or says things like "open a PR", "create a pull request", "PR erstellen", "mach einen PR".
- ▌ Refine Issue · tituskirch bundlePrepares a single filed issue for the AI work loop across GitHub (gh), GitLab (glab), Linear (MCP) or local issue files — reads it against the repo as it stands today, flags an issue already solved or duplicated, finds the decisions an agent may not make for itself (an architectural choice, a trade-off the repo inherits, a dependency, a requirement too loose to verify), and closes them with the human by driving grilling one question at a time. The answers go back into the issue body, so the loop reads a settled brief. It never applies the ai-ready label itself — it reports that the issue has earned it and leaves the approval to the human. Use when the user wants to get an issue ready for an agent, asks whether an issue is ready to hand over, wants one refined, sharpened or its open questions settled, or says things like "is issue 42 ready", "refine issue 42", "Issue 42 vorbereiten", "Issue abklären".
- ▌ Atomic Commit · tituskirch bundleCommits the current session's working-tree changes as a series of atomic Conventional Commits in the repo's own detected conventions (scopes, types, commitlint rules, message language). Always presents the full plan first and commits only after confirmation; switches to plan-only when asked. Use when the user wants to commit session or feature work, mentions conventional or atomic commits, splitting changes into multiple commits, or says things like "how would you commit this", "just show me the plan", "don't commit yet", "nicht committen".
- ▌ Compact Readme · tituskirch bundleCompacts an existing, overstuffed README so the landing view reaches the install/run command in ~30 seconds without losing any information — detail moves into <details> blocks, sections merge, duplication is deduped, and the kirchDev house style is preserved. The complement to write-readme (which scaffolds a new README from scratch). Use when a README is too long/dense/repetitive and the user wants it tightened, condensed, decluttered, or made scannable. Do not use to create a new README.
- ▌ Prune Branches · tituskirch bundleReports a repo's stale branches grouped by why they are stale — merged into the integration branch (squash and rebase merges included), upstream gone, a closed PR that never merged, and no commits for 90 days — then deletes only what a human confirms. Local and remote branches list separately; a scope argument restricts a run to one side. Merged and upstream-gone form the default set; a closed PR and plain age are listed, never preselected. Protected branches are never offered. Forge chosen per-repo by config (root forge key) — GitHub via gh, GitLab via glab, against a host resolved per repo. Invoke manually only — never fires proactively and never deletes without an explicit yes. Use when the user wants to prune, clean up or list stale, merged or dead branches, asks which branches are safe to delete, or says things like "clean up the branches", "delete the merged branches", "Branches aufräumen", "alte Branches löschen".
- ▌ Prune Comments · tituskirch bundleFinds comments made redundant by the code beneath them — plain restatements, name echoes, banners, signature echoes — and reports them as removal candidates with each one's code line. Comments that carry what the code cannot state are protected — the why behind a decision, workarounds and invariants, TODO/FIXME/HACK, license headers and tool directives like eslint-disable or noqa. Defaults to the working diff, takes a whole path when named, never scanning a repo unasked. Presents candidates first, removing nothing without confirmation; edits comments only, never code, never commits or pushes. Use when the user wants to prune, clean up, audit or remove redundant, obvious, noisy or superfluous comments, asks which comments a file no longer needs, or says things like "clean up the comments", "remove the pointless comments", "Kommentare aufräumen", "überflüssige Kommentare entfernen".
- ▌ Work Implement · tituskirch bundleImplements a single tracked issue across GitHub (gh), GitLab (glab), Linear (MCP) or local issue files — claims it via the lifecycle label, implements on a branch (fresh from ready, or re-work from changes-requested after review feedback), runs the repo's checks, commits and PUSHES, and hands the issue to the review loop by advancing the label to review. It never reviews its own work — the separate work-review skill does that. Tracker, label lifecycle and branch strategy come from the committed config (.tituskirch-skills.json). Use when the user wants to work, implement, action or pick up one specific issue or ticket, mentions an ai-ready issue, or says things like "work issue 42", "arbeite Issue 42 ab", "implementiere Ticket X", or "address the review feedback on issue Y".
- ▌ Validate Skills · tituskirch bundleValidates agent skills against the Agent Skills specification — one named skill, or every skill in a repo — and reports what fails and where. Drives skills-ref, the standard's reference validator, rather than reimplementing the checks; where skills-ref cannot be obtained it reports the spec tier as unverified rather than passing a weaker hand-check off as green. Reports spec violations, client extensions (naming which of Claude Code, Cursor, Codex and OpenCode accept the field) and house-style deviations as distinct findings, never conflated. Names Anthropic's skill-creator as the adjacent quality tool it is, not a conformance validator. Use when the user wants to validate, check, lint or conformance-test a skill or SKILL.md, verify frontmatter against the spec, find skills that break the standard, or says things like "validate the skills", "check this skill against the spec", "is my SKILL.md valid", "Skills prüfen", "Skill validieren".
- ▌ Write Gitignore · tituskirch bundleMaintains a repo's .gitignore by driving the gitignore-sync CLI and supplying the judgement the CLI deliberately leaves open — which stacks a repo declares, which leftover lines are genuine project rules, which point at a missing stack, and which are ballast copied out of a generated block. Adopts a repo, migrates a grown hand-written file with the result verified against what git actually ignores rather than by a text diff, triages the free zone, fixes smothered "!" exceptions, and reports template candidates across a whole estate. The CLI owns every measurement and every write; the managed region is never hand-edited. Use when the user wants to write, fix, clean up, adopt or migrate a .gitignore, run gitignore-sync, audit repos for missing stacks, or says things like "sort out the gitignore", "migrate this gitignore", "which stacks does this repo need", ".gitignore aufräumen", "gitignore einrichten".
- ▌ Work Review Queue · tituskirch bundleDrains a repo's queue of issues awaiting AI review across GitHub (gh), GitLab (glab), Linear (MCP) or local issue files — selects every issue in review, then reviews each with a fresh, independent agent by delegating to work-review, routing each to done, changes-requested (back to the implement loop), needs-human, or blocked. Starts by reconciling issues whose PR a human merged or closed out-of-band. Honours a per-run cap, single-flight-locked with a lock separate from the implement loop's, so review and implement drains run concurrently. Use when the user wants to review, drain, or auto-review the pushed AI work, run the review loop, says things like "review the queue", "reviewe die Issues", "drain the review queue", or runs it under /loop.
- ▌ Write Contributing · tituskirch bundleWrites and maintains a repo's `CONTRIBUTING.md` in the house style — scaffolds one where none exists, reconciles an existing guide against the repo it describes. Every repo-specific statement is derived from the file that owns it (branch base from `pr.base`, the gate command from the root `verify` key, the commit convention from commitlint, intake links from `.github/ISSUE_TEMPLATE/`, the package manager from the lockfile) instead of retyped, so the guide cannot contradict the repo; hand-written prose is never rewritten. Previews a plan and writes only after confirmation. Use when the user wants to write, scaffold, fix, update or reconcile a contributing guide or `CONTRIBUTING.md`, says the guide is out of date or tells contributors the wrong branch, or says things like "write the contributing guide", "update CONTRIBUTING.md", "Contributing-Guide schreiben", "CONTRIBUTING aktualisieren". Not for READMEs or the `docs/` tree.
- ▌ Work Implement Queue · tituskirch bundleDrains a repo's queue of implementable issues across GitHub (gh), GitLab (glab), Linear (MCP) or local issue files — selects every issue that is ready or has changes requested, defers any whose prerequisite has not landed, orders the rest by priority (and, on a shared branch, by dependency), then implements each one to a pushed, reviewable state by delegating to work-implement. It hands each issue to the review loop (label review); the separate work-review-queue reviews them. Starts by reclaiming issues an earlier run crashed mid-implementation. Honours a per-run cap, runs sequentially or in parallel per config, single-flight-locked. Use when the user wants to batch-process, drain, or auto-implement the ready issues, run the implement loop, says things like "work the issues", "arbeite die Issues ab", "drain the queue", or runs it under /loop.
- ▌ Tituskirch Skills Config · tituskirch bundleCreates, reconciles, and drift-checks `.tituskirch-skills.json` — the committed, repo-root config the other TitusKirch skills read to pick forges, trackers, languages, and conventions per repo. Routes by state — guided setup when the config is missing or incomplete, desired-state reconcile against the schema when it exists, and a report-only drift check for config gone stale. Detects repo signals to propose defaults, previews a plan, and writes only after confirmation. Also fires proactively after a skill, scope, branch, or label is renamed or removed in the session, to catch the config drifting. Use when the user wants to set up, configure, onboard, fix, or drift-check the TitusKirch skills config, mentions `.tituskirch-skills.json`, or says things like "configure the skills", "set up the config", "onboard this repo", "check the config", "keep the config in sync", "skills config einrichten", "config reparieren".
- ▌
- ▌ Gamma · tituskirchThe third fixture skill — carries the worklock, plan and tldr blocks, and names the resolver without hosting the config block.