@passioncode-ai/passioncode 0.1.21 → 0.1.23
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 +22 -0
- package/family.json +2 -2
- package/package.json +1 -1
- package/payload/.claude-plugin/marketplace.json +3 -3
- package/payload/manifest.json +12 -12
- package/payload/plugins/fabric-agent-adapter/.claude-plugin/plugin.json +1 -1
- package/payload/plugins/fabric-agent-adapter/skills/adapting-projects-to-fabric/SKILL.md +1 -1
- package/payload/plugins/fabric-agent-adapter/skills/building-fabric-services/SKILL.md +3 -2
- package/payload/plugins/fabric-agent-adapter/skills/building-fabric-services/references/lifecycle.md +21 -0
- package/payload/plugins/fabric-agent-adapter/skills/creating-fabric-agents/SKILL.md +1 -1
- package/payload/plugins/observatory-log/.claude-plugin/plugin.json +1 -1
- package/payload/plugins/observatory-log/hooks/ask-why.py +1 -1
- package/payload/plugins/observatory-log/skills/explaining-changes/SKILL.md +1 -1
- package/payload/plugins/observatory-log/skills/handling-secrets/SKILL.md +13 -7
- package/payload/plugins/observatory-log/skills/tracking-resources/SKILL.md +2 -2
- package/payload/plugins/passioncode/.claude-plugin/plugin.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,27 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## 0.1.23 - 2026-10-03
|
|
4
|
+
|
|
5
|
+
### Changed
|
|
6
|
+
|
|
7
|
+
- **Fabric Agent Adapter is pinned at `v0.6.2`** (it was `v0.6.1`). `building-fabric-services`
|
|
8
|
+
now says how a product behaves under a host lifecycle broker — the always-on per-user service
|
|
9
|
+
agents ask to start, stop and restart products: quit through both the platform's quit and
|
|
10
|
+
`SIGTERM`, stay in the background when opened non-activating, keep the designated requirement
|
|
11
|
+
stable, expose honest readiness.
|
|
12
|
+
|
|
13
|
+
## 0.1.22 - 2026-10-03
|
|
14
|
+
|
|
15
|
+
### Changed
|
|
16
|
+
|
|
17
|
+
- **Observatory Log is pinned at `v0.13.0`** (plugin 0.14.0; it was `v0.10.0`, plugin 0.13.0),
|
|
18
|
+
the Project Observatory 0.13.0 hook and skills. The hook and the skills hand over the installed
|
|
19
|
+
engine's commands (`project-observatory full findings`, `full doctor`) instead of source-tree
|
|
20
|
+
paths, and the skills' own check runs under the interpreter `full agent install` records. In
|
|
21
|
+
`handling-secrets`, a vault `PROJECT` is the project's folder name and its registry id resolves to
|
|
22
|
+
the same folder. `use_secret.py run` takes `--env`, and `vault.py remove` deletes a slot or only
|
|
23
|
+
its retired archives.
|
|
24
|
+
|
|
3
25
|
## 0.1.21 - 2026-10-03
|
|
4
26
|
|
|
5
27
|
### Changed
|
package/family.json
CHANGED
|
@@ -8,7 +8,7 @@
|
|
|
8
8
|
"name": "fabric-agent-adapter",
|
|
9
9
|
"displayName": "Fabric Agent Adapter",
|
|
10
10
|
"repo": "passioncode-ai/fabric-agent-adapter",
|
|
11
|
-
"ref": "v0.6.
|
|
11
|
+
"ref": "v0.6.2",
|
|
12
12
|
"kind": "plugin",
|
|
13
13
|
"path": "plugins/fabric-agent-adapter",
|
|
14
14
|
"legacyPluginIds": [
|
|
@@ -22,7 +22,7 @@
|
|
|
22
22
|
"name": "observatory-log",
|
|
23
23
|
"displayName": "Observatory Log",
|
|
24
24
|
"repo": "passioncode-ai/project-observatory-dashboard",
|
|
25
|
-
"ref": "v0.
|
|
25
|
+
"ref": "v0.13.0",
|
|
26
26
|
"kind": "plugin",
|
|
27
27
|
"path": "observatory/engine/skill/plugins/observatory-log",
|
|
28
28
|
"legacyPluginIds": [
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@passioncode-ai/passioncode",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.23",
|
|
4
4
|
"description": "The PassionCode.ai agent skill set \u2014 Fabric Agent Adapter, Observatory Log and the organisation's working rules \u2014 for Claude Code and every other agent on the machine, updated as one set.",
|
|
5
5
|
"bin": {
|
|
6
6
|
"passioncode": "bin/passioncode.js"
|
|
@@ -11,7 +11,7 @@
|
|
|
11
11
|
"name": "fabric-agent-adapter",
|
|
12
12
|
"displayName": "Fabric Agent Adapter",
|
|
13
13
|
"source": "./plugins/fabric-agent-adapter",
|
|
14
|
-
"version": "0.6.
|
|
14
|
+
"version": "0.6.2",
|
|
15
15
|
"description": "Create new Fabric-compatible agents, build them as always-alive local services with dashboards (fabric-service/0.1), and adapt existing projects to the Fabric Agent Contract through evidence-backed MCP, A2A, or local-runner provider bundles.",
|
|
16
16
|
"author": {
|
|
17
17
|
"name": "PassionCode.ai",
|
|
@@ -23,7 +23,7 @@
|
|
|
23
23
|
"name": "observatory-log",
|
|
24
24
|
"displayName": "Observatory Log",
|
|
25
25
|
"source": "./plugins/observatory-log",
|
|
26
|
-
"version": "0.
|
|
26
|
+
"version": "0.14.0",
|
|
27
27
|
"description": "Records what changed in a watched project at the end of every turn, and asks for the one thing a diff cannot contain: why.",
|
|
28
28
|
"author": {
|
|
29
29
|
"name": "PassionCode.ai",
|
|
@@ -35,7 +35,7 @@
|
|
|
35
35
|
"name": "passioncode",
|
|
36
36
|
"displayName": "PassionCode.ai",
|
|
37
37
|
"source": "./plugins/passioncode",
|
|
38
|
-
"version": "0.1.
|
|
38
|
+
"version": "0.1.23",
|
|
39
39
|
"description": "The organisation's working rules for every contributor's agent (working-in-passioncode), and a once-a-day check that keeps the PassionCode.ai set current.",
|
|
40
40
|
"author": {
|
|
41
41
|
"name": "PassionCode.ai",
|
package/payload/manifest.json
CHANGED
|
@@ -1,15 +1,15 @@
|
|
|
1
1
|
{
|
|
2
2
|
"family": "passioncode",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.23",
|
|
4
4
|
"release": true,
|
|
5
5
|
"members": [
|
|
6
6
|
{
|
|
7
7
|
"name": "fabric-agent-adapter",
|
|
8
8
|
"displayName": "Fabric Agent Adapter",
|
|
9
9
|
"repo": "passioncode-ai/fabric-agent-adapter",
|
|
10
|
-
"ref": "v0.6.
|
|
11
|
-
"commit": "
|
|
12
|
-
"version": "0.6.
|
|
10
|
+
"ref": "v0.6.2",
|
|
11
|
+
"commit": "4b435baac85e343b530af86d56f8b75ac406bc43",
|
|
12
|
+
"version": "0.6.2",
|
|
13
13
|
"via": "clone of https://***@github.com/passioncode-ai/fabric-agent-adapter.git",
|
|
14
14
|
"skills": [
|
|
15
15
|
"adapting-projects-to-fabric",
|
|
@@ -22,7 +22,7 @@
|
|
|
22
22
|
"legacyMarketplaces": [
|
|
23
23
|
"fabric-agent-adapter"
|
|
24
24
|
],
|
|
25
|
-
"contentHash": "sha256:
|
|
25
|
+
"contentHash": "sha256:95fab0fdf3ee1f9171fc7c07edd60313cf52ddb68bb2eb456caf1df8afde36cb",
|
|
26
26
|
"description": "Create new Fabric-compatible agents, build them as always-alive local services with dashboards (fabric-service/0.1), and adapt existing projects to the Fabric Agent Contract through evidence-backed MCP, A2A, or local-runner provider bundles.",
|
|
27
27
|
"author": {
|
|
28
28
|
"name": "PassionCode.ai",
|
|
@@ -34,9 +34,9 @@
|
|
|
34
34
|
"name": "observatory-log",
|
|
35
35
|
"displayName": "Observatory Log",
|
|
36
36
|
"repo": "passioncode-ai/project-observatory-dashboard",
|
|
37
|
-
"ref": "v0.
|
|
38
|
-
"commit": "
|
|
39
|
-
"version": "0.
|
|
37
|
+
"ref": "v0.13.0",
|
|
38
|
+
"commit": "c7a89125edcd5ee1a8141feb55d4aca2c828e834",
|
|
39
|
+
"version": "0.14.0",
|
|
40
40
|
"via": "clone of https://***@github.com/passioncode-ai/project-observatory-dashboard.git",
|
|
41
41
|
"skills": [
|
|
42
42
|
"explaining-changes",
|
|
@@ -49,7 +49,7 @@
|
|
|
49
49
|
"legacyMarketplaces": [
|
|
50
50
|
"observatory-log"
|
|
51
51
|
],
|
|
52
|
-
"contentHash": "sha256:
|
|
52
|
+
"contentHash": "sha256:3e1218586122889649881d94fdf892f6a51782dc748c26127a9969376ecdf1eb",
|
|
53
53
|
"description": "Records what changed in a watched project at the end of every turn, and asks for the one thing a diff cannot contain: why.",
|
|
54
54
|
"author": {
|
|
55
55
|
"name": "PassionCode.ai",
|
|
@@ -61,16 +61,16 @@
|
|
|
61
61
|
"name": "passioncode",
|
|
62
62
|
"displayName": "PassionCode.ai",
|
|
63
63
|
"repo": "passioncode-ai/passioncode",
|
|
64
|
-
"ref": "v0.1.
|
|
64
|
+
"ref": "v0.1.23",
|
|
65
65
|
"commit": null,
|
|
66
|
-
"version": "0.1.
|
|
66
|
+
"version": "0.1.23",
|
|
67
67
|
"via": "this repository",
|
|
68
68
|
"skills": [
|
|
69
69
|
"working-in-passioncode"
|
|
70
70
|
],
|
|
71
71
|
"legacyPluginIds": [],
|
|
72
72
|
"legacyMarketplaces": [],
|
|
73
|
-
"contentHash": "sha256:
|
|
73
|
+
"contentHash": "sha256:bc40957cac6955093ea1d60c431983adfe48caf09bac39519d4a5716c08526a8",
|
|
74
74
|
"description": "The organisation's working rules for every contributor's agent (working-in-passioncode), and a once-a-day check that keeps the PassionCode.ai set current.",
|
|
75
75
|
"author": {
|
|
76
76
|
"name": "PassionCode.ai",
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
"name": "fabric-agent-adapter",
|
|
4
4
|
"displayName": "Fabric Agent Adapter",
|
|
5
5
|
"description": "Create new Fabric-compatible agents, build them as always-alive local services with dashboards (fabric-service/0.1), and adapt existing projects to the Fabric Agent Contract through evidence-backed MCP, A2A, or local-runner provider bundles.",
|
|
6
|
-
"version": "0.6.
|
|
6
|
+
"version": "0.6.2",
|
|
7
7
|
"author": {
|
|
8
8
|
"name": "PassionCode.ai",
|
|
9
9
|
"url": "https://passioncode.ai/"
|
|
@@ -5,7 +5,7 @@ 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.
|
|
6
6
|
metadata:
|
|
7
7
|
author: PassionCode.ai
|
|
8
|
-
version: "0.6.
|
|
8
|
+
version: "0.6.2"
|
|
9
9
|
contract-version: "0.1.0"
|
|
10
10
|
contract-commit: "2ce392291c6668598d12cd38327e24696b5ca15c"
|
|
11
11
|
---
|
|
@@ -15,7 +15,7 @@ license: AGPL-3.0-only OR LicenseRef-PassionCode-Commercial
|
|
|
15
15
|
compatibility: Python 3.9+ or Node.js 20+ for the kits; the probe needs Python 3.9+. launchd steps are macOS-only (Linux services use lifecycle manager none until a systemd adapter exists). Dashboard handoff optionally uses Fabric Dashboards MCP link/host_status/open; without it, report unresolved host capability. The contract checkout is optional.
|
|
16
16
|
metadata:
|
|
17
17
|
author: PassionCode.ai
|
|
18
|
-
version: "0.6.
|
|
18
|
+
version: "0.6.2"
|
|
19
19
|
contract-version: "0.1.0"
|
|
20
20
|
extension: "fabric-service/0.1"
|
|
21
21
|
extension-commit: "2ce392291c6668598d12cd38327e24696b5ca15c"
|
|
@@ -176,7 +176,8 @@ The installer, not the service, owns the plist and the descriptor. Sequence:
|
|
|
176
176
|
|
|
177
177
|
Code runs from an immutable release directory; an upgrade writes a new release,
|
|
178
178
|
rewrites the plist and restarts. Read [the lifecycle reference](references/lifecycle.md)
|
|
179
|
-
for the plist fields, the release layout, log rotation
|
|
179
|
+
for the plist fields, the release layout, log rotation, behaving under a host lifecycle broker
|
|
180
|
+
and the Linux case.
|
|
180
181
|
|
|
181
182
|
## Step 5 — the dashboard and the events
|
|
182
183
|
|
package/payload/plugins/fabric-agent-adapter/skills/building-fabric-services/references/lifecycle.md
CHANGED
|
@@ -56,6 +56,27 @@ On `SIGTERM`: stop accepting new work, append a `service.stopping` event, drain
|
|
|
56
56
|
in-flight work until `ExitTimeOut` minus a margin, persist what was interrupted so the
|
|
57
57
|
next start resumes it, release the lock, exit 0.
|
|
58
58
|
|
|
59
|
+
## Being managed by a host lifecycle broker
|
|
60
|
+
|
|
61
|
+
A host may run a lifecycle broker: one always-on per-user service that agents ask to start,
|
|
62
|
+
stop and restart products, instead of launching or killing them themselves. A product it manages
|
|
63
|
+
has to survive being driven from outside:
|
|
64
|
+
|
|
65
|
+
- **Quit reaches exit through both doors.** A broker asks the platform's own quit first — on
|
|
66
|
+
macOS `NSRunningApplication.terminate()`, the path Cmd+Q and the Dock take — and `SIGTERM` a few
|
|
67
|
+
seconds later. Handle both and exit inside the deadline (fabric-workspace LC-01). A desktop app
|
|
68
|
+
that answers `SIGTERM` by closing its window and staying alive is stopped late or not at all.
|
|
69
|
+
- **A background launch stays in the background.** A broker opens the app non-activating
|
|
70
|
+
(`NSWorkspace.OpenConfiguration.activates = false`); do not call `app.focus()`, `show()` on a
|
|
71
|
+
focused window, or activate on `ready` when nobody asked for a window. Taking focus from the
|
|
72
|
+
person is the one side effect they always notice.
|
|
73
|
+
- **Identity is the designated requirement.** A broker pins the app by team + bundle id, so an
|
|
74
|
+
update signed by the same team keeps working and anything else is refused (LC-05). Never ship an
|
|
75
|
+
ad-hoc or differently signed build to a machine that pins you.
|
|
76
|
+
- **Starting is not ready.** Expose readiness the broker can probe without a person — the
|
|
77
|
+
well-known document for a service, a process-level answer for a plain app — and keep it honest
|
|
78
|
+
while the app is still starting.
|
|
79
|
+
|
|
59
80
|
## Linux
|
|
60
81
|
|
|
61
82
|
Until a systemd adapter exists, declare `lifecycle.manager: "none"`. A `systemd --user`
|
|
@@ -5,7 +5,7 @@ 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.6.
|
|
8
|
+
version: "0.6.2"
|
|
9
9
|
contract-version: "0.1.0"
|
|
10
10
|
contract-commit: "2ce392291c6668598d12cd38327e24696b5ca15c"
|
|
11
11
|
---
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
"name": "observatory-log",
|
|
4
4
|
"displayName": "Observatory Log",
|
|
5
5
|
"description": "Records what changed in a watched project at the end of every turn, and asks for the one thing a diff cannot contain: why.",
|
|
6
|
-
"version": "0.
|
|
6
|
+
"version": "0.14.0",
|
|
7
7
|
"license": "AGPL-3.0-only OR LicenseRef-PassionCode-Commercial",
|
|
8
8
|
"author": {
|
|
9
9
|
"name": "PassionCode.ai",
|
|
@@ -40,7 +40,7 @@ def main() -> int:
|
|
|
40
40
|
"Observatory could NOT record this turn: " + reason +
|
|
41
41
|
"\n\nThe facts of this turn are not in the ledger. "
|
|
42
42
|
"`store/raw/record-turn.json` holds the same reason, and "
|
|
43
|
-
"
|
|
43
|
+
"`project-observatory full findings` raises it.",
|
|
44
44
|
"suppressOutput": True}))
|
|
45
45
|
return 0
|
|
46
46
|
if r.get("hasWhy"):
|
|
@@ -15,7 +15,7 @@ description: >-
|
|
|
15
15
|
decision with different evidence.
|
|
16
16
|
license: AGPL-3.0-only OR LicenseRef-PassionCode-Commercial
|
|
17
17
|
metadata:
|
|
18
|
-
version: "0.
|
|
18
|
+
version: "0.14.0"
|
|
19
19
|
compatibility: >-
|
|
20
20
|
Requires an initialized full Project Observatory installation to persist
|
|
21
21
|
records. Uses its MCP server when available in the current host; the bundled
|
|
@@ -9,7 +9,7 @@ description: >-
|
|
|
9
9
|
provider permissions or choosing a project's authentication architecture.
|
|
10
10
|
license: AGPL-3.0-only OR LicenseRef-PassionCode-Commercial
|
|
11
11
|
metadata:
|
|
12
|
-
version: "0.
|
|
12
|
+
version: "0.14.0"
|
|
13
13
|
compatibility: >-
|
|
14
14
|
Requires an initialized full Project Observatory installation, Python 3.11+
|
|
15
15
|
and local shell access on macOS or Linux. Provider operations additionally
|
|
@@ -27,9 +27,10 @@ names. Never ask the user to paste a credential into the conversation.
|
|
|
27
27
|
`OBSERVATORY_ROOT`, or obtain its path with `project-observatory full-path`.
|
|
28
28
|
Do not guess a checkout location or inspect another account's files.
|
|
29
29
|
2. Select the user's initialized `OBSERVATORY_HOME`. Run
|
|
30
|
-
`
|
|
30
|
+
`project-observatory full doctor`. A missing workspace
|
|
31
31
|
needs the documented onboarding before secret operations.
|
|
32
|
-
3. Run `
|
|
32
|
+
3. Run `"$OBSERVATORY_PYTHON" "$OBSERVATORY_ROOT/tools/skill_check.py" handling-secrets 0.14.0`
|
|
33
|
+
(`full agent install` records that interpreter; the stock macOS `python3` is too old).
|
|
33
34
|
If stale, read the installed skill once and follow its compatible commands.
|
|
34
35
|
Do not turn an unavailable version check into a retry loop.
|
|
35
36
|
4. Inspect names using `tools/use_secret.py names PROJECT` or `tools/vault.py
|
|
@@ -37,8 +38,11 @@ names. Never ask the user to paste a credential into the conversation.
|
|
|
37
38
|
Never read a value file to discover whether it exists.
|
|
38
39
|
|
|
39
40
|
All commands below are Python scripts under `OBSERVATORY_ROOT/tools`. `PROJECT`,
|
|
40
|
-
`ENV` and `NAME` are placeholders for existing user-selected names. `
|
|
41
|
-
|
|
41
|
+
`ENV` and `NAME` are placeholders for existing user-selected names. `PROJECT` is
|
|
42
|
+
the project's folder name; its registry id (`project:<slug>` or the bare slug) is
|
|
43
|
+
accepted and normalised to that folder, and a name two projects claim is refused.
|
|
44
|
+
`ENV` is `local`, `stage` or `prod`; choose production only when the task calls
|
|
45
|
+
for it. A name or note shaped like a credential is refused, never stored.
|
|
42
46
|
|
|
43
47
|
## Use the named door
|
|
44
48
|
|
|
@@ -46,13 +50,14 @@ All commands below are Python scripts under `OBSERVATORY_ROOT/tools`. `PROJECT`,
|
|
|
46
50
|
|---|---|
|
|
47
51
|
| Store a credential supplied locally | `vault.py put PROJECT ENV NAME`, value on stdin |
|
|
48
52
|
| List slots | `vault.py list PROJECT ENV` |
|
|
49
|
-
| Run a command using a slot | `use_secret.py run PROJECT NAME -- COMMAND ARGUMENTS` |
|
|
53
|
+
| Run a command using a slot | `use_secret.py run [--env ENV] PROJECT NAME -- COMMAND ARGUMENTS` (flags before PROJECT) |
|
|
50
54
|
| Receive a value from another local command | `use_secret.py pipe NAME -- COMMAND ARGUMENTS` |
|
|
51
55
|
| Populate a project's ignored environment file | `vault.py inject PROJECT ENV DIRECTORY` |
|
|
52
56
|
| Record an exposure | `vault.py leak PROJECT ENV NAME --where "location and evidence, no value"` |
|
|
53
57
|
| Replace a stored value | `vault.py rotate PROJECT ENV NAME`, replacement on stdin |
|
|
54
58
|
| Close an exposure after revocation and consumer checks | `vault.py settle PROJECT ENV NAME --how "action" --revocation-evidence "receipt" --consumer-evidence "receipt"` |
|
|
55
59
|
| Record an external movement | `vault.py moved PROJECT ENV NAME --at PROVIDER --how "action and evidence"`; add `--settle` with both evidence flags to also close its exposure |
|
|
60
|
+
| Delete a slot, or only the archives a rotation left | `vault.py remove PROJECT ENV NAME` (refused while its exposure is open unless `--force`), or `vault.py remove PROJECT ENV NAME --retired`; both are journalled |
|
|
56
61
|
| Review unresolved exposures or movements | `vault.py leaks` or `vault.py movements PROJECT` |
|
|
57
62
|
|
|
58
63
|
Use the installed command's `--help` for optional flags. Avoid placing a value
|
|
@@ -135,7 +140,8 @@ By default, slots live under the private workspace's `secrets/projects/`.
|
|
|
135
140
|
An explicitly configured `sources.secret_store` or `OBSERVATORY_VAULT_DIR`
|
|
136
141
|
can select a separate private store. Such external stores are excluded from
|
|
137
142
|
workspace backups and need their own backup procedure. `vault.py backup`
|
|
138
|
-
requires a configured gateway backup script
|
|
143
|
+
requires a configured gateway backup script (`backup-secrets.sh` at
|
|
144
|
+
`sources.gateway_root` or in its `bin/`); do not promise encryption,
|
|
139
145
|
keychain storage or scheduled backups when that integration is absent.
|
|
140
146
|
|
|
141
147
|
## When something is unavailable
|
|
@@ -15,7 +15,7 @@ description: >-
|
|
|
15
15
|
the repository.
|
|
16
16
|
license: AGPL-3.0-only OR LicenseRef-PassionCode-Commercial
|
|
17
17
|
metadata:
|
|
18
|
-
version: "0.
|
|
18
|
+
version: "0.14.0"
|
|
19
19
|
compatibility: >-
|
|
20
20
|
Requires a full Project Observatory installation with organizations.json
|
|
21
21
|
configured; the observatory MCP server or its local CLI. Creating the resource
|
|
@@ -58,7 +58,7 @@ Report each resource with `observatory_propose`:
|
|
|
58
58
|
"targetId": "project:<slug>",
|
|
59
59
|
"patch": {"resources": [{"kind": "ga4-property",
|
|
60
60
|
"identifier": "properties/123456789",
|
|
61
|
-
"account": "accounts/
|
|
61
|
+
"account": "accounts/123456789",
|
|
62
62
|
"url": "https://analytics.google.com/…",
|
|
63
63
|
"note": "web stream for example.com",
|
|
64
64
|
"added_on": "2026-09-27",
|
|
@@ -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.1.
|
|
5
|
+
"version": "0.1.23",
|
|
6
6
|
"description": "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",
|