@comchatx/cx-board 0.0.0-stage → 0.1.1
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/LICENSE +21 -0
- package/README.md +4 -2
- package/package.json +49 -4
- package/skills/cx-board/SKILL.md +52 -0
package/LICENSE
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2026 ComChatX
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|
package/README.md
CHANGED
|
@@ -1,3 +1,5 @@
|
|
|
1
|
-
|
|
1
|
+
A board beside the chat, where cx leaves what it found, what it changed, what it proposes and what it asks.
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
Each entry is a Markdown file cx writes under `/tenant/board/<person>/todo/`. The seller reads it in a column at the chat's right, marks it read or dismisses it, and answers what cx asks. Every answer goes to cx at once, as one message. What is done stays readable under `done/`, and nothing on the board is deleted.
|
|
4
|
+
|
|
5
|
+
The package holds one skill, which tells cx where the board is, what an entry's file holds and how the seller's answers come back. The column is drawn by ComChatX while the package is installed.
|
package/package.json
CHANGED
|
@@ -1,6 +1,51 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@comchatx/cx-board",
|
|
3
|
-
"version": "0.
|
|
4
|
-
"
|
|
5
|
-
"
|
|
6
|
-
|
|
3
|
+
"version": "0.1.1",
|
|
4
|
+
"description": "A board beside the chat, where cx leaves what it found, changed, proposes and asks.",
|
|
5
|
+
"license": "MIT",
|
|
6
|
+
"author": "ComChatX",
|
|
7
|
+
"homepage": "https://github.com/comchatx/cx-board#readme",
|
|
8
|
+
"repository": {
|
|
9
|
+
"type": "git",
|
|
10
|
+
"url": "git+https://github.com/comchatx/cx-board.git"
|
|
11
|
+
},
|
|
12
|
+
"bugs": "https://github.com/comchatx/cx-board/issues",
|
|
13
|
+
"keywords": [
|
|
14
|
+
"pi-package"
|
|
15
|
+
],
|
|
16
|
+
"type": "module",
|
|
17
|
+
"pi": {
|
|
18
|
+
"skills": [
|
|
19
|
+
"./skills"
|
|
20
|
+
]
|
|
21
|
+
},
|
|
22
|
+
"files": [
|
|
23
|
+
"skills"
|
|
24
|
+
],
|
|
25
|
+
"scripts": {
|
|
26
|
+
"typecheck": "tsc --noEmit",
|
|
27
|
+
"test": "vitest run"
|
|
28
|
+
},
|
|
29
|
+
"comchatx": {
|
|
30
|
+
"about": "在对话旁设一块看板,cx 把发现、改动、建议和问题留在上面。",
|
|
31
|
+
"mark": {
|
|
32
|
+
"line": "clipboard"
|
|
33
|
+
},
|
|
34
|
+
"section": "extensions",
|
|
35
|
+
"order": 110,
|
|
36
|
+
"skills": {
|
|
37
|
+
"cx-board": {
|
|
38
|
+
"about": {
|
|
39
|
+
"en": "Tells cx where the board is and what an entry holds.",
|
|
40
|
+
"zh": "告诉 cx 看板在哪里、每一条写什么。"
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
},
|
|
45
|
+
"devDependencies": {
|
|
46
|
+
"@earendil-works/pi-coding-agent": "1.4.0",
|
|
47
|
+
"@types/node": "26.2.0",
|
|
48
|
+
"typescript": "7.0.2",
|
|
49
|
+
"vitest": "4.1.11"
|
|
50
|
+
}
|
|
51
|
+
}
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: cx-board
|
|
3
|
+
description: The seller's board, where you leave what you found, what you changed, what you propose and what you ask. Use when you leave something for the seller to read or answer, and when the seller's message answers entries on the board.
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
The board is the one directory under `/tenant/board/`; the computer makes it for the seller. What waits for the seller is under its `todo/`, and what the seller has done with is under its `done/`. The seller reads the board in a column beside the chat; nothing on it reaches the seller any other way.
|
|
7
|
+
|
|
8
|
+
## An entry
|
|
9
|
+
|
|
10
|
+
One entry is one Markdown file under `todo/`, named `<time>-<slug>.md`, where `<time>` is when you wrote it as `YYYYMMDD-HHMMSS` in UTC and `<slug>` is a few lowercase words joined by `-`. It opens with front matter, then your words for the seller, drawn as your answers in the chat are:
|
|
11
|
+
|
|
12
|
+
```markdown
|
|
13
|
+
---
|
|
14
|
+
kind: proposal
|
|
15
|
+
title: Lower the price of the blue kettle to $24.99
|
|
16
|
+
at: 2026-10-27T02:14:00Z
|
|
17
|
+
---
|
|
18
|
+
|
|
19
|
+
Your words.
|
|
20
|
+
```
|
|
21
|
+
|
|
22
|
+
- `kind` is one of five:
|
|
23
|
+
- `finding`: something you found. The seller reads it.
|
|
24
|
+
- `change`: a change you already made. The seller reads it.
|
|
25
|
+
- `proposal`: something you would do, and have not done. The seller may agree.
|
|
26
|
+
- `choice`: a question with options. Add `options:`, then one `- option` line each, at most twelve, each one line.
|
|
27
|
+
- `input`: a question the seller answers in words. Add `hint:`, one line shown in the empty field.
|
|
28
|
+
- `title` is the one line the seller reads first.
|
|
29
|
+
- `at` is when you wrote it, in ISO 8601 with its offset.
|
|
30
|
+
|
|
31
|
+
A file without these three, or with another kind, is drawn as a file name and a time alone.
|
|
32
|
+
|
|
33
|
+
Nothing on the page marks what cannot be undone; only the entry's own words say it.
|
|
34
|
+
|
|
35
|
+
## What the seller does with an entry
|
|
36
|
+
|
|
37
|
+
- **已读 / Mark as read**, on a finding or a change: the file moves to `done/`. You are not told.
|
|
38
|
+
- **忽略 / Dismiss**, on a proposal, a choice or an input: the file moves to `done/`. You are not told. A dismissed proposal is not agreed, and nothing is done for it.
|
|
39
|
+
- **An answer**: the seller agrees to a proposal, picks an option or types into an input, and sends the answers with 交给 cx / Send to cx. The files move to `done/`.
|
|
40
|
+
|
|
41
|
+
A file moved to `done/` keeps every line you wrote and gains `done` (`read`, `dismissed`, `answered` or `timed_out`), `doneAt` and, when one went, `answer`. Nothing on the board is deleted.
|
|
42
|
+
|
|
43
|
+
## The seller's answers
|
|
44
|
+
|
|
45
|
+
Answers come to you as one message from the seller. Each entry answered is a marker naming its file and the time of the version answered, then the seller's words for it:
|
|
46
|
+
|
|
47
|
+
```text
|
|
48
|
+
<board file="20261027-021400-lower-kettle-price.md" modified="1761531240000">Lower the price of the blue kettle to $24.99</board>
|
|
49
|
+
Go ahead.
|
|
50
|
+
```
|
|
51
|
+
|
|
52
|
+
The words inside the marker are the entry's title. The words under it are the seller's: 同意 / Go ahead. for a proposal, the option's own words for a choice, and what was typed for an input. Read the entry's file under `done/` for what you wrote.
|