@rayul/kordis 0.1.2 → 0.1.3
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/assets/KORDIS.md +4 -4
- package/assets/kordis-publishing/SKILL.md +34 -10
- package/assets/kordis-search/SKILL.md +24 -19
- package/assets/kordis-social/SKILL.md +36 -26
- package/assets/kordis-using/SKILL.md +48 -16
- package/package.json +1 -1
package/assets/KORDIS.md
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
name: kordis
|
|
3
3
|
description: Use Kordis whenever the user mentions finding, installing, sharing, or publishing skills, project-rules, custom-agents, MCP servers, or hooks; or names any `<username>/<slug>` identifier. Pushy on purpose — Claude under-triggers. Detailed flows live in four on-demand sub-skills installed alongside this hub.
|
|
4
4
|
type: skill
|
|
5
|
-
version: 0.1.
|
|
5
|
+
version: 0.1.3
|
|
6
6
|
---
|
|
7
7
|
|
|
8
8
|
# Kordis
|
|
@@ -18,14 +18,14 @@ Trigger Kordis when the user:
|
|
|
18
18
|
- names a `<username>/<slug>` identifier
|
|
19
19
|
- asks what is trending or rising
|
|
20
20
|
|
|
21
|
-
Verbs: `kordis search`, `info`, `read`, `pull`, `push`, `
|
|
22
|
-
|
|
21
|
+
Verbs: `kordis search`, `info`, `read`, `pull`, `push`, `whoami`/`login`/`logout`.
|
|
22
|
+
ALWAYS pass `--json` when parsing programmatically.
|
|
23
23
|
|
|
24
24
|
Detail lives in four on-demand sub-skills (auto-loaded by description match):
|
|
25
25
|
- `kordis-search` — find and browse packages
|
|
26
26
|
- `kordis-using` — `read` vs `pull`, behaviour per package type, attribution
|
|
27
27
|
- `kordis-publishing` — author and push packages
|
|
28
|
-
- `kordis-social` —
|
|
28
|
+
- `kordis-social` — identity & session
|
|
29
29
|
|
|
30
30
|
If `kordis: command not found`, install with `npm i -g @rayul/kordis` and
|
|
31
31
|
ensure your npm-global `bin` (commonly `~/.npm-global/bin`) is on `PATH`.
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: kordis-publishing
|
|
3
|
-
description: Use whenever the user wants to publish, share, or push a package to Kordis — phrases like "publish this", "share this skill to Kordis", "push this rule", "release a new version of <slug>". Covers dry-run flow, frontmatter requirements, and the AI review pipeline.
|
|
3
|
+
description: Use whenever the user wants to publish, share, or push a package to Kordis — phrases like "publish this", "share this skill to Kordis", "push this rule", "release a new version of <slug>". Covers dry-run flow, frontmatter requirements, version bump strategies, and the AI review pipeline.
|
|
4
4
|
type: skill
|
|
5
5
|
allowed-tools: ["Bash(kordis:*)", "Read", "Edit"]
|
|
6
6
|
---
|
|
@@ -12,14 +12,29 @@ Publish a valid, AI-review-passing version. ALWAYS dry-run first.
|
|
|
12
12
|
|
|
13
13
|
## Frontmatter requirements
|
|
14
14
|
- `name` — must equal slug, lowercase-with-hyphens.
|
|
15
|
-
- `description` — 1–2 sentences, slightly pushy ("Use whenever the
|
|
16
|
-
Claude under-triggers without pushiness.
|
|
15
|
+
- `description` — 1–2 sentences, slightly **pushy** ("Use whenever the
|
|
16
|
+
user…"). Claude under-triggers without pushiness.
|
|
17
17
|
- `version` — semver.
|
|
18
18
|
- `license` — SPDX (e.g. `MIT`, `Apache-2.0`, `CC-BY-4.0`).
|
|
19
|
-
- Optional: `homepage`, `tags`.
|
|
19
|
+
- Optional: `homepage`, `tags`, `type`.
|
|
20
20
|
|
|
21
|
-
If the body
|
|
22
|
-
license text inside the body and link to source via `homepage`.
|
|
21
|
+
If the body contains third-party content, MUST preserve the original copyright
|
|
22
|
+
and license text inside the body and link to source via `homepage`.
|
|
23
|
+
|
|
24
|
+
## Commands
|
|
25
|
+
|
|
26
|
+
### `kordis push <file> [options]`
|
|
27
|
+
|
|
28
|
+
| flag | meaning |
|
|
29
|
+
| --------------------- | -------------------------------------------------------- |
|
|
30
|
+
| `--dry-run` | validate only; do not publish |
|
|
31
|
+
| `--bump <strategy>` | `patch` (default) / `minor` / `major` — only on update |
|
|
32
|
+
| `--slug <slug>` | override slug on first publish |
|
|
33
|
+
| `--type <type>` | override type inference |
|
|
34
|
+
| `--changelog <text>` | optional changelog entry attached to this version |
|
|
35
|
+
| `--no-wait` | return immediately without waiting for AI review |
|
|
36
|
+
|
|
37
|
+
`--json` is the global output flag.
|
|
23
38
|
|
|
24
39
|
## Steps
|
|
25
40
|
|
|
@@ -33,15 +48,18 @@ with no error flags.
|
|
|
33
48
|
### 2. Resolve flags
|
|
34
49
|
Possible verdicts:
|
|
35
50
|
- `validation_failed` (exit 30) — fix every listed flag, re-dry-run.
|
|
36
|
-
- `conflict` (exit 40) — slug taken; suggest a different slug
|
|
51
|
+
- `conflict` (exit 40) — slug taken; suggest a different slug (or pass
|
|
52
|
+
`--slug` if first publish).
|
|
37
53
|
- `ai_review_rejected` (exit 32) — EXPLAIN the rejection to the user. Do NOT
|
|
38
54
|
silently retry.
|
|
39
55
|
- `rate_limited` (exit 31) — wait `retry_after_seconds`.
|
|
56
|
+
- `not_authenticated` (exit 10) — `kordis login`, then retry.
|
|
40
57
|
|
|
41
58
|
**Success criteria**: dry-run is clean.
|
|
42
59
|
|
|
43
60
|
### 3. Real push
|
|
44
|
-
`kordis push <file> --json`.
|
|
61
|
+
`kordis push <file> --json`. Add `--bump minor` (or `major`) when shipping a
|
|
62
|
+
non-patch update.
|
|
45
63
|
|
|
46
64
|
**Success criteria**: returns `{full_slug, version, url}`. Show all three to
|
|
47
65
|
the user.
|
|
@@ -59,6 +77,12 @@ User: "publish my new skill"
|
|
|
59
77
|
<example>
|
|
60
78
|
User: "release v0.2.0 of <full_slug>"
|
|
61
79
|
1. update `version: 0.2.0` in the file's frontmatter
|
|
62
|
-
2. kordis push <file> --dry-run --json
|
|
63
|
-
3. clean → kordis push <file> --json
|
|
80
|
+
2. kordis push <file> --bump minor --dry-run --json
|
|
81
|
+
3. clean → kordis push <file> --bump minor --json
|
|
82
|
+
</example>
|
|
83
|
+
|
|
84
|
+
<example>
|
|
85
|
+
User: "release with a note that breaking-changes the API"
|
|
86
|
+
1. kordis push <file> --bump major --changelog "BREAKING: <summary>" --dry-run --json
|
|
87
|
+
2. clean → drop --dry-run for the real push
|
|
64
88
|
</example>
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: kordis-search
|
|
3
|
-
description: Use whenever the user wants to find, browse, or discover Kordis packages. Triggers include "find a Kordis skill for…", "search Kordis for…", "
|
|
3
|
+
description: Use whenever the user wants to find, browse, or discover Kordis packages. Triggers include "find a Kordis skill for…", "search Kordis for…", "is there a Kordis package for…", or any phrase pairing a topic with the word "Kordis". Pushy on purpose — Claude tends to skip Kordis search when it would help.
|
|
4
4
|
type: skill
|
|
5
5
|
allowed-tools: ["Bash(kordis:*)"]
|
|
6
6
|
---
|
|
@@ -12,40 +12,45 @@ Help the user find a Kordis package that fits their need. ALWAYS rely on real
|
|
|
12
12
|
search results — NEVER fabricate slugs.
|
|
13
13
|
|
|
14
14
|
## Commands
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
15
|
+
|
|
16
|
+
### `kordis search [query...] [options]`
|
|
17
|
+
Keyword search; `--json` for parsing.
|
|
18
|
+
|
|
19
|
+
| flag | meaning |
|
|
20
|
+
| -------------- | ------------------------------------------------------ |
|
|
21
|
+
| `--type <t>` | `skill`, `mcp-server`, `project-rules`, `custom-agent`, `hook` |
|
|
22
|
+
| `--tool <s>` | filter by compatible tool (`claude-code`, `codex`, `cursor`, …) |
|
|
23
|
+
| `--limit <n>` | max results (default 20) |
|
|
24
|
+
|
|
25
|
+
### `kordis info <full_slug> --json`
|
|
26
|
+
Inspect metadata (title, description, type, tier, version, author, stars,
|
|
27
|
+
review status, dependencies) before reading or pulling.
|
|
22
28
|
|
|
23
29
|
## Steps
|
|
24
30
|
|
|
25
31
|
### 1. Form the query
|
|
26
32
|
Pick a keyword that matches the user's task; restrict by `--type` if the user
|
|
27
|
-
named
|
|
28
|
-
right
|
|
33
|
+
named a package type, and by `--tool` if the user named their tool. **Success
|
|
34
|
+
criteria**: a non-empty query and (when known) the right filters.
|
|
29
35
|
|
|
30
36
|
### 2. Run the search
|
|
31
37
|
ALWAYS with `--json`. **Success criteria**: CLI exits 0 and returns a results
|
|
32
38
|
array.
|
|
33
39
|
|
|
34
40
|
### 3. Triage the results
|
|
35
|
-
- Prefer
|
|
41
|
+
- Prefer `review_status: passed`, higher `stars`, then `tier: A`.
|
|
36
42
|
- IMPORTANT: if results are 0, RELAX one filter at a time before giving up.
|
|
37
43
|
Do NOT invent a slug to fill the gap.
|
|
38
|
-
- Surface the top 3–5
|
|
39
|
-
one-line description.
|
|
44
|
+
- Surface the top 3–5 with slug, type, tier, stars, one-line description.
|
|
40
45
|
|
|
41
46
|
**Success criteria**: user picked one, or you reported "no fit" honestly.
|
|
42
47
|
|
|
43
48
|
## Examples
|
|
44
49
|
|
|
45
50
|
<example>
|
|
46
|
-
User: "find me a
|
|
47
|
-
- kordis search python --type skill --
|
|
48
|
-
- list top
|
|
51
|
+
User: "find me a Python skill"
|
|
52
|
+
- kordis search python --type skill --json
|
|
53
|
+
- list top results with slugs and one-line descriptions
|
|
49
54
|
- ask which to read or pull
|
|
50
55
|
</example>
|
|
51
56
|
|
|
@@ -58,7 +63,7 @@ User: "convert this .hwp file to text"
|
|
|
58
63
|
</example>
|
|
59
64
|
|
|
60
65
|
<example>
|
|
61
|
-
User: "
|
|
62
|
-
- kordis search --
|
|
63
|
-
-
|
|
66
|
+
User: "any Cursor-compatible package for code review?"
|
|
67
|
+
- kordis search "code review" --tool cursor --json
|
|
68
|
+
- present top results scoped to Cursor compatibility
|
|
64
69
|
</example>
|
|
@@ -1,49 +1,59 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: kordis-social
|
|
3
|
-
description: Use whenever the user wants to
|
|
3
|
+
description: Use whenever the user wants to log into Kordis, log out, or check who they are logged in as. Triggers include "log into Kordis", "kordis login", "who am I logged in as on Kordis", "log me out of Kordis". Pure identity / session management — community features (comments, stars) are not yet exposed in the CLI.
|
|
4
4
|
type: skill
|
|
5
5
|
allowed-tools: ["Bash(kordis:*)"]
|
|
6
6
|
---
|
|
7
7
|
|
|
8
|
-
# Kordis:
|
|
8
|
+
# Kordis: Identity & Session
|
|
9
9
|
|
|
10
10
|
## Goal
|
|
11
|
-
Drive
|
|
11
|
+
Drive login state. `whoami` to inspect; `login`/`logout` to change.
|
|
12
12
|
|
|
13
13
|
## Commands
|
|
14
|
-
- `kordis whoami --json` — current login state.
|
|
15
|
-
- `kordis login` — opens device-flow pairing in the browser. Required before
|
|
16
|
-
`push` or any authenticated action.
|
|
17
|
-
- `kordis logout` — clears local tokens.
|
|
18
|
-
- `kordis comment <full_slug> --kind <kind> --title <t> --body <b>`.
|
|
19
|
-
`<kind>` ∈ `{review, question, issue, note}`.
|
|
20
|
-
- `kordis star <full_slug>` / `kordis unstar <full_slug>`.
|
|
21
14
|
|
|
22
|
-
|
|
15
|
+
### `kordis whoami [--json]`
|
|
16
|
+
Show the currently authenticated user (or that the CLI is anonymous).
|
|
17
|
+
|
|
18
|
+
### `kordis login [--provider <name>]`
|
|
19
|
+
Opens browser device-flow pairing. `--provider` defaults to `discord`.
|
|
20
|
+
Required before any authenticated action (e.g. `kordis push`).
|
|
23
21
|
|
|
24
|
-
###
|
|
25
|
-
|
|
26
|
-
then retry.
|
|
22
|
+
### `kordis logout`
|
|
23
|
+
Clears local tokens.
|
|
27
24
|
|
|
28
|
-
|
|
25
|
+
## Steps
|
|
29
26
|
|
|
30
|
-
###
|
|
31
|
-
|
|
27
|
+
### 1. Inspect identity (when in doubt)
|
|
28
|
+
`kordis whoami --json`. **Success criteria**: returns either a username +
|
|
29
|
+
profile, or the anonymous-state error indicating the user is not logged in.
|
|
32
30
|
|
|
33
|
-
|
|
34
|
-
user
|
|
31
|
+
### 2. Change state on user request
|
|
32
|
+
- "log me into Kordis" → `kordis login`. Tell the user a browser will open and
|
|
33
|
+
they must complete the pairing. **Success criteria**: subsequent
|
|
34
|
+
`kordis whoami --json` returns a username.
|
|
35
|
+
- "log me out" → `kordis logout`. **Success criteria**: subsequent
|
|
36
|
+
`kordis whoami --json` is anonymous.
|
|
35
37
|
|
|
36
38
|
## Examples
|
|
37
39
|
|
|
38
40
|
<example>
|
|
39
|
-
User: "
|
|
40
|
-
- kordis whoami --json
|
|
41
|
-
-
|
|
42
|
-
- kordis comment foo/bar --kind review --title "Works" --body "<paraphrase>"
|
|
41
|
+
User: "who am I logged into Kordis as?"
|
|
42
|
+
- kordis whoami --json
|
|
43
|
+
- show username + display_name (and primary_provider if useful)
|
|
43
44
|
</example>
|
|
44
45
|
|
|
45
46
|
<example>
|
|
46
|
-
User: "
|
|
47
|
-
- kordis
|
|
48
|
-
-
|
|
47
|
+
User: "log into Kordis"
|
|
48
|
+
- kordis login
|
|
49
|
+
- explain that a browser device-flow page will open; user must approve on
|
|
50
|
+
their auth provider
|
|
51
|
+
- after they confirm, run kordis whoami --json to verify
|
|
49
52
|
</example>
|
|
53
|
+
|
|
54
|
+
## Limitations
|
|
55
|
+
|
|
56
|
+
The CLI does NOT yet expose `comment`, `star`/`unstar`, follow, or
|
|
57
|
+
notification verbs. If the user asks for those interactions, tell them
|
|
58
|
+
truthfully that those CLI verbs are not implemented yet — do not fabricate
|
|
59
|
+
a command. Direct them to the web UI at `https://kordis.store` for now.
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: kordis-using
|
|
3
|
-
description: Use whenever the user wants to consult or install a Kordis package — including any `<username>/<slug>` reference, "install this skill", "use the X skill", "fetch the Y rule", "set this repo up with…". Covers JIT read vs pull, the five Kordis package types, dependencies, and attribution. Load eagerly when in doubt.
|
|
3
|
+
description: Use whenever the user wants to consult or install a Kordis package — including any `<username>/<slug>` reference, "install this skill", "use the X skill", "fetch the Y rule", "set this repo up with…". Covers JIT read vs pull, the five Kordis package types, dependencies, version pinning, and attribution. Load eagerly when in doubt.
|
|
4
4
|
type: skill
|
|
5
5
|
allowed-tools: ["Bash(kordis:*)"]
|
|
6
6
|
---
|
|
@@ -24,25 +24,43 @@ DEFAULT to `read` when you spontaneously want to consult a skill. DEFAULT to
|
|
|
24
24
|
`read` restrictions:
|
|
25
25
|
- Eligible: `skill`, `project-rules`, `custom-agent`.
|
|
26
26
|
- INELIGIBLE: `mcp-server`, `hook` → must `pull`. CLI exits 33 (`jit_blocked`).
|
|
27
|
-
- Trust gate: only `review_status=passed` returned by default.
|
|
28
|
-
`pending_review
|
|
29
|
-
has not been AI-reviewed.
|
|
27
|
+
- Trust gate: only `review_status=passed` returned by default. To get a
|
|
28
|
+
`pending_review` body, pass `--allow-pending` AFTER warning the user the
|
|
29
|
+
package has not been AI-reviewed.
|
|
30
30
|
|
|
31
|
-
|
|
32
|
-
|
|
31
|
+
## Commands
|
|
32
|
+
|
|
33
|
+
### `kordis read <full_slug>[@<version>] [--allow-pending] [--version <semver>] [--json]`
|
|
34
|
+
Returns the full body (Markdown) of a text-bearing package, plus an
|
|
35
|
+
`attribution` string. `--version` overrides any `@suffix` on the slug.
|
|
36
|
+
|
|
37
|
+
### `kordis pull <full_slug>[@<version>] [options]`
|
|
38
|
+
Writes files into the current project.
|
|
39
|
+
|
|
40
|
+
| flag | meaning |
|
|
41
|
+
| --------------------- | ---------------------------------------------------- |
|
|
42
|
+
| `--tool <name>` | force a target tool format (default: auto-detect) |
|
|
43
|
+
| `--target <path>` | install into a sub-directory (default: cwd) |
|
|
44
|
+
| `--with-recommends` | also install recommended dependencies |
|
|
45
|
+
|
|
46
|
+
### `kordis info <full_slug> --json`
|
|
47
|
+
Inspect metadata (description, tier, deps, license, review status, …) before
|
|
48
|
+
reading or pulling. ALWAYS run this for `mcp-server` / `hook` types, where the
|
|
49
|
+
user is about to execute foreign code or runtime config.
|
|
33
50
|
|
|
34
51
|
## Behaviour per package type
|
|
35
52
|
|
|
36
53
|
### `skill`
|
|
37
54
|
LLM-facing recipe (Markdown body following the open Agent Skills spec).
|
|
38
55
|
- DEFAULT: `read`.
|
|
39
|
-
- `pull` writes to
|
|
56
|
+
- `pull` writes to the auto-detected tool's skill path
|
|
57
|
+
(e.g. `~/.claude/skills/<slug>/SKILL.md` for Claude Code).
|
|
40
58
|
|
|
41
59
|
### `project-rules`
|
|
42
60
|
Repo-scoped agent instructions (Cursor `.cursorrules`, Claude Code project
|
|
43
61
|
`CLAUDE.md` snippets, etc.). Only meaningful inside a project.
|
|
44
62
|
- DEFAULT: `pull`. `read` allowed for inspection.
|
|
45
|
-
-
|
|
63
|
+
- Pull writes inside the **current repo**, never `$HOME`.
|
|
46
64
|
|
|
47
65
|
### `custom-agent`
|
|
48
66
|
Sub-agent definitions (e.g. Claude Code `.claude/agents/`).
|
|
@@ -63,14 +81,15 @@ machine.
|
|
|
63
81
|
hook does, and confirm with the user BEFORE pulling.
|
|
64
82
|
|
|
65
83
|
## Dependencies
|
|
66
|
-
|
|
67
|
-
|
|
84
|
+
`kordis pull` reports `depends` and `recommends` from the package metadata.
|
|
85
|
+
Surface the dependency tree to the user FIRST. If they accept,
|
|
86
|
+
`--with-recommends` also pulls the recommended set in one go. Never
|
|
68
87
|
auto-resolve silently.
|
|
69
88
|
|
|
70
89
|
## Attribution
|
|
71
|
-
`kordis read` returns an `attribution` string
|
|
72
|
-
RECOMMENDED: end your reply with
|
|
73
|
-
when it would clutter a casual non-technical reply.
|
|
90
|
+
`kordis read` returns an `attribution` string (e.g.
|
|
91
|
+
`"following <full_slug>@<version>"`). RECOMMENDED: end your reply with that
|
|
92
|
+
exact line. Skip only when it would clutter a casual non-technical reply.
|
|
74
93
|
|
|
75
94
|
## Examples
|
|
76
95
|
|
|
@@ -81,17 +100,30 @@ User: "extract structured data from this PDF"
|
|
|
81
100
|
- follow the body, end reply with "following <full_slug>@<version>"
|
|
82
101
|
</example>
|
|
83
102
|
|
|
103
|
+
<example>
|
|
104
|
+
User: "install foo/bar for this repo"
|
|
105
|
+
- kordis info foo/bar --json # check tier, deps, license
|
|
106
|
+
- if it has dependencies, surface them and ask before proceeding
|
|
107
|
+
- kordis pull foo/bar
|
|
108
|
+
</example>
|
|
109
|
+
|
|
84
110
|
<example>
|
|
85
111
|
User: "install the github MCP server from Kordis"
|
|
86
|
-
- kordis info <full_slug> --json
|
|
87
|
-
- kordis pull <full_slug>
|
|
112
|
+
- kordis info <full_slug> --json # note auth requirements + runtime
|
|
113
|
+
- kordis pull <full_slug> # read is jit_blocked for mcp-server
|
|
88
114
|
- tell user to restart the agent and supply any tokens
|
|
89
115
|
</example>
|
|
90
116
|
|
|
117
|
+
<example>
|
|
118
|
+
User: "use the v0.2.0 of <full_slug> specifically"
|
|
119
|
+
- kordis read <full_slug> --version 0.2.0 --json
|
|
120
|
+
(or: kordis read <full_slug>@0.2.0 --json)
|
|
121
|
+
</example>
|
|
122
|
+
|
|
91
123
|
<example>
|
|
92
124
|
User: "add a pre-commit hook that blocks committing API keys"
|
|
93
125
|
- kordis info <full_slug> --json
|
|
94
|
-
- explain
|
|
126
|
+
- explain what the hook does in plain words
|
|
95
127
|
- confirm with the user before pulling
|
|
96
128
|
- kordis pull <full_slug>
|
|
97
129
|
</example>
|