Commit Graph
22 Commits
Author SHA1 Message Date
pastilhasandClaude Opus 5 89fc3241f6 officer-dev is twenty-six PM2 entries, not thirteen
nothing about the platform changed: all 21 plugins were installed on that
machine so the marketplace UI had something real to render. the paragraph under
this one already says the number tracks plugin installs rather than releases —
this is that working, not an exception to it.

caught by `bun run docs:check`, which is the whole reason the number is checkable.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-08-27 08:44:58 +00:00
pastilhasandClaude Opus 5 3552a5a7df officer.dev: account creation exists, and roles are a table
This file said there was no way to create a second account. There is, and has
been since 69a31051 — POST /api/users, owner-gated, with a form under Settings.
platform/CLAUDE.md and docs/roles-and-teams.md carried the same stale claim and
were corrected in the platform repo; this one was missed because I said it was
not in a git repository. It is, through the symlink.

Also records roles as a table with foreign keys onto roles.name, USER_ROLES
gone, and UserRole as a plain string guarded at the write path instead of by the
compiler.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Officer-Session: 656f5c85-e49a-4f1f-b9f3-042a04b4d043
2026-08-23 23:50:00 +00:00
pastilhasandClaude Opus 5 7c41c56577 officer.dev: the pm2 count tracks plugin installs, not releases
Fourteen while Minesweeper was installed, thirteen once it was removed, with no
platform change either way — a plugin that declares a sidecar writes it into the
generated ecosystem file. Says so now, so the next reader does not treat a
change here as a platform change or expect two machines to agree.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Officer-Session: 656f5c85-e49a-4f1f-b9f3-042a04b4d043
2026-08-23 20:31:13 +00:00
pastilhas dc91f78f4f officer.dev: the restart rule was stale, and said the opposite
This file said "NEVER run pm2 yourself — tell the owner the exact command." The
owner granted the opposite on this machine on 2026-08-19, so the document and
the instruction disagreed for a day, and user/CLAUDE.md already flagged it as a
local rule to follow "while it says so".

It now says to run the restart and report it. The scope is unchanged and is the
part that mattered: only the process the change needs, never the whole
ecosystem.config.cjs.

Added the caveat the grant did not remove — check who else is live first. The
owner edits the platform using the platform, several sessions share one
checkout, and a restart is the moment a half-applied change from someone else's
work in progress would ship.
2026-08-21 00:24:29 +00:00
pastilhas eec6a4962e install.sh: clone anywhere, run one command
A manifest declares repo path -> target, and the script walks it. Symlinks, not
copies, so an installed file edits the repo and one commit reaches every other
machine. Idempotent — a correct link is a no-op, safe after every pull. A real
file where a link should go is moved to .bak-<timestamp> and reported, because
on a new machine that may be the only copy of something written by hand.

Conditional targets are what make it portable: officer.dev/CLAUDE.md and the
officer-chat-events hook both name ~/officer-dev/platform, so a laptop with no
Officer install gets neither instead of getting a document that lies.

mask-secret is a command now rather than a path only true on this machine, and
user/CLAUDE.md says so. It is a generated wrapper, not a symlink, and that is
forced: mask-secret.py resolves its own path to find mask-hooks.d, so a symlink
would reach back into the repo and run every machine's hooks. The wrapper sets
MASK_HOOKS_DIR to the ones this machine installed and still runs the script from
the repo, so no code is copied.

Verified against a scratch HOME: re-run is all ok, the hand-written file
survives as .bak, and a machine without Officer skips both conditional lines.
2026-08-21 00:24:22 +00:00
pastilhas 63ab090bb2 never suggest stopping 2026-08-19 07:54:12 +00:00
pastilhas 4036f78cc3 note: reference only, not adopting mcp 2026-08-13 02:37:40 +00:00
pastilhas 3e2a997e58 note ai-memory as prior art for tomorrow 2026-08-13 02:35:33 +00:00
pastilhas 82f9907d26 decide tools install to ~/.local/claude-scripts 2026-08-13 02:13:50 +00:00
pastilhas ed925a14b8 note the bootstrap installer design for next session 2026-08-13 02:10:07 +00:00
pastilhas 28d58728cf split machine-specific stores into mask hooks 2026-08-13 02:08:18 +00:00
pastilhas c6cb958ba5 do not mask throwaway credentials 2026-08-13 02:05:51 +00:00
pastilhas 2809072812 add mask-secret tool and rule 2026-08-13 01:59:42 +00:00
pastilhas 6290dadb62 side effects are usually the agent's to run 2026-08-13 01:49:12 +00:00
pastilhas a45ff4a531 separate verified from assumed 2026-08-13 01:47:03 +00:00
pastilhas b621b39df0 never put credentials in memory or md files 2026-08-13 01:45:09 +00:00
pastilhas d622b9aed4 add credentials rule 2026-08-13 01:42:20 +00:00
pastilhas 38fbbb992a keep final output short 2026-08-13 01:41:11 +00:00
pastilhas ba33542a8a record who the user is and who owns architecture 2026-08-13 01:36:07 +00:00
pastilhas 87806f37c9 add writing style rule 2026-08-13 01:34:59 +00:00
pastilhas 18f7136959 add user and officer.dev claude.md files 2026-08-13 01:33:50 +00:00
pastilhas 77389777f7 initial commit 2026-08-13 01:28:38 +00:00