Skip to content

Commit ad10d27

Browse files
elberrdclaude
andcommitted
chore: repo pronto para abrir — docs internos movidos p/ repo privado, README público sucinto, LICENSE MIT
- docs/ inteiro migrado para elberrd/impactus-internal-docs (privado); todas as referências (DOCS.md, CLAUDE.md, comentários em src/bin/fia-templates) apontam para lá por nome, sem link - README reescrito: oficial e curto, Alpha em destaque, acesso exclusivo a aluno com matrícula ativa na Impactus Academy (link), MIT esclarecendo que templates/harness são proprietários e fora do pacote - LICENSE MIT adicionada; package.json com author/homepage/repository/bugs - .gitignore sem nome de kit de terceiro Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
1 parent 7ba8b52 commit ad10d27

27 files changed

Lines changed: 554 additions & 2083 deletions

.gitignore

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,8 +9,8 @@ daytona-test/
99
# NÃO versionar aqui: pushes dentro de live1/ vão para o repo do template.
1010
live1/
1111

12-
# Estudo — clones de repos de terceiros só para análise (ex.: vds-saas-starter-kit).
13-
# Nunca versionar: material comprado, não redistribuível.
12+
# Estudo — clones de repos de terceiros só para análise local.
13+
# Nunca versionar: material não redistribuível.
1414
estudo/
1515

1616
# Template multi-tenant local — repositório Git independente.

CLAUDE.md

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,9 @@ keys or extra usage).
2424
- `harness/`, `live1/`, `live2/` — the harness and the two live templates
2525
(separate repos checked out here; the harness is the single source of truth
2626
for skills/commands — templates never carry their own copies).
27-
- `test/``node:test` suite. `docs/` + `DOCS.md` — the deep documentation.
27+
- `test/``node:test` suite. `DOCS.md` — the deep documentation. Internal
28+
planning/design docs live in the private `impactus-internal-docs` repo —
29+
never add them back here (this repo is public).
2830

2931
## Commands
3032

DOCS.md

Lines changed: 25 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -32,8 +32,8 @@ both templates (no org claims) and the webhook subscribes only to `user.*` (and
3232
is optional — `users.ensure` syncs on first login). Both templates ship the
3333
`/admin` panel; in live2 the FIRST user to sign in becomes super-admin, and the
3434
CLI additionally sets `SUPERADMIN_EMAILS` in Convex with the Clerk account
35-
email during installation (extra bootstrap). Spec/roadmap:
36-
[docs/live2-spec.md](./docs/live2-spec.md).
35+
email during installation (extra bootstrap). Spec/roadmap: `live2-spec.md`
36+
in the private `impactus-internal-docs` repo.
3737

3838
### Install modes and stack paths
3939

@@ -156,7 +156,8 @@ its own groups without requiring a CLI release. Without those fields, the
156156
CLI's built-in catalog applies (current live1/live2 behavior).
157157

158158
To ADD a template: an entry in `TEMPLATES` + repo on the community backend's
159-
allowlist (`docs/cli-paid-gate.md`) + `TEMPLATE_GITHUB_TOKEN` scope.
159+
allowlist (`cli-paid-gate.md`, private `impactus-internal-docs` repo) +
160+
`TEMPLATE_GITHUB_TOKEN` scope.
160161

161162
### 2.5 Post-install audit (`--verify`)
162163

@@ -500,19 +501,27 @@ provider without login/key). The switch is logged and traced as
500501
- **Agent phases retry once by default** (`retries: 1`) before failing the run.
501502
- **One FDA at a time per project**: a best-effort `imp/data/.fda.lock`
502503
(pid + fda_id + runner + started_at) blocks a second concurrent run — the
503-
permission gates of two parallel runs would revert each other's work. If a
504-
crash leaves a stale lock, deleting the file is the recovery.
504+
permission gates of two parallel runs would revert each other's work.
505+
Acquisition is atomic (create-exclusive with a stale-retry), so two runs
506+
started in the same instant cannot both pass the liveness probe; a pid that
507+
answers EPERM counts as ALIVE (it exists under another user), and elapsed
508+
time alone never discards a lock — only a dead pid does. If a crash leaves
509+
a stale lock, deleting the file is the recovery.
505510
- **Interactive sessions go read-only while an FDA runs**: the same lock has
506511
a reader side (`imp/scripts/fda-lock.mjs`, also `npm run fda:status`). A
507512
Claude session opened in the project during a run gets a READ-ONLY
508513
notice at session start (SessionStart hook) and a PreToolUse hook blocks
509514
file edits and write-shaped bash commands (incl. `git commit`/`add`/…)
510515
aimed inside the repo — an external write mid-run would be attributed to
511516
the phase agent and rolled back. Interactive Pi gets the same guard via the
512-
`.pi/extensions/fda-lock.ts` extension. The FDA's own child agents are
513-
exempt (the runner exports `FIA_FDA_RUN` into their environment), writes
514-
outside the repo stay allowed, everything fails open, and the block lifts
515-
the moment the run ends.
517+
`.pi/extensions/fda-lock.ts` extension, and Cursor via the
518+
`.cursor/hooks.json` `beforeShellExecution` hook
519+
(`.cursor/hooks/fda-lock-cursor.mjs` — Cursor has no before-edit hook, so
520+
shell commands are the guarded surface; stray agent edits are still swept
521+
by the run's own gate). The FDA's own child agents are exempt (the runner
522+
exports `FIA_FDA_RUN` into their environment), writes outside the repo stay
523+
allowed, everything fails open, and the block lifts the moment the run
524+
ends.
516525
- **Envelopes must declare artifacts**: `artifactsExist`/`filesNonEmpty` gates
517526
now fail on an empty `artifacts` list — an agent that produced nothing can
518527
no longer count as a success.
@@ -546,7 +555,12 @@ provider without login/key). The switch is logged and traced as
546555
the brief FROM DISK (`checkAcceptanceChecklist` in `imp/modules/gates.mjs`;
547556
the file path survives `--resume` via a session marker), one `fix_checklist`
548557
builder round repairs a forgotten checklist, and `checklist_2` fails the run
549-
if any `- [ ]` survives — the gate refuses, it never ticks a box itself. In
558+
if any `- [ ]` survives — the gate refuses, it never ticks a box itself.
559+
The second pass also compares box IDENTITIES against the first
560+
(`checklistDrift`): rewording, moving or swapping a box for a trivial
561+
ticked one is refused the same as deleting it — only the tick and the
562+
`— N/A (<reason>)` annotation are legal edits, and an N/A tick without a
563+
parenthesized reason fails on its own. In
550564
`fda_sdlc` this happens BEFORE review, so the reviewer audits the ticks
551565
against the diff (a false tick is grounds for rejection). Prompts that are
552566
not brief files, and briefs without checkboxes, skip the gate. The ticked
@@ -810,7 +824,7 @@ Services
810824
--tenancy <value> single (Live 1, default) | multi (Live 2: your app's
811825
own organizations in Convex — per-organization
812826
data/billing, roles/permissions, /admin with org
813-
management; spec history in docs/live2-spec.md)
827+
management)
814828
--skip-webhook No Clerk → Convex webhook
815829
--storage <value> convex | r2
816830
--skip-storage Stays on Convex Storage without asking

LICENSE

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
MIT License
2+
3+
Copyright (c) 2026 Impactus Academy (Elber Domingos)
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.

0 commit comments

Comments
 (0)