Drop the Comp AI CRM acknowledgement
CI / verify (push) Successful in 3m33s
CI / publish (push) Has been skipped

Nothing in PIG derives from that repository. The fact model, the leased
agent task queue and the `agentBrief` field are our own designs, and MIT's
attribution condition reaches copied source, not ideas — so the credit was
a courtesy that misstated where this code came from.

The one line worth keeping was never a credit: AGENTS.md's rule against
lifting component files out of somebody else's repo. It is restated
generically, and the shadcn-from-upstream guidance stays.

Buzz keeps its NOTICE entry.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
This commit is contained in:
2026-08-13 23:41:10 -07:00
parent d7e0cbeccc
commit 76e3caa1cb
6 changed files with 28 additions and 38 deletions
+3 -3
View File
@@ -303,9 +303,9 @@ agent for it.
## 8. What not to do ## 8. What not to do
- Do not copy component files from `trycompai/crm`. Most are shadcn/ui - Do not copy component files out of other people's repositories. Where a
originals — take them from upstream where they are canonical. Borrow the primitive is a shadcn/ui original, take it from upstream, where it is
compositions as ideas; the debt is credited in `NOTICE`. canonical and current. Compositions we write ourselves.
- Do not open self-registration on the identity provider. It is shared with - Do not open self-registration on the identity provider. It is shared with
another application. PIG mints accounts itself, gated on an invite. another application. PIG mints accounts itself, gated on an invite.
- Do not put a production SSH key on the CI runner. Deployment is manual on - Do not put a production SSH key on the CI runner. Deployment is manual on
+3 -8
View File
@@ -19,14 +19,9 @@ limitations under the License.
ACKNOWLEDGEMENTS ACKNOWLEDGEMENTS
Several architectural ideas in this project were studied from, and are One architectural idea in this project was studied from, and is gratefully
gratefully credited to, the following open-source projects. No source code credited to, the following open-source project. No source code was copied
was copied from them; the debt is one of design. from it; the debt is one of design.
Comp AI CRM (https://github.com/trycompai/crm) — MIT License.
The evidence-banded fact model, the leased database-backed agent task
queue, the agent-brief pattern on user-defined fields, and the
"intelligence never lives in the API" separation.
Buzz (https://github.com/block/buzz) — Apache License 2.0. Buzz (https://github.com/block/buzz) — Apache License 2.0.
The agent-as-workspace-member model that informed PIG's treatment of The agent-as-workspace-member model that informed PIG's treatment of
+2 -3
View File
@@ -586,6 +586,5 @@ will be removed.
## Licence ## Licence
Apache License 2.0 — see [LICENSE](./LICENSE) and [NOTICE](./NOTICE). The Apache License 2.0 — see [LICENSE](./LICENSE) and [NOTICE](./NOTICE). The
architectural debts to [Comp AI CRM](https://github.com/trycompai/crm) (MIT) architectural debt to [Buzz](https://github.com/block/buzz) (Apache-2.0) is
and [Buzz](https://github.com/block/buzz) (Apache-2.0) are credited in NOTICE. credited in NOTICE. No source code was copied from it.
No source code was copied from either.
+17 -19
View File
@@ -152,31 +152,29 @@ any native mobile application.
--- ---
## On borrowing from Comp AI CRM ## On the component library
Their repo (MIT) was cloned and inventoried early on, and three findings shaped Three gaps were identified in an early review of the front end. All three have
the plan. All three have since been acted on. since been acted on.
**Their component library was far deeper — 68 primitives to our 9 at the time.** **The primitive set was too thin — 9 at the time.** PIG now has 22, including
PIG now has 22, including the ones that mattered: `data-table`, `command`, the ones that mattered: `data-table`, `command`, `sheet`, `drawer`, `sidebar`,
`sheet`, `drawer`, `sidebar`, `form`. The agent-chat compositions `form`. The agent-chat compositions (`message`, `reasoning`,
(`message`, `reasoning`, `thinking-indicator`) were rebuilt rather than copied, `thinking-indicator`) are ours, written inside `PiggyChat.tsx`.
inside `PiggyChat.tsx`.
**`SourcedValue` / `Provenance` was worth adopting outright** — a dotted **`SourcedValue` / `Provenance` had to exist** — a dotted underline on any
underline on any agent-derived value, with a tooltip carrying the claim, the agent-derived value, with a tooltip carrying the claim, the reasons, when it was
reasons, when it was observed and the source URL. PIG already held that data in observed and the source URL. PIG already held that data in `facts` and surfaced
`facts` and surfaced none of it. It does now. none of it. It does now.
**We were ahead of them on mobile, not behind**, and the ratio has held: PIG is **Mobile is a lead, and the ratio has held:** PIG is 63 `.tsx` files with
63 `.tsx` files with safe-area handling, a bottom tab bar, a sidebar Sheet and a safe-area handling, a bottom tab bar, a sidebar Sheet and a hard rule that no
hard rule that no route may scroll sideways at 393px. Their app is effectively route may scroll sideways at 393px. Most tools in this category are effectively
desktop-only. desktop-only.
**Do not copy their component files.** Most are shadcn/ui originals, which are **Where a primitive is a shadcn/ui original, install it from upstream**, where
MIT and designed to be installed from upstream — take them from source, where it is canonical and current — not lifted out of somebody else's repository.
they are canonical and current. Borrow the compositions as ideas, and credit in Compositions we write ourselves.
`NOTICE` as already done.
--- ---
-2
View File
@@ -17,8 +17,6 @@
* *
* 3. **Every outward action is idempotent.** `agentActions` carries a unique * 3. **Every outward action is idempotent.** `agentActions` carries a unique
* idempotency key, so a retried task cannot send the same message twice. * idempotency key, so a retried task cannot send the same message twice.
*
* The pattern is adapted from Comp AI CRM (MIT); see NOTICE.
*/ */
import { import {
index, index,
+3 -3
View File
@@ -3,9 +3,9 @@
* *
* Every CRM grows fields its designers did not anticipate, and a schema that * Every CRM grows fields its designers did not anticipate, and a schema that
* refuses them is a schema that gets worked around in a spreadsheet. The * refuses them is a schema that gets worked around in a spreadsheet. The
* variant here carries one idea worth borrowing from Comp AI CRM (MIT, see * variant here carries one idea the usual designs miss: `agentBrief` — a prose
* NOTICE): `agentBrief` — a prose instruction telling the agent *how* to fill * instruction telling the agent *how* to fill this particular field. A custom
* this particular field. A custom field is otherwise opaque to an agent, which * field is otherwise opaque to an agent, which
* knows the column exists but nothing about what would constitute a good value. * knows the column exists but nothing about what would constitute a good value.
*/ */
import { import {