The index of Agent Skills published by Timerise. Each skill is a self-contained repository that teaches an agent to build one production-grade module for a Next.js App Router app, on the customer's own stack, the way our engineers build it after shipping it many times. Agent Skills is an open format, so the same folder works in Claude Code, Codex CLI, Gemini CLI and the other skills-compatible agents.
The skills are how we build the standard modules of every custom booking system we deliver. They are written by our own senior engineers from six years of building booking systems: each one is a member of the team's own way of building a module they have shipped many times, written down, with the properties it has to hold stated as what the build and the tests verify. None of it is synthetic: no skill was generated by a model from a prompt. They are published so the code you receive from us is built on parts you can read, and so anyone running a skills-compatible agent can build on the same parts.
| Skill | Version | Builds | Backend |
|---|---|---|---|
ad-campaign-runbook |
0.1.0 | LinkedIn Ads campaign runbook for one blog post: a probe of what the site actually measures, a campaign structure sized by the budget and the platform minimum, ad copy traceable to the post, an organic companion post with author-only slots, UTMs, conversions and click-by-click Campaign Manager steps | No data store, markdown posts in the repository; analytics vendor and consent component behind a seam |
assistant-knowledge-sync |
0.1.2 | Site AI chat assistant kept in step with the site: a gap audit between pages and assistant, page copy moved into one data module the page and the assistant both read, the knowledge pack and searchable corpus, a site map derived from the sitemap source, routing and never-quote guardrails, unit tests and regex probes on routes and numbers | No data store, repository content; the host's prompt, knowledge, tools and probe modules behind a seam |
blog-markdown |
0.1.6 | File-based multilingual blog with localized slugs, tag pages, related posts, RSS, sitemap, hreflang and a CI content validator | Repository files, no CMS |
bookable-events |
0.1.0 | Capacity-limited events with Stripe payments: Checkout tickets, a refundable card hold on free events released on check-in and captured on no-show, staff check-in, refunds, event cancellation, one pure state machine with Stripe called only after commit | Firestore or Postgres behind an EventStore seam |
booking-kiosk |
0.1.5 | Self-service touchscreen kiosk: walk-up booking flow, on-screen keyboard, pay-at-counter or pay-by-QR, server-priced idempotent booking API, LAN failover contract | Backend- and payment-agnostic KioskBackend seam, Firestore reference implementation |
browser-extension-connector |
0.1.2 | Chrome MV3 connector for a web service with no usable public API: a MAIN-world tap on the page's own fetch and XHR, auth headers replayed only to their own origin, a bounded offline buffer, one polled endpoint carrying records up and commands down, PIN pairing, diagnostics | Host app behind a two-endpoint contract, the service behind an adapter seam |
calendar-scheduling-links |
0.1.2 | Self-hosted scheduling links: a public booking page per host and event type, weekly availability with date overrides, buffers and minimum notice, daily limits and group seats, Google and Microsoft calendar sync, e-mail with an ICS invite, reminders, reschedule and cancel by a private link, signed webhooks, an embed widget | Supabase or Firestore behind a SchedulingStore seam |
digital-signage |
0.1.12 | In-venue screens: media library, per-screen playlists, device pairing by PIN or URL, fullscreen TV player with stall recovery and health monitoring | Firestore or Supabase |
ecommerce-process-mining |
0.1.2 | Employee process mining for an e-commerce back office: a consented MV3 extension reading DOM events rather than pixels, a gap-capture form, an ingest route that scrubs before it stores, a batch AI pipeline writing per-role SOPs and a ranked automation shortlist | Postgres/Supabase with row-level security, or Firestore |
help-center-markdown |
0.2.16 | Markdown-backed help center: category, tag and article pages, ranked client-side search, locale fallback, JSON-LD, sitemap, CI content validator | Repository files, no CMS |
in-app-bug-reports |
0.1.0 | In-app bug reports filed as GitHub issues: reports with markdown and attachments saved under tenant policies first and delivered through an outbox with marker de-duplication, the issue's state mirrored back as the report's status, /reply comments as the only team replies a member sees, attachments that stay private behind sign-in, an operator view across tenants with bridge health, an assistant tool that drafts a report the member sends |
Postgres/Supabase with row-level security behind a BugReportsHost seam; GitHub behind an IssueTracker seam |
inboxparse |
0.1.0 | InboxParse email integration: a typed server-only V1 client, a webhook receiver verifying X-InboxParse-Signature over the raw body, a scheduled lookback sync that stores every email whether or not a webhook arrived, replies sent only after a person approves the exact text, email content never obeyed as instructions |
Postgres, Supabase or Firestore behind an InboxStore seam |
invoicing |
0.1.2 | VAT invoicing: gapless numbering per series and year stamped inside the insert, invoices issued standalone or from a sale, correcting invoices with signed deltas, seller and buyer snapshots, immutability after issue, a register, an A4 PDF from a dependency-free writer, an optional bridge to KSeF through the ksef skill |
Postgres or in-memory behind a store seam; e-invoicing behind a port |
island-mode-server |
0.1.5 | On-premise fallback server: live RxDB replica of a site's Firestore slice, LAN takeover when the internet drops, idempotent reconnect flush, HMAC hardware auth | Firestore cloud, RxDB on the local box |
ksef |
1.2.5 | KSeF API 2.0 integration for Poland's mandatory e-invoicing: token auth, invoice encryption, interactive and batch sending, UPO receipts, purchase-invoice sync, QR codes | Postgres (Neon/Supabase) on Vercel |
ledger-wallet |
0.1.1 | Customer wallet as an append-only ledger with a balance per currency: Stripe Checkout top-ups, orders paid from the wallet, by card or split between them, a hold on the balance part until the card pays, refunds to source, staff adjustments with a reason, every movement keyed by a ref so a retry replays | Firestore or Postgres behind a store seam, one conformance suite for both |
linkedin-boost |
0.1.3 | Runbook for boosting one LinkedIn Company Page post that promotes a blog post: what a boost buys and what it cannot, a lifetime budget sized to the run, the image, post text and first comment with the link, founder reposts and network DMs, the Campaign Manager build the Boost button hides, a named person on every task, weekly decision rules and a date cascade when the publish date moves | No data store, markdown posts in the repository; people, conversion vocabulary and languages behind a seam |
site-pin-gate |
0.4.0 | Shared-PIN gate in front of a whole site from the proxy or middleware layer: one env var arms it, an unlock page sets an HMAC cookie, origin-resolved return path, attempt budget answering 429, a bypass list that keeps webhooks and cron working, the host's own locale resolver with right-to-left layout | No data store, one cookie; attempt store, locale resolver and bypass list behind seams |
skill-eval-loop |
0.1.1 | For skill maintainers: a skill hardened from its automatic agent evals, each run scored against a fixed fidelity rubric read from the agent's log, each deviation fixed at its root cause in the skill, a patch release per round, repeated until every agent scores full | No data store, the target skill's repository and its eval runs via the gh CLI |
slack-ai-bot |
0.1.1 | Two-way Slack AI bot: mentions, DMs and thread follow-ups answered by a model with tools scoped to the asking user, app-initiated reports, Approve and Cancel buttons whose click runs the side effect exactly once, raw-body signature verification, 3-second ack | Backend-agnostic BotHost seam, Postgres/Supabase and in-memory stores |
stripe-connect-subscriptions |
0.1.8 | Stripe Connect marketplace settlement and platform subscription billing: split charges, escrow and reserves, account onboarding, off-session billing with dunning, ledger reconciliation | Backend-agnostic store adapter |
visit-logger |
0.1.2 | Server-side log of who opened a shared resource, from where and on what: a page-view filter that drops prefetches and Server Actions, bot detection past the framework's list, edge geolocation, NULL-safe repeat-visitor matching, sittings, first-open announcements, admin panels | Postgres/Supabase or Firestore behind a VisitStore seam |
The version is each skill's latest release as recorded in its CHANGELOG.md; the skill's own repository is
the authoritative copy and carries the full feature list. Every skill is versioned on its own line under one
release standard: a vX.Y.Z tag, a chore(release): X.Y.Z commit, a Keep a Changelog entry in
CHANGELOG.md, and a GitHub Release per tag carrying that entry. More skills are coming shortly. Each is
published once the engineer who owns it has audited it against a module they have shipped, and listed here the
same day.
Watch this repository for additions.
The skills.sh CLI installs a skill into every skills-compatible agent it detects, including Claude Code, Codex CLI and Gemini CLI, with one command:
npx skills add timerise-ai/help-center-markdownName the agents instead with -a, for example npx skills add timerise-ai/ksef -a claude-code -a codex.
Nothing in a skill is Claude-specific. Each one is a plain Agent Skills folder,
SKILL.md plus markdown references with no file that calls a model, so cloning it into an agent's skills
directory is all an install is. For Claude Code, one skill:
git clone https://github.com/timerise-ai/help-center-markdown.git ~/.claude/skills/help-center-markdownAll of them:
for skill in \
ad-campaign-runbook \
assistant-knowledge-sync \
blog-markdown \
bookable-events \
booking-kiosk \
browser-extension-connector \
calendar-scheduling-links \
digital-signage \
ecommerce-process-mining \
help-center-markdown \
in-app-bug-reports \
inboxparse \
invoicing \
island-mode-server \
ksef \
ledger-wallet \
linkedin-boost \
site-pin-gate \
skill-eval-loop \
slack-ai-bot \
stripe-connect-subscriptions \
visit-logger; do
git clone "https://github.com/timerise-ai/$skill.git" ~/.claude/skills/"$skill"
doneTo scope a skill to a single project instead, clone it into that project's .claude/skills/ directory. For
another agent, clone into that agent's skills directory, or symlink the copy already cloned for Claude Code
so one git pull updates every agent. Update a skill with git pull in its directory.
A skill activates automatically when a task matches its description, for example "add a knowledge base with
search", "write a LinkedIn ads runbook for this post", "boost the company page post and move it to tomorrow",
"teach the site's chatbot about the new page", "pair a TV to a playlist", "make this markdown blog
multilingual", "charge a deposit when a guest doesn't show", "give every advisor a Calendly-style booking
link", "add a walk-up kiosk with counter payment", "keep the site taking bookings when the internet drops",
"hide the staging site behind a PIN until launch", "add a report-a-bug button whose reports land in GitHub
Issues", "tell me when the customer opens the proposal link", "store every email from the support inbox and
draft replies", "let the team ask our Slack bot about a booking", "get data out of a site that has no API",
"write down how the back office really handles returns", "issue a correcting invoice and print it as PDF",
"why is this invoice rejected with a 430", "let customers top up a balance and pay with it", "why is the
connected account never funded", "fix the skill based on its last evals". It can also be invoked explicitly
with its slash command (/ad-campaign-runbook, /assistant-knowledge-sync, /blog-markdown,
/bookable-events, /booking-kiosk, /browser-extension-connector, /calendar-scheduling-links,
/digital-signage, /ecommerce-process-mining, /help-center-markdown, /in-app-bug-reports,
/inboxparse, /invoicing, /island-mode-server, /ksef, /ledger-wallet, /linkedin-boost,
/site-pin-gate, /skill-eval-loop, /slack-ai-bot, /stripe-connect-subscriptions, /visit-logger).
Each host matches a task against the description its own way, so invoke a skill explicitly on a first run rather than assuming it fired. The non-negotiables each skill names are where models diverge most, so confirm the ones that matter for your module survived the build.
The skills share one layout, so an agent that has used one knows how to read the next:
| File | Contents |
|---|---|
SKILL.md |
Entry point: what the module is, the architecture, the critical facts, the hard rules, and a directory of the references below |
references/adaptation.md |
The seam contract with the host app, covering auth, tenancy, storage, styling, i18n and the domain rename, plus the module's non-negotiables. Where a skill keeps the seam in SKILL.md or its architecture reference instead, SKILL.md says so |
references/*.md |
One file per concern: data model, backend specifics, routes, UI, operations, extensions. Loaded on demand; the agent reads only what a task needs |
references/provenance.md |
The engineering ledger: what the audit of the earlier implementation changed and how the templates verify it, what was kept on purpose, and what is new in the skill. In ksef that record is the changelog |
assets/ |
Runnable files a reference points at rather than inlines: in ksef, the TypeScript examples for auth, crypto, the API client, sending and QR codes; in island-mode-server, the passing vitest suite covering HMAC verification, offline tokens, delta fold-out and failover rescan; in browser-extension-connector, the buildable extension tree with its manifest, sources, tests and packaging scripts |
CHANGELOG.md |
Semantic versioning |
evals/ |
What an operator types after installing (prompts.md), and one file per agent eval: the skill installed into an empty Next.js app, one prompt, no help, then type-checked, built and tested. EVALS.md has the newest run of every skill, and STANDARD.md how a run is made |
Three properties hold across the pack:
- Earned, not invented. A skill is not synthetic. It starts from what a senior engineer on the team
already knows how to build: a module they have shipped and reshipped over the years. Where it wraps
someone else's API, as
ksefwraps the Ministry of Finance's, it starts from that vendor's own specification, corrected against what integrating it taught us. Either way every odd-looking part is there for a reason, andprovenance.mdor the changelog records which one. - Portable across backends. The data layer sits behind an explicit seam. Firestore, Supabase/Postgres or a custom store adapter are described side by side; the host app's auth, tenancy, styling and i18n stay the host app's.
- A short list of non-negotiables. Each skill names the handful of rules that travel with the module because the module does not hold without them: hashed per-device tokens, summaries rather than whole corpora sent to the client, webhook idempotency, an invoice's seller NIP bound to the authenticating taxpayer. Everything else is adaptable.
We build custom booking systems that customers own outright: one fixed price, full code handoff, zero commission, delivered in weeks. Our delivery process runs from a project brief, through a clickable prototype and quote within 48 hours and a two-to-three-week AI-accelerated build, to full handoff with three years of support. It depends on the agent producing the repetitive parts correctly the first time so engineers spend their time on the business logic that makes a system yours. These skills are how the agent is told what "correctly" means for each module. When an engineer finds a better way to build a module on a project, the lesson goes back into the skill so the next project starts from it.
The stack the skills assume is the one we recommend and hand over: Next.js App Router, Supabase or Firebase, Vercel. See the Toolkit for the booking core these modules attach to: the open-source admin panel, booking pages and services catalog, and the API docs.
Issues and pull requests belong in the individual skill repositories. Skills are pure markdown with no build
step; code blocks in some skills are type-checked in CI, and a repository's CLAUDE.md, where it has
one, carries its editing conventions. Read references/provenance.md before simplifying anything.
To propose a new skill, open an issue here describing the module, the kind of system you have shipped it in, and the properties you have learned to build into it. To build one, follow STANDARD.md: the repository layout, the README shape, the writing rules and the release standard every skill in this index meets.
Built and maintained by Timerise, a small senior team from Wrocław, Poland, building custom booking systems you own.
Every skill in this index is released under the MIT License, as is this repository.