skilldrop-cli 0.16.17 → 0.16.19

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.
@@ -1,120 +0,0 @@
1
- # {API / event stream name} — Developer reference
2
-
3
- **Base URL:** `{https://api.example.com/v1}`
4
- **Auth:** {e.g. "Bearer token in `Authorization` header; obtain via …"}
5
- **Versioning:** {e.g. "URL-path `/v1`; breaking changes ship a new path. See Changelog."}
6
- **Content type:** `application/json` unless stated.
7
-
8
- ## Conventions
9
-
10
- These apply to every endpoint/event below — read once, don't repeat per item.
11
-
12
- - **Errors** return this shape:
13
- ```json
14
- { "error": { "code": "string", "message": "human-readable", "details": {} } }
15
- ```
16
- - **Pagination:** {e.g. "cursor-based: pass `?cursor=`; response includes `next_cursor` (null on last page)"}
17
- - **Idempotency:** {e.g. "mutating calls accept an `Idempotency-Key` header; replays within 24h return the original result"}
18
- - **Rate limits:** {e.g. "600 req/min/token; `429` with `Retry-After` when exceeded"}
19
- - **Timestamps:** ISO 8601 UTC (`2026-05-26T14:30:00Z`).
20
-
21
- ---
22
-
23
- ## Endpoints
24
-
25
- ### `{METHOD} /{path}` — {one-line purpose}
26
-
27
- {One sentence on when a consumer calls this.}
28
-
29
- **Auth:** {required scope/role, or "none"}
30
-
31
- **Path / query params**
32
-
33
- | Param | In | Type | Required | Description |
34
- |---|---|---|---|---|
35
- | `{id}` | path | string | yes | {…} |
36
- | `{limit}` | query | integer | no | {default, max} |
37
-
38
- **Request body**
39
-
40
- | Field | Type | Required | Description |
41
- |---|---|---|---|
42
- | `{field}` | string | yes | {…} |
43
- | `{field}` | integer | no | {default} |
44
-
45
- ```json
46
- { "field": "value", "field2": 42 }
47
- ```
48
-
49
- **Response `200`**
50
-
51
- | Field | Type | Description |
52
- |---|---|---|
53
- | `{id}` | string | {…} |
54
- | `{status}` | enum(`a`,`b`) | {…} |
55
-
56
- ```json
57
- { "id": "abc_123", "status": "a", "created_at": "2026-05-26T14:30:00Z" }
58
- ```
59
-
60
- **Errors**
61
-
62
- | Status | `error.code` | When |
63
- |---|---|---|
64
- | `400` | `invalid_request` | {…} |
65
- | `404` | `not_found` | {…} |
66
- | `409` | `conflict` | {…} |
67
-
68
- ```json
69
- { "error": { "code": "not_found", "message": "No resource with id abc_123" } }
70
- ```
71
-
72
- ---
73
-
74
- ## Events / messages
75
-
76
- For each event a consumer subscribes to.
77
-
78
- ### `{event.name}` — {one-line: what happened}
79
-
80
- - **Emitted when:** {the trigger}
81
- - **Transport:** {e.g. "Kafka topic `orders.v1`" / "webhook POST to your callback URL" / "SNS topic ARN …"}
82
- - **Delivery:** {e.g. "at-least-once; consumers MUST be idempotent on `event_id`"}
83
- - **Ordering:** {e.g. "ordered per `partition_key = order_id`; no global order"}
84
-
85
- **Payload**
86
-
87
- | Field | Type | Required | Description |
88
- |---|---|---|---|
89
- | `event_id` | string (uuid) | yes | dedup key |
90
- | `occurred_at` | string (ISO 8601) | yes | when the fact happened (not when delivered) |
91
- | `data.{field}` | string | yes | {…} |
92
-
93
- ```json
94
- {
95
- "event_id": "evt_01HX...",
96
- "type": "{event.name}",
97
- "occurred_at": "2026-05-26T14:30:00Z",
98
- "data": { "order_id": "ord_123", "amount_cents": 4999 }
99
- }
100
- ```
101
-
102
- **Consumer notes:** {what a subscriber must handle — out-of-order arrival, schema evolution, poison messages}
103
-
104
- ---
105
-
106
- ## Error code catalog
107
-
108
- | `error.code` | Meaning | Consumer action |
109
- |---|---|---|
110
- | `invalid_request` | malformed input | fix and retry; don't blind-retry |
111
- | `rate_limited` | over quota | back off per `Retry-After` |
112
- | `conflict` | idempotency or state clash | inspect existing resource |
113
- | {…} | … | … |
114
-
115
- ## Changelog
116
-
117
- | Version / date | Change | Breaking? |
118
- |---|---|---|
119
- | `v1` — {YYYY-MM-DD} | initial | — |
120
- | {…} | … | yes/no |
@@ -1,72 +0,0 @@
1
- # {System / feature} — How it works
2
-
3
- **Who this is for:** {e.g. "an engineer joining the payments team" / "an adjacent team integrating with us"}
4
- **After reading, you'll be able to:** {concrete capability — "trace a checkout request end-to-end and know which service owns each step"}
5
- **Status:** describes the system as built on {YYYY-MM-DD}. For *why we chose this design*, see {link to ADRs / design-doc}.
6
-
7
- ## The mental model
8
-
9
- {One paragraph or one diagram. The single idea a reader must hold to understand everything below — e.g. "Every write goes through the command bus; reads come straight from a denormalized view. Nothing reads the write tables directly."}
10
-
11
- ```
12
- {Optional ASCII or Mermaid sketch — or link to an architecture-diagrams output. Keep it to the load-bearing boxes and arrows, not every box.}
13
- ```
14
-
15
- ## Components
16
-
17
- What each piece does and why it exists — not how to deploy it.
18
-
19
- | Component | Responsibility | Why it's separate |
20
- |---|---|---|
21
- | {name} | {one line — what it owns} | {what would break if it were merged into its neighbour} |
22
- | {…} | … | … |
23
-
24
- ## How a {request / event / job} flows through
25
-
26
- Trace one representative path step by step. This is the heart of the walkthrough.
27
-
28
- 1. **{Entry point}** — {what happens, which component, what data} → `{file or module:fn}`
29
- 2. **{Next hop}** — {…} → `{file:fn}`
30
- 3. **{…}** — {…}
31
- 4. **{Result}** — {what the caller gets back / what side effect lands}
32
-
33
- > Trace it yourself: {how to watch this flow live — a log query, a trace ID, a debug endpoint}.
34
-
35
- ## Key design decisions (and why)
36
-
37
- The non-obvious choices a reader will otherwise undo by accident.
38
-
39
- - **{Decision}** — {why; what was rejected}. {Link to the ADR if one exists.}
40
- - **{Decision}** — {…}
41
-
42
- ## Data & state
43
-
44
- - **Source of truth:** {where the canonical data lives}
45
- - **Derived / cached:** {what's a projection of it, and how it's kept in sync}
46
- - **What's NOT persisted:** {e.g. "session state is in memory; a restart drops it — by design"}
47
-
48
- ## Where the code lives
49
-
50
- | Concern | Path | Notes |
51
- |---|---|---|
52
- | {entry points / routes} | `{path}` | {…} |
53
- | {core logic} | `{path}` | start here when reading |
54
- | {data layer} | `{path}` | … |
55
- | {tests worth reading first} | `{path}` | the integration tests document the contract |
56
-
57
- ## Making common changes
58
-
59
- How to do the things a new contributor will need in week one.
60
-
61
- - **Add a {new endpoint / event / field}:** {the 2–4 places to touch, in order}
62
- - **Change {common thing}:** {…}
63
-
64
- ## Gotchas / sharp edges
65
-
66
- - ⚠️ {Non-obvious constraint that will bite — "the queue is at-least-once; handlers must be idempotent"}
67
- - ⚠️ {…}
68
-
69
- ## Glossary
70
-
71
- - **{Term}** — {definition in this system's context, not the generic one}
72
- - **{Term}** — {…}
@@ -1,109 +0,0 @@
1
- # {Project / component} — Setup guide
2
-
3
- **Goal:** {one sentence — the end state, e.g. "Run the API locally with a seeded database and answer a request on `localhost:3000`."}
4
- **Time:** ~{N} minutes
5
- **You'll have at the end:** {concrete artifact — "a running server, a seeded DB, and a passing health check"}
6
-
7
- ## Placeholders used in this guide
8
-
9
- Replace these everywhere they appear. Nothing else is a placeholder.
10
-
11
- | Placeholder | What to put | Where to get it |
12
- |---|---|---|
13
- | `<YOUR_API_KEY>` | {what it is} | {where to obtain it} |
14
- | `<DB_PASSWORD>` | {what it is} | {…} |
15
-
16
- ## Prerequisites
17
-
18
- Check each before starting — a failed setup is almost always a missing prerequisite.
19
-
20
- | Need | Version | Check it | If missing |
21
- |---|---|---|---|
22
- | {Node / Python / Docker / …} | `>= {x.y}` | `node --version` | {install link / command} |
23
- | {…} | … | `…` | … |
24
-
25
- ## Steps
26
-
27
- ### 1. {Imperative — e.g. "Clone the repo and enter it"}
28
-
29
- ```bash
30
- git clone {repo-url} && cd {repo-dir}
31
- ```
32
-
33
- **You should see:** {what success looks like — e.g. "a `package.json` in the directory: `ls package.json`"}
34
-
35
- ### 2. {Imperative — e.g. "Install dependencies"}
36
-
37
- ```bash
38
- {exact command — e.g. `npm ci`}
39
- ```
40
-
41
- **You should see:** {e.g. "`added 412 packages` with no errors"}
42
-
43
- ### 3. {Imperative — e.g. "Configure environment"}
44
-
45
- ```bash
46
- cp .env.example .env
47
- # then set:
48
- # API_KEY=<YOUR_API_KEY>
49
- # DB_PASSWORD=<DB_PASSWORD>
50
- ```
51
-
52
- **You should see:** {e.g. "`.env` exists and has no remaining `<…>` placeholders: `grep '<' .env` returns nothing"}
53
-
54
- ### 4. {Imperative — e.g. "Start dependencies"}
55
-
56
- ```bash
57
- {e.g. `docker compose up -d postgres`}
58
- ```
59
-
60
- **You should see:** {e.g. "`docker compose ps` shows postgres as `healthy`"}
61
-
62
- ### 5. {Imperative — e.g. "Run migrations and seed"}
63
-
64
- ```bash
65
- {e.g. `npm run db:migrate && npm run db:seed`}
66
- ```
67
-
68
- **You should see:** {e.g. "`Migrations complete (3 applied)` and `Seeded 12 rows`"}
69
-
70
- ### 6. {Imperative — e.g. "Start the service"}
71
-
72
- ```bash
73
- {e.g. `npm run dev`}
74
- ```
75
-
76
- **You should see:** {e.g. "`Listening on http://localhost:3000`"}
77
-
78
- ## Verify it works
79
-
80
- One end-to-end check that proves the whole setup, not just the last step.
81
-
82
- ```bash
83
- {e.g. `curl -s localhost:3000/health`}
84
- ```
85
-
86
- **Expected:** {e.g. `{"status":"ok","db":"connected"}`}
87
-
88
- If you get this, you're done.
89
-
90
- ## Troubleshooting
91
-
92
- | Symptom | Likely cause | Fix |
93
- |---|---|---|
94
- | {exact error text} | {what's actually wrong} | {command or step to fix} |
95
- | `ECONNREFUSED ...:5432` | Postgres not up yet | Re-run step 4; wait for `healthy` |
96
- | {…} | … | … |
97
-
98
- ## Teardown
99
-
100
- ```bash
101
- {e.g. `docker compose down -v`}
102
- ```
103
-
104
- Removes {what — "containers and the local volume; your `.env` is left intact"}.
105
-
106
- ## Next steps
107
-
108
- - {Where to go now — "Run the test suite: `npm test`"}
109
- - {Link to the design walkthrough or API reference for this project, if one exists}