@celsoft/coordinator 0.0.0 → 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +11 -0
- package/README.md +107 -0
- package/THIRD_PARTY_NOTICES.md +2005 -0
- package/agents/console.md +20 -0
- package/agents/free.md +110 -0
- package/build/0-JP6XL6LB.js +17 -0
- package/build/1-A52YZWNS.js +17 -0
- package/build/2-CLH2NM6F.js +32 -0
- package/build/3-4N467IB6.js +45 -0
- package/build/4-WL5H4LUW.js +29 -0
- package/build/_layout.svelte-KPUSX7LQ.js +27 -0
- package/build/_page.svelte-22H56UR6.js +7972 -0
- package/build/_page.svelte-CVWUNRQC.js +135 -0
- package/build/_page.svelte-LTZXBHMT.js +57 -0
- package/build/_server.ts-3KVBYN6P.js +20 -0
- package/build/_server.ts-3POPKVEM.js +47 -0
- package/build/_server.ts-5735T2V5.js +31 -0
- package/build/_server.ts-5VXGNWV2.js +38 -0
- package/build/_server.ts-645KP7WP.js +42 -0
- package/build/_server.ts-A3AA24Z2.js +28 -0
- package/build/_server.ts-CITUOEM6.js +58 -0
- package/build/_server.ts-I7HMTPOA.js +25 -0
- package/build/_server.ts-M5BQ4LLX.js +30 -0
- package/build/_server.ts-OB4O27HF.js +683 -0
- package/build/_server.ts-OJT7HE7M.js +15 -0
- package/build/_server.ts-OYGWVLZM.js +12 -0
- package/build/_server.ts-T75UVMQP.js +38 -0
- package/build/_server.ts-WYZYNHUZ.js +28 -0
- package/build/_server.ts-Z26EB47B.js +486 -0
- package/build/chunk-4CIG53L5.js +33 -0
- package/build/chunk-BJTJS3XY.js +338 -0
- package/build/chunk-F2CNWJZM.js +14 -0
- package/build/chunk-HGYE3UTU.js +416 -0
- package/build/chunk-KAYW2W7H.js +1311 -0
- package/build/chunk-LFP3UPCM.js +10 -0
- package/build/chunk-M44JEFEH.js +62 -0
- package/build/chunk-MC5AGLMY.js +39 -0
- package/build/chunk-NCZ77J5E.js +19798 -0
- package/build/chunk-NVNLDPUJ.js +2122 -0
- package/build/chunk-PDCON4KS.js +494 -0
- package/build/chunk-Q4OQNY5M.js +25 -0
- package/build/chunk-QCUOR2U5.js +75 -0
- package/build/chunk-R6RYZZWA.js +46 -0
- package/build/chunk-SOJTASZC.js +51 -0
- package/build/chunk-SU26PJVX.js +410 -0
- package/build/chunk-U5BSBG4R.js +506 -0
- package/build/chunk-UEKOZGRO.js +37 -0
- package/build/chunk-W6EFUWJ2.js +9 -0
- package/build/chunk-WOPREK6Q.js +117 -0
- package/build/chunk-WWJ3F4QS.js +127 -0
- package/build/chunk-ZGZJEEE3.js +1091 -0
- package/build/client/_app/immutable/assets/0.BGa5ZNDM.css +1 -0
- package/build/client/_app/immutable/chunks/BUrrLYDt.js +2 -0
- package/build/client/_app/immutable/chunks/BgFr_EyZ.js +4 -0
- package/build/client/_app/immutable/chunks/Bjy-W4x2.js +82 -0
- package/build/client/_app/immutable/chunks/C8qZab0y.js +56 -0
- package/build/client/_app/immutable/chunks/C90fLsA5.js +4 -0
- package/build/client/_app/immutable/chunks/CRzLMJPS.js +1 -0
- package/build/client/_app/immutable/chunks/DLT1iIlz.js +2 -0
- package/build/client/_app/immutable/chunks/pIrVVOVY.js +2 -0
- package/build/client/_app/immutable/entry/app.0DERehLW.js +3 -0
- package/build/client/_app/immutable/entry/payload.DSmR2FwN.js +2 -0
- package/build/client/_app/immutable/entry/start.B7srFiqh.js +3 -0
- package/build/client/_app/immutable/nodes/0.aD9vJoxR.js +2 -0
- package/build/client/_app/immutable/nodes/1.Br4FL91i.js +2 -0
- package/build/client/_app/immutable/nodes/2.vl6OYfu3.js +8 -0
- package/build/client/_app/immutable/nodes/3.VYqJOLAF.js +2 -0
- package/build/client/_app/immutable/nodes/4.jF9UVlFN.js +2 -0
- package/build/client/_app/version.json +1 -0
- package/build/client/apple-touch-icon.png +0 -0
- package/build/client/favicon.ico +0 -0
- package/build/client/favicon.svg +48 -0
- package/build/client/icon-192.png +0 -0
- package/build/client/icon-512.png +0 -0
- package/build/client/icon-maskable-512.png +0 -0
- package/build/client/icon.svg +44 -0
- package/build/client/manifest.webmanifest +15 -0
- package/build/error.svelte-JXZDY65F.js +51 -0
- package/build/handler.js +716 -0
- package/build/hooks.server-34IMHRKC.js +43 -0
- package/build/instance-NP3FJIWW.js +2967 -0
- package/client/client.mjs +28 -0
- package/client/hooks.mjs +7 -0
- package/client/register.mjs +5 -0
- package/dist/cli.js +62826 -0
- package/dist/port.js +36691 -0
- package/package.json +20 -1
- package/skills/agents/.claude-plugin/plugin.json +5 -0
- package/skills/agents/hooks/hooks.json +1 -0
- package/skills/agents/hooks/register.ts +57 -0
- package/skills/agents/skills/bus-work/SKILL.md +66 -0
- package/skills/agents/skills/plan/SKILL.md +98 -0
- package/skills/console/.claude-plugin/plugin.json +5 -0
- package/skills/console/hooks/hooks.json +1 -0
- package/skills/console/hooks/register.ts +10 -0
- package/skills/console/skills/bus/SKILL.md +61 -0
- package/skills/default/.claude-plugin/plugin.json +5 -0
- package/skills/default/skills/git-workflow/SKILL.md +294 -0
- package/skills/default/skills/git-workflow/mise-tasks/_lib.sh +107 -0
- package/skills/default/skills/git-workflow/mise-tasks/clone +36 -0
- package/skills/default/skills/git-workflow/mise-tasks/repo-list +8 -0
- package/skills/default/skills/git-workflow/mise-tasks/unpushed +26 -0
- package/skills/default/skills/git-workflow/mise-tasks/worktree-add +60 -0
- package/skills/default/skills/github/SKILL.md +208 -0
- package/skills/default/skills/github/scripts/gh-org +196 -0
- package/skills/default/skills/plan-page/SKILL.md +300 -0
- package/skills/default/skills/plan-page/assets/index.html +854 -0
- package/skills/default/skills/plan-page/scripts/inline +46 -0
- package/skills/default/skills/plan-page/scripts/stage +26 -0
- package/skills/default/skills/secrets/SKILL.md +134 -0
- package/skills/default/skills/secrets/scripts/secrets-check +87 -0
- package/skills/default/skills/writing-style/SKILL.md +45 -0
- package/skills/extra/.claude-plugin/plugin.json +5 -0
- package/skills/extra/skills/artifacts/SKILL.md +52 -0
- package/skills/extra/skills/github-actions/SKILL.md +78 -0
- package/skills/extra/skills/github-actions/scan +32 -0
- package/skills/extra/skills/markdown-review/SKILL.md +70 -0
- package/skills/extra/skills/markdown-review/assets/index.html +201 -0
- package/skills/extra/skills/markdown-review/scripts/stage +36 -0
- package/skills/extra/skills/mise-usage/SKILL.md +155 -0
- package/skills/extra/skills/plugin-authoring/SKILL.md +317 -0
- package/skills/extra/skills/project-conventions/SKILL.md +64 -0
- package/skills/extra/skills/questions/SKILL.md +156 -0
- package/skills/extra/skills/questions/assets/index.html +376 -0
- package/skills/extra/skills/questions/scripts/stage +26 -0
- package/skills/extra/skills/serve/SKILL.md +165 -0
- package/skills/extra/skills/serve/scripts/serve +268 -0
- package/skills/extra/skills/serve/scripts/server.py +345 -0
- package/skills/extra/skills/skill-dependencies/SKILL.md +65 -0
- package/skills/extra/skills/skill-maintenance/SKILL.md +101 -0
- package/skills/extra/skills/ticketing/SKILL.md +125 -0
|
@@ -0,0 +1,101 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: skill-maintenance
|
|
3
|
+
description: "How to create and maintain agent skills, both project-local and shared: invoke when a workflow changes, a skill is missing or outdated, or something documented in a skill is found to be wrong."
|
|
4
|
+
verified: 2026-10-31
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
# Skill Maintenance
|
|
8
|
+
|
|
9
|
+
> Scope: this skill owns an individual `SKILL.md`: its format, frontmatter, and lifecycle.
|
|
10
|
+
> For the structure around it (collection layout, naming, bundled scripts, local
|
|
11
|
+
> development, and the Claude Code plugin/marketplace variant), read **`plugin-authoring`**.
|
|
12
|
+
|
|
13
|
+
Skills are the authoritative documentation for how Claude does work in a repo. Keep them current.
|
|
14
|
+
|
|
15
|
+
## When to act
|
|
16
|
+
|
|
17
|
+
- A workflow, command, or process changed → update the relevant skill
|
|
18
|
+
- A skill is wrong or misleading → fix it immediately, then continue
|
|
19
|
+
- No skill covers something Claude just did or learned → create one
|
|
20
|
+
- A tool, dependency, or task was added or removed → update the relevant skill
|
|
21
|
+
|
|
22
|
+
Never leave a known-wrong skill in place. Fix it in the same session it's discovered, and every fix ends with [After every change](#after-every-change).
|
|
23
|
+
|
|
24
|
+
## Where skills live
|
|
25
|
+
|
|
26
|
+
Two kinds, and the difference decides what you must do after editing:
|
|
27
|
+
|
|
28
|
+
- **Project-local:** `.claude/skills/<name>/SKILL.md` in the repo being worked on. Loads from the working copy.
|
|
29
|
+
- **Shared:** a skill in a collection or plugin repo of its own, installed into `~/.claude/skills`, a plugin, or wherever that collection says. It loads from where it was installed, not from the copy you edit.
|
|
30
|
+
|
|
31
|
+
Editing a shared skill changes nothing until the change reaches where it is installed. See [After every change](#after-every-change): that step is mandatory.
|
|
32
|
+
|
|
33
|
+
## Skill file format
|
|
34
|
+
|
|
35
|
+
Each skill is a **directory** containing a `SKILL.md`:
|
|
36
|
+
|
|
37
|
+
```
|
|
38
|
+
.claude/skills/<name>/SKILL.md
|
|
39
|
+
```
|
|
40
|
+
|
|
41
|
+
The directory name is the skill name. A flat `<name>.md` is not picked up: it must be `<name>/SKILL.md`.
|
|
42
|
+
|
|
43
|
+
```markdown
|
|
44
|
+
---
|
|
45
|
+
name: kebab-case-name
|
|
46
|
+
description: One-line summary: what it does and when to use it
|
|
47
|
+
verified: YYYY-MM-DD
|
|
48
|
+
---
|
|
49
|
+
|
|
50
|
+
# Skill Title
|
|
51
|
+
|
|
52
|
+
...content...
|
|
53
|
+
```
|
|
54
|
+
|
|
55
|
+
Set `verified:` to today's date whenever you create or update a skill.
|
|
56
|
+
|
|
57
|
+
### Frontmatter must be strict YAML
|
|
58
|
+
|
|
59
|
+
Claude Code parses frontmatter leniently. Every other agent uses a strict YAML parser and
|
|
60
|
+
**silently skips a skill it cannot parse:** no error, the skill simply never appears.
|
|
61
|
+
|
|
62
|
+
**Quote the description whenever it contains `: ` (colon-space), `#`, or starts with
|
|
63
|
+
`"`, `'`, `[`, or `{`.** A plain scalar like this is invalid and will be dropped:
|
|
64
|
+
|
|
65
|
+
```yaml
|
|
66
|
+
description: Owns every decision: the entry point, the approval flow # BROKEN
|
|
67
|
+
description: "Owns every decision: the entry point, the approval flow" # correct
|
|
68
|
+
```
|
|
69
|
+
|
|
70
|
+
Verify before committing: run the collection's own tests where it has them, and check every
|
|
71
|
+
`SKILL.md` strictly (frontmatter present, `name` equal to its directory, and no plain value a
|
|
72
|
+
strict YAML reader would reject).
|
|
73
|
+
|
|
74
|
+
### Optional frontmatter
|
|
75
|
+
|
|
76
|
+
- `disable-model-invocation: true`: keep the skill invocable via `/<name>` but prevent Claude from auto-loading it. Use for manual-only skills.
|
|
77
|
+
- `allowed-tools: Bash(...)`: grant specific tool permissions while this skill is active, scoped to the skill's lifetime only.
|
|
78
|
+
|
|
79
|
+
## Writing good skills
|
|
80
|
+
|
|
81
|
+
- Write direct instructions, not background or commentary
|
|
82
|
+
- Document the *why* only when it's non-obvious
|
|
83
|
+
- Cover edge cases and failure modes, not just the happy path
|
|
84
|
+
- A skill that needs a task describes *how to call it*: the task itself is the implementation
|
|
85
|
+
|
|
86
|
+
## After every change
|
|
87
|
+
|
|
88
|
+
Any edit to a shared skill (new skill, reworded description, one-word typo fix) is not live until it is released and installed. Do all three steps, every time, without being asked:
|
|
89
|
+
|
|
90
|
+
1. **Commit it.** Never end a skill edit with the work sitting uncommitted:
|
|
91
|
+
- Stage the edited skill files: specific paths only, never `git add .`.
|
|
92
|
+
- Follow the repo's `CLAUDE.md` and the `git-workflow` skill for the rest: conventional message, committed without asking.
|
|
93
|
+
- Commit even a one-line fix, and even if the user didn't mention git.
|
|
94
|
+
|
|
95
|
+
2. **Install it.** Once the change is released the way its collection releases (merged to its default branch, a new plugin version), update the installed copy the way it was installed (`npx skills update`, `claude plugin update`, the collection's own install), never by hand-copying into `~/.claude/skills` or `~/.agents/skills`.
|
|
96
|
+
|
|
97
|
+
3. **Tell the user to restart Claude Code.** Say it explicitly as the last thing in the response, e.g. *"Restart Claude Code to load the change."* Do not restart it yourself, and do not claim the change is in effect before the restart: the running session still holds the old copy.
|
|
98
|
+
|
|
99
|
+
Order matters: commit as soon as the edits are written, install next, restart reminder last.
|
|
100
|
+
|
|
101
|
+
Project-local skills in `.claude/skills/` need no install (they load from the working copy at session start), but they still get a commit and a restart reminder.
|
|
@@ -0,0 +1,125 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: ticketing
|
|
3
|
+
verified: 2026-10-02
|
|
4
|
+
description: "MUST READ whenever the user asks to log, file, open, or create a bug, feature request, issue, or ticket (e.g. \"let's log a bug\", \"make a feature request\", \"file an issue for that\", \"ticket this\"), and before committing or opening a pull request for work that an issue tracks, so the tracker links and closes it. Default tracker is GitHub Issues on the current repo; a repo can override it (e.g. Jira) in its CLAUDE.md or AGENTS.md."
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
# Ticketing
|
|
8
|
+
|
|
9
|
+
This skill owns the issue lifecycle: filing a ticket, then tying every commit and pull
|
|
10
|
+
request for it back to the ticket so the tracker links the work and closes the ticket.
|
|
11
|
+
|
|
12
|
+
When the user asks to log a bug or feature, create the ticket straight away. Do not ask
|
|
13
|
+
where it goes, and do not ask for approval of the draft: the user wants it filed, not
|
|
14
|
+
discussed.
|
|
15
|
+
|
|
16
|
+
## Pick the tracker
|
|
17
|
+
|
|
18
|
+
1. **Explicit in the request.** "Log it in Jira", "file it on `org/other-repo`": use that.
|
|
19
|
+
2. **Repo override.** Read the current repo's `CLAUDE.md` and `AGENTS.md` for an
|
|
20
|
+
`## Issue tracking` section (format below). Use what it names.
|
|
21
|
+
3. **Default: GitHub Issues on the current repo**, parsed from the `origin` remote.
|
|
22
|
+
|
|
23
|
+
If none of these resolve (not in a git repo, `origin` is not on GitHub, or the named tracker
|
|
24
|
+
is unreachable), stop and ask. Never fall back to a different tracker on your own.
|
|
25
|
+
|
|
26
|
+
### Override format
|
|
27
|
+
|
|
28
|
+
A repo that does not use GitHub Issues for its own repo declares it once:
|
|
29
|
+
|
|
30
|
+
```markdown
|
|
31
|
+
## Issue tracking
|
|
32
|
+
|
|
33
|
+
- **Tracker:** Jira, project `ABC`
|
|
34
|
+
```
|
|
35
|
+
|
|
36
|
+
Other valid values:
|
|
37
|
+
|
|
38
|
+
```markdown
|
|
39
|
+
- **Tracker:** GitHub, repo `org/other-repo`
|
|
40
|
+
- **Tracker:** Jira, project `ABC`, bug type `Defect`, feature type `Task`
|
|
41
|
+
```
|
|
42
|
+
|
|
43
|
+
The first files on a different GitHub repo. The second is for a Jira project whose issue
|
|
44
|
+
type names differ from `Bug` / `Story`.
|
|
45
|
+
|
|
46
|
+
When the user says "we use Jira for this repo" (or similar), add this section to the repo's
|
|
47
|
+
`CLAUDE.md` so every later session knows.
|
|
48
|
+
|
|
49
|
+
## Write the ticket
|
|
50
|
+
|
|
51
|
+
Draw the content from the conversation: what broke, what was being built, what was said.
|
|
52
|
+
Follow the `writing-style` skill. Ask only if there is genuinely nothing to go on.
|
|
53
|
+
|
|
54
|
+
- **Title.** A plain statement of the problem or the capability, under about 70 characters.
|
|
55
|
+
- **Bug body.** What happens, what should happen, steps to reproduce, and any error text
|
|
56
|
+
verbatim in a code block.
|
|
57
|
+
- **Feature body.** The problem or need, then the proposed behavior.
|
|
58
|
+
- **Code references.** Link files with repo-relative paths and line numbers where known.
|
|
59
|
+
|
|
60
|
+
Leave out sections you have nothing for rather than filling them with placeholders.
|
|
61
|
+
|
|
62
|
+
## File it on GitHub
|
|
63
|
+
|
|
64
|
+
Route every `gh` call through the `github` skill's `scripts/gh-org` wrapper, so
|
|
65
|
+
it runs as the account with access to the org.
|
|
66
|
+
|
|
67
|
+
1. **Label.** Check which of the repo's labels exist, and use `bug` or `enhancement` only
|
|
68
|
+
if present. `gh issue create --label` fails on an unknown label; never create labels.
|
|
69
|
+
|
|
70
|
+
```bash
|
|
71
|
+
<github-skill>/scripts/gh-org run -- gh label list --json name --jq '.[].name'
|
|
72
|
+
```
|
|
73
|
+
|
|
74
|
+
2. **Create.** Pass the body through a file so quoting cannot mangle it:
|
|
75
|
+
|
|
76
|
+
```bash
|
|
77
|
+
<github-skill>/scripts/gh-org run -- gh issue create \
|
|
78
|
+
--title "<title>" --body-file <scratch-file> [--label bug]
|
|
79
|
+
```
|
|
80
|
+
|
|
81
|
+
Add `--repo <org>/<repo>` (and the org before `--`) when filing somewhere other than the
|
|
82
|
+
current repo.
|
|
83
|
+
|
|
84
|
+
3. **Report** the issue URL `gh` prints, and the account `gh-org` says it ran as.
|
|
85
|
+
|
|
86
|
+
## File it on Jira
|
|
87
|
+
|
|
88
|
+
Use the Atlassian connector (claude.ai's Atlassian MCP connector, enabled for the account).
|
|
89
|
+
|
|
90
|
+
1. `createJiraIssue` with the project key from the override, issue type `Bug` for bugs and
|
|
91
|
+
`Story` for features unless the override names others.
|
|
92
|
+
2. If the issue type is rejected, read the project's types with
|
|
93
|
+
`getJiraProjectIssueTypesMetadata`, pick the matching one, and add it to the override
|
|
94
|
+
so the next ticket gets it right first time.
|
|
95
|
+
3. Report the issue key and its URL.
|
|
96
|
+
|
|
97
|
+
## Link the work to the issue
|
|
98
|
+
|
|
99
|
+
Every commit and pull request for tracked work names its issue, so the issue's timeline
|
|
100
|
+
shows the work and the issue closes itself when the work lands. Never close an issue by
|
|
101
|
+
hand when a commit or PR can close it.
|
|
102
|
+
|
|
103
|
+
### On GitHub
|
|
104
|
+
|
|
105
|
+
- **Which issue.** The one the user named, the one filed or discussed this session, or
|
|
106
|
+
`gh issue list` when the work clearly matches an open one. Unsure: ask.
|
|
107
|
+
- **Partial work.** End the commit body with `Refs #N`; GitHub links the commit and leaves
|
|
108
|
+
the issue open.
|
|
109
|
+
- **Finishing work.** The commit that completes the issue ends its body with `Closes #N`
|
|
110
|
+
(`Fixes #N` for a bug); GitHub closes it when the commit reaches the default branch.
|
|
111
|
+
- **One line per issue.** A commit finishing two issues carries `Closes #12` and
|
|
112
|
+
`Closes #13` on separate lines; `Closes #12, #13` closes only the first.
|
|
113
|
+
- **Pull requests.** Put `Closes #N` in the PR description too; the issue closes when the
|
|
114
|
+
PR merges into the default branch, and a PR into any other branch closes nothing.
|
|
115
|
+
- **Another repo.** Write `org/repo#N`; a bare `#N` always means the current repo.
|
|
116
|
+
- **Subject line.** Keep the reference out of it; the subject says what changed.
|
|
117
|
+
- **Missed references.** Work already landed with no reference: close the issue with a
|
|
118
|
+
comment listing the commits that delivered it, short hash and subject each.
|
|
119
|
+
|
|
120
|
+
### On Jira
|
|
121
|
+
|
|
122
|
+
- **Key in the message.** Put the issue key, e.g. `ABC-123`, on the last line of the commit
|
|
123
|
+
body and in the PR title; the Jira GitHub integration links commits and PRs by key.
|
|
124
|
+
- **Closing.** A key alone never moves the issue; transition it with
|
|
125
|
+
`transitionJiraIssue` once the work lands on the default branch.
|