@passioncode-ai/passioncode 0.2.1 → 0.2.2

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.
Files changed (22) hide show
  1. package/CHANGELOG.md +12 -0
  2. package/family.json +1 -1
  3. package/package.json +1 -1
  4. package/payload/.claude-plugin/marketplace.json +2 -2
  5. package/payload/manifest.json +8 -8
  6. package/payload/plugins/fabric-agent-adapter/.claude-plugin/plugin.json +1 -1
  7. package/payload/plugins/fabric-agent-adapter/skills/adapting-projects-to-fabric/SKILL.md +3 -3
  8. package/payload/plugins/fabric-agent-adapter/skills/adapting-projects-to-fabric/scripts/adapt_project.py +2 -2
  9. package/payload/plugins/fabric-agent-adapter/skills/building-fabric-services/SKILL.md +23 -5
  10. package/payload/plugins/fabric-agent-adapter/skills/building-fabric-services/references/board.md +24 -1
  11. package/payload/plugins/fabric-agent-adapter/skills/building-fabric-services/references/package.md +102 -0
  12. package/payload/plugins/fabric-agent-adapter/skills/building-fabric-services/references/protocol.md +2 -2
  13. package/payload/plugins/fabric-agent-adapter/skills/building-fabric-services/scripts/fabric-board.mjs +144 -11
  14. package/payload/plugins/fabric-agent-adapter/skills/building-fabric-services/scripts/fabric-package.mjs +590 -0
  15. package/payload/plugins/fabric-agent-adapter/skills/building-fabric-services/scripts/fabric-package.schema.json +631 -0
  16. package/payload/plugins/fabric-agent-adapter/skills/building-fabric-services/scripts/fabric_board.py +140 -10
  17. package/payload/plugins/fabric-agent-adapter/skills/building-fabric-services/scripts/fabric_package.py +824 -0
  18. package/payload/plugins/fabric-agent-adapter/skills/creating-fabric-agents/SKILL.md +3 -3
  19. package/payload/plugins/fabric-agent-adapter/skills/working-with-fabric/SKILL.md +1 -1
  20. package/payload/plugins/fabric-agent-adapter/skills/working-with-fabric/references/project-board.md +20 -0
  21. package/payload/plugins/fabric-agent-adapter/skills/working-with-fabric/scripts/fabric_session.py +1 -1
  22. package/payload/plugins/passioncode/.claude-plugin/plugin.json +1 -1
@@ -5,9 +5,9 @@ license: AGPL-3.0-only OR LicenseRef-PassionCode-Commercial
5
5
  compatibility: Requires filesystem access and Python 3.9+. Exact schema checks additionally need git, Node.js, pnpm, and the pinned fabric-agent-contract checkout (a public repository). Works without those tools in an explicitly degraded structural-check mode. Ships in one plugin with adapting-projects-to-fabric, whose scripts it reuses.
6
6
  metadata:
7
7
  author: PassionCode.ai
8
- version: "0.30.0"
8
+ version: "0.32.0"
9
9
  contract-version: "0.1.0"
10
- contract-commit: "f00a7685e3861c27f7899c033fb850a145a1708f"
10
+ contract-commit: "1636fa97262f4a26e2086572d540c2ee701e0010"
11
11
  ---
12
12
 
13
13
  # Creating Fabric-compatible agents
@@ -123,7 +123,7 @@ python3 <plugin-dir>/skills/adapting-projects-to-fabric/scripts/adapt_project.py
123
123
  The effect class is declared, never defaulted: ask the author what the agent does outside itself when the request
124
124
  does not say. Cost presets are only for a run whose cost varies; their amounts come from the author or measured runs.
125
125
 
126
- Pin exactly contract `0.1.0` at commit `f00a7685e3861c27f7899c033fb850a145a1708f` and
126
+ Pin exactly contract `0.1.0` at commit `1636fa97262f4a26e2086572d540c2ee701e0010` and
127
127
  read the pinned guide before implementing protocol details. If this skill is installed
