@passioncode-ai/passioncode 0.1.10 → 0.1.12
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 +34 -0
- package/CLA.md +28 -0
- package/COMMERCIAL-LICENSE.md +11 -0
- package/LICENSE +661 -155
- package/README.md +16 -13
- package/family.json +1 -1
- package/package.json +4 -2
- package/payload/.claude-plugin/marketplace.json +4 -4
- package/payload/manifest.json +10 -10
- package/payload/plugins/fabric-agent-adapter/.claude-plugin/plugin.json +2 -2
- package/payload/plugins/fabric-agent-adapter/skills/adapting-projects-to-fabric/SKILL.md +25 -4
- package/payload/plugins/fabric-agent-adapter/skills/adapting-projects-to-fabric/scripts/adapt_project.py +1 -1
- package/payload/plugins/fabric-agent-adapter/skills/building-fabric-services/SKILL.md +24 -3
- package/payload/plugins/fabric-agent-adapter/skills/building-fabric-services/references/interop.md +24 -6
- package/payload/plugins/fabric-agent-adapter/skills/building-fabric-services/references/protocol.md +1 -1
- package/payload/plugins/fabric-agent-adapter/skills/building-fabric-services/scripts/check_service.py +10 -1
- package/payload/plugins/fabric-agent-adapter/skills/building-fabric-services/scripts/fabric-interop.mjs +8 -1
- package/payload/plugins/fabric-agent-adapter/skills/building-fabric-services/scripts/fabric_interop.py +23 -1
- package/payload/plugins/fabric-agent-adapter/skills/building-fabric-services/scripts/sample_service.py +3 -0
- package/payload/plugins/fabric-agent-adapter/skills/creating-fabric-agents/SKILL.md +23 -4
- package/payload/plugins/passioncode/.claude-plugin/plugin.json +2 -2
- package/payload/plugins/passioncode/hooks/repo-rules.js +11 -9
- package/payload/plugins/passioncode/skills/working-in-passioncode/SKILL.md +59 -31
- package/payload/plugins/passioncode/skills/working-in-passioncode/references/publishing.md +37 -27
|
@@ -7,12 +7,12 @@ description: >-
|
|
|
7
7
|
PassionCode», «как тут принято», «где записать решение», «как выпустить релиз». Covers the org
|
|
8
8
|
map, landing (protected and unprotected main, fast-forward, never force-push shared work,
|
|
9
9
|
never touch another session's work), nightly CI and why a blocked run is not green,
|
|
10
|
-
handoffs, decisions, ids and leases, secrets, licensing (
|
|
11
|
-
|
|
12
|
-
|
|
10
|
+
handoffs, decisions, ids and leases, secrets, licensing (AGPL-3.0 or commercial, CLA), the
|
|
11
|
+
repository standard, the privacy gate, and releases, versions and pins; the knowledge base
|
|
12
|
+
stays the source of truth. NOT for product UX, visual design or copy (super-ux,
|
|
13
13
|
sheleg-design, copywriting), building Fabric agents or services (the fabric-agent-adapter
|
|
14
14
|
skills), or repositories outside passioncode-ai.
|
|
15
|
-
license:
|
|
15
|
+
license: AGPL-3.0-only OR LicenseRef-PassionCode-Commercial
|
|
16
16
|
compatibility: Any agent that can read files and run git. The gh CLI and a clone of passioncode-ai/org-index make the checks exact; without them follow the fallbacks in the body.
|
|
17
17
|
metadata:
|
|
18
18
|
author: PassionCode.ai
|
|
@@ -20,17 +20,33 @@ metadata:
|
|
|
20
20
|
|
|
21
21
|
# Working in PassionCode repositories
|
|
22
22
|
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
23
|
+
What belongs to no single repository — the vision, the principles, how to work, the rules, the
|
|
24
|
+
repository standard, the products and the licence — lives in one place: the organization's
|
|
25
|
+
**knowledge base**, `fabric-workspace/knowledge/` in a clone (org-index
|
|
26
|
+
`scripts/clone_all.sh` makes it), published at https://wiki.passioncode.ai/knowledge (sign-in
|
|
27
|
+
required; Fabric ADR-0093). [org-index](https://github.com/passioncode-ai/org-index) (private;
|
|
28
|
+
every member can read it) keeps the map (`repositories.json`), `ONBOARDING.md` and the checks
|
|
29
|
+
(`check_index.py`, `check_names.py`, `check_format.py`). This skill is the checklist that makes
|
|
30
|
+
those rules reach you while you work. It summarises; it does not replace. Where it and the
|
|
31
|
+
knowledge base disagree, **the knowledge base wins**; where a repository's own `AGENTS.md` is
|
|
32
|
+
stricter, **that file wins**.
|
|
33
|
+
|
|
34
|
+
## 0. The protocol — before and after every piece of work
|
|
35
|
+
|
|
36
|
+
**Before the first edit**, read the knowledge base (at least its `README.md`, `vision.md`,
|
|
37
|
+
`principles.md` and `how-to-work.md`), then the repository's `AGENTS.md`. The session-start hook
|
|
38
|
+
of this plugin prints that line in every passioncode-ai repository.
|
|
39
|
+
|
|
40
|
+
**After the work**, in the same run: update the repository's own docs in the change that changes
|
|
41
|
+
the behaviour; if a fact that crosses repositories changed — a product, a version, a plan row, a
|
|
42
|
+
principle, a rule — update the knowledge base page that owns it (`products.md`, `plans.md`, …);
|
|
43
|
+
land both; then publish (`node scripts/workspace.mjs sync` from a Fabric checkout) or leave it to
|
|
44
|
+
the scheduled sync. A page there is read as true: every claim carries its receipt.
|
|
29
45
|
|
|
30
46
|
## 1. Before the first edit
|
|
31
47
|
|
|
32
|
-
1. Read the repository's `AGENTS.md` (its `CLAUDE.md` imports
|
|
33
|
-
the test command and any local rule.
|
|
48
|
+
1. Read the knowledge base, then the repository's `AGENTS.md` (its `CLAUDE.md` imports
|
|
49
|
+
it). `AGENTS.md` names the role, the test command and any local rule.
|
|
34
50
|
2. Find who owns what you are about to change: the table in org-index `README.md`,
|
|
35
51
|
generated from `repositories.json`. Do not guess an owner from a directory name.
|
|
36
52
|
3. `git fetch origin`, then work in a worktree from `origin/main` on your own branch
|
|
@@ -41,13 +57,14 @@ where a repository's own `AGENTS.md` is stricter, **that file wins**.
|
|
|
41
57
|
4. An unmerged branch or a dirty tree you did not create is someone's work in
|
|
42
58
|
progress. Leave it; ask before touching it.
|
|
43
59
|
|
|
44
|
-
No
|
|
45
|
-
follow the repository's `AGENTS.md`, and name that you
|
|
60
|
+
No clone: `gh repo clone passioncode-ai/org-index`, then its `scripts/clone_all.sh` for the
|
|
61
|
+
knowledge base. No access at all: say so, follow the repository's `AGENTS.md`, and name that you
|
|
62
|
+
worked from it alone.
|
|
46
63
|
|
|
47
64
|
Also, before the first edit:
|
|
48
65
|
|
|
49
66
|
- **Read the organization's [CONTRIBUTING.md](https://github.com/passioncode-ai/.github/blob/main/CONTRIBUTING.md)**
|
|
50
|
-
— the
|
|
67
|
+
— the repository's `AGENTS.md` sends you there in its *Read first* block.
|
|
51
68
|
- **Names** (Fabric ADR-0090): PassionCode.ai is the organization; **Fabric** is the product,
|
|
52
69
|
the CEO AI agent; Fabric's tools carry its full name before any short form (Fabric Inbox,
|
|
53
70
|
Fabric Dashboards, Fabric Switchboard); the Fabric Agent Contract and Adapter make any agent
|
|
@@ -121,21 +138,31 @@ not edit a guarded file — say which file and why you stopped.
|
|
|
121
138
|
enough. With the Observatory plugin installed, its `handling-secrets` skill does this
|
|
122
139
|
by slot name without printing the value.
|
|
123
140
|
|
|
124
|
-
## 6. Licensing
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
141
|
+
## 6. Licensing and the repository standard
|
|
142
|
+
|
|
143
|
+
- **Every repository** is open source under the GNU AGPL-3.0, or available under a commercial
|
|
144
|
+
license from PassionCode.ai (contact@passioncode.ai):
|
|
145
|
+
`AGPL-3.0-only OR LicenseRef-PassionCode-Commercial` (Fabric ADR-0092; the knowledge base
|
|
146
|
+
`licensing.md` owns it). Copyright: Siarhei Sheleh. No price or term is stated anywhere.
|
|
147
|
+
- `LICENSE`, `COMMERCIAL-LICENSE.md` and `CLA.md` are copied **byte for byte** from the knowledge
|
|
148
|
+
base's `templates/`; every manifest and SKILL.md `license:` carries the expression.
|
|
149
|
+
- A version released earlier keeps its licence — MIT or PolyForm Noncommercial or Internal Use —
|
|
150
|
+
and the README may say which. Never write that a released version changed.
|
|
151
|
+
- The README's `## License` section uses the knowledge base wording and names the earlier
|
|
152
|
+
licences: "Open source under the GNU AGPL-3.0. A commercial license is available for use that
|
|
153
|
+
does not meet the AGPL's terms — contact@passioncode.ai."
|
|
154
|
+
- Contributions are accepted under the repository's `CLA.md`; the PR template carries the
|
|
155
|
+
"I agree to CLA.md" box.
|
|
156
|
+
- **The repository standard** (the knowledge base `repository-standard.md`): README first heading
|
|
157
|
+
`# <Full name>`, `## Quick start for a new teammate` (Install, Configure, MCP — the registration
|
|
158
|
+
command and one proving call verified with a real client in a temporary config — and Develop)
|
|
159
|
+
and `## License`; `AGENTS.md` opens with the template's *Read first* block and ends with
|
|
160
|
+
*After work*; `CLAUDE.md` starts with `@AGENTS.md`; `SECURITY.md` in public repositories.
|
|
161
|
+
org-index `python3 scripts/check_format.py` checks it (offline: siblings `org-index`,
|
|
162
|
+
`fabric-workspace` and the repository, then `--offline --repo <repo>`); it reports 0 before
|
|
163
|
+
you call a repository done.
|
|
164
|
+
- The operator's own agents are outside the organization and this licence: their licence is the
|
|
165
|
+
operator's choice, and nothing about them is published.
|
|
139
166
|
|
|
140
167
|
Read [publishing](references/publishing.md) when adding or changing a license, a
|
|
141
168
|
manifest's `license` field, `CLA.md` or a PR template.
|
|
@@ -209,4 +236,5 @@ skill's: `super-ux`, `sheleg-design` and `copywriting`.
|
|
|
209
236
|
|
|
210
237
|
Report: the repository and branch; the landed commit or the PR URL; each gate command
|
|
211
238
|
with its exit code; the hosted CI state (ran, blocked, or nightly pending); the handoff
|
|
212
|
-
path;
|
|
239
|
+
path; the knowledge base page you updated, or that no cross-repository fact changed; and the
|
|
240
|
+
one next task.
|
|
@@ -13,41 +13,50 @@ change to a license, a manifest's `license` field, `CLA.md` or a PR template.
|
|
|
13
13
|
|
|
14
14
|
## The license, file by file
|
|
15
15
|
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
`
|
|
20
|
-
`
|
|
21
|
-
|
|
16
|
+
Every repository is open source under the GNU AGPL-3.0, or available under a commercial
|
|
17
|
+
license from PassionCode.ai (contact@passioncode.ai): SPDX
|
|
18
|
+
`AGPL-3.0-only OR LicenseRef-PassionCode-Commercial` (Fabric ADR-0092). The owning page is the
|
|
19
|
+
knowledge base's `licensing.md`; the file list is its `repository-standard.md`, and org-index
|
|
20
|
+
`scripts/check_format.py` (rules F7–F11) checks it. The three licence files are **copied byte
|
|
21
|
+
for byte** from the knowledge base's `templates/` — never retyped, reflowed or "fixed".
|
|
22
22
|
|
|
23
23
|
| File | What it carries |
|
|
24
24
|
|---|---|
|
|
25
|
-
| `LICENSE` |
|
|
26
|
-
| `
|
|
27
|
-
| `
|
|
25
|
+
| `LICENSE` | `templates/LICENSE-AGPL-3.0.txt`, the unmodified AGPL-3.0 text (SHA-256 `0d96a4ff…abcb0`) |
|
|
26
|
+
| `COMMERCIAL-LICENSE.md` | `templates/COMMERCIAL-LICENSE.md` |
|
|
27
|
+
| `CLA.md` | `templates/CLA.md`, in every repository, private ones included |
|
|
28
|
+
| `SECURITY.md` | every public repository: report privately to contact@passioncode.ai |
|
|
29
|
+
| `CONTRIBUTING.md` | only when the repository adds rules; says contributions are accepted under `CLA.md` |
|
|
28
30
|
| `.github/pull_request_template.md` | a checkbox "I agree to CLA.md"; any existing template content is kept |
|
|
29
|
-
| `package.json` | `"license"` set to the SPDX expression |
|
|
31
|
+
| `package.json` | `"license"` set to the SPDX expression; `files` ships `LICENSE` and `COMMERCIAL-LICENSE.md` |
|
|
30
32
|
| `.claude-plugin/plugin.json`, marketplace entries | `"license"` set to the SPDX expression |
|
|
31
33
|
| SKILL.md front matter | `license:` set to the SPDX expression |
|
|
32
|
-
| `pyproject.toml` | `license
|
|
33
|
-
| `Cargo.toml` | `license-file = "LICENSE"` instead of `license`, and `publish = false` |
|
|
34
|
+
| `pyproject.toml`, `Cargo.toml` | `license = "AGPL-3.0-only OR LicenseRef-PassionCode-Commercial"` |
|
|
34
35
|
|
|
35
|
-
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
- A published MIT release stays MIT. Never write that it changed.
|
|
36
|
+
- A version released earlier keeps the licence it was released under — MIT or PolyForm
|
|
37
|
+
Noncommercial or Internal Use. Never write that it changed; the README may say which.
|
|
38
|
+
- Third-party code keeps its own licence and notice (vendored dependencies, imported templates).
|
|
39
|
+
- The operator's own agents are outside the organization and outside this licence: their
|
|
40
|
+
licence is the operator's choice, and nothing about them is published.
|
|
41
41
|
|
|
42
42
|
## Wording
|
|
43
43
|
|
|
44
|
-
- The
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
44
|
+
- The README section, word for word apart from the versions:
|
|
45
|
+
|
|
46
|
+
```markdown
|
|
47
|
+
## License
|
|
48
|
+
|
|
49
|
+
Open source under the [GNU AGPL-3.0](LICENSE). A [commercial license](COMMERCIAL-LICENSE.md) is
|
|
50
|
+
available for use that does not meet the AGPL's terms — contact@passioncode.ai.
|
|
51
|
+
Versions before <first AGPL version> were released under <MIT | PolyForm Noncommercial or Internal Use>.
|
|
52
|
+
```
|
|
53
|
+
|
|
54
|
+
- "Source-available" and the PolyForm expression describe past releases only; never state
|
|
55
|
+
them as the current licence.
|
|
56
|
+
- No price or term for the commercial licence is stated anywhere; point to
|
|
57
|
+
contact@passioncode.ai.
|
|
58
|
+
- Positioning and names come from the knowledge base (`vision.md`, `principles.md` §2); do not
|
|
59
|
+
restate a tagline from memory.
|
|
51
60
|
|
|
52
61
|
## The privacy gate
|
|
53
62
|
|
|
@@ -70,7 +79,8 @@ MIT-history sentence — the copyright line and the Required Notice stay as they
|
|
|
70
79
|
- Product metadata: author and owner **PassionCode.ai**, URL `https://passioncode.ai/`.
|
|
71
80
|
The site names the author by first name only; do not add full names or biographies to
|
|
72
81
|
product surfaces.
|
|
73
|
-
- Public documents do not link private repositories. org-index
|
|
74
|
-
|
|
82
|
+
- Public documents do not link private repositories. org-index and the knowledge base
|
|
83
|
+
(fabric-workspace `knowledge/`, published at wiki.passioncode.ai/knowledge) may be linked for
|
|
84
|
+
the map and the rules only.
|
|
75
85
|
- Security and conduct contact: contact@passioncode.ai, plus GitHub private
|
|
76
86
|
vulnerability reporting on a public repository.
|