a-novel-kit
- 34 skills
- 0 followers
- 9 hours ago last updated
- ▌ Write Go · a-novel-kitBase Go conventions for EVERY Go repo in the a-novel and a-novel-kit orgs — naming, error handling, dependency policy, context, the format/lint discipline, time, and secrets. Load it for ANY Go work in either org, alongside the matching repo-kind skill: `write-go-service` (a-novel services) or `write-go-kit` (a-novel-kit libraries — `golib`, `jwt`). Pairs with `write-go-tests` and `document-code`. Not JS/TS, SQL (`write-sql`), Protobuf (`write-proto`), Dockerfiles (`write-dockerfiles`), or shell scripts (`write-bash-scripts`).
- ▌ Write SQL · a-novel-kitWrite, review, and maintain PostgreSQL SQL for Agora backend services. Use whenever creating or editing SQL — DAO query files (internal/dao/*.sql), schema migrations (internal/models/migrations/*.sql), or raw SQL embedded in Go: SELECT/INSERT/UPDATE/DELETE queries, DDL (tables, views, indexes, constraints), materialized views, pg_cron jobs.
- ▌ Monitor CI · a-novel-kitMonitor GitHub Actions CI runs on a pushed branch or open PR, classify failures, and fix them where safe. Use whenever waiting on CI, investigating a failing check, judging a failure real or flaky, or iterating a branch to green. Covers the Agora CI job map and the retry/fix loop. Pairs with open-pull-request (the post-push handoff) and git-conventions.
- ▌ Write Proto · a-novel-kitWrite, review, and modify Protobuf definitions for Agora backend services. Use whenever creating or editing .proto files — new RPCs, messages, shared types, enums, or breaking-change assessment. Covers internal/models/proto/ and the buf toolchain.
- ▌ Plan Feature · a-novel-kitThe planning and technical-design gate before any non-trivial implementation in the a-novel / a-novel-kit workspace. Use it when a change spans multiple repos, touches an architecture, data model, or client/server boundary, introduces a service, platform or library, weighs build-vs-buy, or is ambiguous about what to build. It captures the agreed design as a GitHub planning **issue** (Initiative / Epic / Task sub-issues), then hands off to repo-kind implementation skills. Skip trivial single-repo edits.
- ▌ Write Go Kit · a-novel-kitGo conventions for the a-novel-kit shared-library repos under `kit/` (`golib`, `jwt`, …) — the golib-stays-minimal bar, the stricter kit dependency policy, graduating a sub-package into its own community package, and kit test conventions. Load it to write or review Go there, or to decide whether something belongs in `golib` at all. ALWAYS load `write-go` alongside it; a-novel services use `write-go-service`. Pairs with `write-go-tests`, `document-code`, `manage-versions`. Not JS/TS, `kit/nodelib`, or `kit/workflows`.
- ▌ Write Svelte · a-novel-kit bundleSvelte 5 and SvelteKit conventions for a-novel frontend applications and shared components. Load it whenever creating, editing, reviewing, or debugging a .svelte file, .svelte.ts module, SvelteKit route/load/action/hook, Svelte package export, or Svelte compiler configuration. ALWAYS load `write-frontend` alongside it; add `write-frontend-tests` for tests or stories and `write-design-system` for uikit components or tokens.
- ▌ Document Code · a-novel-kitWrite and improve code documentation. Use whenever asked to document code, add comments, write a doc comment, annotate a function, document a package, explain a file's purpose, or clean up unclear or outdated comments — however phrased ("doc this"). Applies to Go, Bash/shell, YAML, Svelte, SQL, TypeScript, and other source or config files. Invoke before writing any documentation, even for one function.
- ▌ Triage Issues · a-novel-kitManual triage and board-grooming pass over open GitHub issues in the a-novel / a-novel-kit orgs. Use it when asked to "run triage", "groom the backlog", "prioritise the issues", or prep a planning meeting. It surveys both org "Tasks" boards, drains the `Triage` queue, sets Priority, Size, due dates and Status, and refines Backlog drafts. Trigger it MANUALLY. Pairs with plan-feature, which creates the issues.
- ▌ Write Openapi · a-novel-kitWrite, review, and maintain the OpenAPI 3.1 specification for Agora backend services. Use whenever editing openapi.yaml — adding endpoints, parameters, schemas, responses, or updating descriptions and examples. Covers the REST public API only; gRPC contracts belong to the write-proto skill.
- ▌ Plan UI Design · a-novel-kit bundleProduct UI/UX and design-system planning gate for browser interfaces. Use before creating or materially reshaping user flows, pages, navigation, forms, data views, interaction patterns, component families, visual foundations, design tokens, or product-facing interface content; also use when comparing visual directions or reviewing whether proposed UI is coherent, distinctive, accessible, reusable, and ready for implementation. Produces a rendered, testable design contract before `write-frontend` or `write-design-system` implementation.
- ▌ Write Frontend · a-novel-kit bundleBase frontend conventions for EVERY browser-facing repository in a-novel and a-novel-kit — semantic HTML, accessible CSS, strict TypeScript, browser security, performance, data/state boundaries, dependency policy, mandatory live-Storybook handoff, and validation. Load it for ANY HTML, CSS, TypeScript, browser API, platform-* application, uikit, Storybook, or nodelib-browser work. Load `plan-ui-design` before non-trivial user-flow, interaction, information-architecture, or visual-direction work. Pair with `write-svelte` for .svelte files, `write-frontend-tests` for frontend tests or stories, and `write-design-system` for tokens or reusable UI. Service REST clients under pkg/js also load `write-js-package`.
- ▌ Write Go Tests · a-novel-kitTest conventions for ALL Go code in the a-novel and a-novel-kit organizations — file/function naming, table-driven structure, mockery, assertions, parallelism, cross-package fixtures, helpers, coverage. Load it whenever writing or modifying a Go test file in a backend service OR a shared library. Pairs with `write-go`; layer-specific patterns live in `write-go-service`. Does NOT apply to JS/TS tests.
- ▌ Write Platform · a-novel-kit bundleApplication-architecture conventions for a-novel client-side PLATFORM repos (`app/platform-*`): SvelteKit route and server boundaries, app-owned screen composition, Storybook-first delivery, URL and browser-state ownership, secure sessions, localization, container health, and CI. Load it whenever creating, editing, reviewing, or debugging a platform application. ALWAYS load `write-frontend`; add `write-svelte` for Svelte/SvelteKit files and `write-frontend-tests` for tests or stories. Use `write-design-system` only when changing reusable uikit contracts.
- ▌ Git Conventions · a-novel-kitGit workspace hygiene (clean-tree pre-flight, pruning a scratch stack), branch naming, commit message format, and workflow conventions for Agora backend services. Use it whenever starting or finishing work in a checkout, creating a branch, writing a commit message, or grouping changes. Referenced by implement-feature and any other skill that touches git. Pair with attribute-ai-commits whenever an AI agent materially contributed to a commit.
- ▌ Manage Versions · a-novel-kitCross-repo version management for a-novel / a-novel-kit. Load it whenever a change spans repos that must stay version-compatible to merge — an unreleased `golib` or `pkg/go` dependency, a proto or REST contract change, a breaking change to a published symbol. Covers git-tag semver, exact `go.mod` pins, commit-SHA pseudo-versions, the dependency-releases-FIRST merge order (the consumer re-pins to the released tag), and staged rollouts. Pairs with `git-conventions`, `implement-feature`, `open-pull-request`, `write-*`.
- ▌ Prepare Release · a-novel-kitRun BEFORE cutting a release: it reads the commits since the last tag, proposes the version bump (`fix`/`chore`→patch, `feat` or an absorbable breaking change→minor; a major is never derived from commits — it is a planned `vX`-line initiative), and drafts the per-version migration guide (`docs/migrations/vX.Y.Z.md`) when consumers must act. Use it when asked "is this patch / minor / major?", "what changed since the last release?", or "does this need a migration guide?". ADVISORY — the human cuts the release; this never tags, pushes, or publishes.
- ▌ Use A Novel CLI · a-novel-kitCanonical reference for the `a-novel` CLI. ALWAYS load alongside any skill that runs tests, builds artifacts, releases, or starts/stops local services. Covers the groups `test`, `build`, `publish`, `repo` (repository config, rulesets, required checks), `run` (daemon-backed `start`/`kill`/`logs`/`env`/`volume`/`ui`) and `core` (daemon lifecycle). Prefer `a-novel <verb>` over raw commands; lint/format/generate live in pnpm scripts (`pnpm lint:go`, `pnpm format:go`), never in Makefiles — deleted from every repo.
- ▌ Write Go Service · a-novel-kitClean-architecture conventions for the a-novel backend SERVICES — `app/service-*`, `app/platform-*`, and any repo with the `cmd`/`internal/{config,lib,dao,core,handlers,models}`/`pkg` layout. Load it for Go work there: endpoints, schema changes, business logic, new layers, REST/gRPC handlers, DAO tests. Covers the layer split and import direction, the interface+implementation pattern, transaction scoping, OpenTelemetry, and the service security model. Load `write-go` alongside; `write-go-kit` is the a-novel-kit library counterpart.
- ▌ Write JS Package · a-novel-kitWrite, review, and maintain any Agora service's JavaScript/TypeScript REST client package. Use whenever creating or editing files under pkg/js/ — the published client library (pkg/js/rest/), its integration tests (pkg/js/test/rest/), or the package and build config. Covers API methods, type definitions, exports, and test cases.
- ▌ Choose Dependency · a-novel-kitDecide whether a need is met by the standard library, an existing dependency, a new third-party library, or an internal implementation — and which package to pick when importing. Use it whenever a change adds a library, weighs build-vs-buy, swaps an internal helper for a dependency (or back), or picks between competing packages. Feeds plan-feature's build-vs-buy section.
- ▌ Implement Feature · a-novel-kitImplement a change to an a-novel backend SERVICE repo using a layered branch strategy. Use whenever implementing a new API endpoint, schema change, business logic, or client update. Covers branch decomposition, per-branch testing, and backtracking. Run plan-feature first for non-trivial, multi-repo, or architectural work. Backend services only — not platform (frontend) repos.
- ▌ Open Pull Request · a-novel-kitPush a branch and open a GitHub pull request for Agora backend services. Use whenever shipping work — features, fixes, refactors, chores. Covers pre-flight checks, base branch, PR title and body, draft mode, and updating an existing PR instead of re-creating it. Pairs with git-conventions (commit/branch format) and monitor-ci (post-push CI).
- ▌ Register AI Agent · a-novel-kit bundleDiscover, programmatically verify, and register a GitHub-linked AI co-author identity. Use only when attribute-ai-commits reports status missing for the current agent, or when explicitly asked to add a new agent to the repository co-author registry. Publish the registry change through a pull request.
- ▌ Write Dockerfiles · a-novel-kitWrite, review, and maintain Dockerfiles and compose files for Agora backend services. Use whenever creating or editing anything in builds/ — Dockerfiles, podman-compose files, database init scripts, entrypoint scripts. Covers Go service, job, database, and standalone dev images, and the compose files wiring them together.
- ▌ Coordinate Landing · a-novel-kitVocabulary, invariants, and operator runbook for the cross-repo **landing saga**: how a multi-repo Epic lands atomically, recovers from a partial landing, rolls back, and releases through the `a-novel-kit/workflows` actions (merge-gate, epic-freeze, epic-rollback, release-train, the AGENT_KILL_SWITCH halt). Load it when a change spans several repos under one Epic. It owns the saga vocabulary and the **Epic Atomicity Rule**, and defers version mechanics to `manage-versions`, per-repo release mechanics to `prepare-release`.
- ▌ Write Bash Scripts · a-novel-kitWrite, review, and maintain Bash shell scripts for Agora backend services. Use whenever creating or editing any .sh file — test runners, build or publish scripts, entrypoints, env setup. Covers error handling, cleanup traps, argument validation, service readiness waits, and portability.
- ▌ Write Project Docs · a-novel-kitWrite and maintain root-level project docs — README.md, SECURITY.md, CONTRIBUTING.md — for any a-novel / a-novel-kit repo (services, golib, nodelib, workflows, stack CLI). Use it when scaffolding a new project's docs or updating one: new env var, badge, client or Docker section, security contact. Not CODE_OF_CONDUCT.md or in-source comments (document-code).
- ▌ Resolve Pr Feedback · a-novel-kitSurvey a pull request's state (CI, review threads, reviewer status) and work through reviewer feedback on any repo in the a-novel / a-novel-kit orgs. Use it when checking on an open PR, reading Copilot or human review comments, replying on or resolving a thread, re-requesting review, or answering comments under an issue. Pairs with plan-feature, which owns the issue body.
- ▌ Write Design System · a-novel-kit bundleDesign-system conventions for Agora uikit foundations and reusable frontend components — CSS design tokens, calculated scales, semantic aliases, typography, themes, accessibility, component APIs, mandatory live Storybook review and handoff links, package boundaries, and publication hygiene. Load for any tokens, fonts, icons, theme, Storybook foundation, or shared UI component change. Load `plan-ui-design` before non-trivial visual direction, interaction-pattern, component-family, or foundation architecture. ALWAYS load `write-frontend`; add `write-svelte` for Svelte components and `write-frontend-tests` for stories and tests.
- ▌ Attribute AI Commits · a-novel-kit bundleAdd GitHub-linked AI co-authors to Git commit trailers without inventing provider identities. Use whenever an AI agent that created or materially changed committed content writes, amends, or reviews a commit message. Trust the repository registry for known agents and defer missing-agent discovery to the register-ai-agent skill.
- ▌ Write Frontend Tests · a-novel-kit bundleFrontend test conventions for a-novel and a-novel-kit — Vitest unit tests, Testing Library DOM and Svelte component tests, Storybook stories and interaction tests, accessibility checks, and browser end-to-end tests. Load whenever adding or modifying frontend test/spec files, stories, fixtures, mocks, test configuration, or behavior that needs frontend coverage. ALWAYS load `write-frontend`; pair with `write-svelte` for Svelte targets and `write-design-system` for uikit.
- ▌ Write Github Actions · a-novel-kitWrite and maintain GitHub Actions workflows, composite actions (action.yaml), and repo CI config across the a-novel / a-novel-kit orgs. Use whenever adding or editing a workflow, a shared action in a-novel-kit/workflows, a CI job, a required check, or a ruleset.
- ▌ Plan Client Server Boundary · a-novel-kit bundlePlan responsibility boundaries between browser/app clients and backend services: trusted state, authorization, validation, invariants, atomic operations, workflow orchestration, evolvable data, retries, and performance. Load it with `plan-feature` whenever a feature adds or changes a public API, moves behavior between frontend and backend, composes several service calls, stores client-defined JSON, or introduces a long-running or paid operation.