128
128
  without its sibling, the scaffolder is absent: create the bundle by hand from the pinned
129
129
  contract's `docs/guides/connecting-compatible-agents.md` and mark the structural check
@@ -19,7 +19,7 @@ compatibility: >-
19
19
  this plugin; Codex and Kimi Code get the session-start preamble hook on the person's consent.
20
20
  metadata:
21
21
  author: PassionCode.ai
22
- version: "0.30.0"
22
+ version: "0.32.0"
23
23
  ---
24
24
 
25
25
  # Working with Fabric
@@ -46,6 +46,26 @@ capability (a plain question may be `kind: "message"`), in a new thread whose pa
46
46
  SendMessage between sessions. agent-sync leases guard files; they carry no asks.
47
47
 
48
48
  A request the board stored has not been carried out. Only its state (`completed`, `failed_known`) says what happened.
49
+ `settledBy: "owner"` on a request (DEC-0081) means the estate owner settled it after its responder was gone: read it as
50
+ the owner's attestation, not the responder's.
51
+
52
+ **`held` (DEC-0079).** The operator holds that thread, that Project or that capability, and the board refuses new
53
+ work there with `held`, which is always retryable. Tell the person what is held. Retry later, the pause growing, with
54
+ the **same idempotency key and arguments**. Never post the ask into another thread or to another Project to get around
55
+ the hold. Reads, cancels and replies to work already started are never held.
56
+
57
+ **A problem for another Project: a structured finding (DEC-0080).** Send one only when the running Fabric's
58
+ `com.submit` input schema lists `finding`; otherwise send a plain message. A finding carries:
59
+
60
+ - `severity`: `info`, `warning` or `blocking`;
61
+ - `consequence`: one sentence on what it breaks;
62
+ - `affects`: the backlog rows (`{repository, path, id}`) or host tasks it touches;
63
+ - a `dedupeKey` that stays the same for the same problem.
64
+
65
+ Its idempotency key is at least 128 random bits (for example 32 hex characters from a cryptographic generator), kept
66
+ on every retry. A receipt with `repeated: true` and a fresh key means that finding already stands on the board: its
67
+ thread may not be the one you named, and nothing new was posted. Never put a `{redacted: true}` item into a finding you
68
+ send.
49
69
 
50
70
  ## The project directory
51
71
 
@@ -60,7 +60,7 @@ WATCH_MAX_BACKOFF_S = 900
60
60
  SESSION_ID = re.compile(r"[A-Za-z0-9._:-]{1,128}")
61
61
  LOOPBACK_ORIGIN = re.compile(r"http://127\.0\.0\.1:(\d{1,5})")
62
62
  LOCAL_ORIGIN = re.compile(r'"origin": "http://(?:127\.0\.0\.1|localhost)')
63
- VERSION = "0.30.0"
63
+ VERSION = "0.32.0"
64
64
  HOSTS = {"claude": "Claude Code", "codex": "Codex", "kimi": "Kimi Code"}
65
65
  # A session Fabric launched. FABRIC_LAUNCHED_SESSION=1 is the marker Fabric is asked to set (need D6); the others are
66
66
  # what Fabric already gives a launched session (fabric sessionBundle.ts): only their NAMES are looked at, never a value
@@ -2,7 +2,7 @@
2
2
  "$schema": "https://json.schemastore.org/claude-code-plugin-manifest.json",
3
3
  "name": "passioncode",
4
4
  "displayName": "PassionCode.ai",
5
- "version": "0.2.1",
5
+ "version": "0.2.2",
6
6
  "description": "Set up and check PassionCode.ai on a computer with one command (setting-up-passioncode), the organisation's working rules for every contributor's agent (working-in-passioncode), and a once-a-day check at session start that keeps the PassionCode.ai skill set current.",
7
7
  "author": {
8
8
  "name": "PassionCode.ai",