Commit Graph
22 Commits
Author SHA1 Message Date
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
Claude c21a0725cb user: how to actually show him an image
Asked three times on 2026-08-19 to see a generated icon and answered with a
Preview window, a hunt for terminal image tools, and a hyperlink before an image
appeared. Nothing said he reads through a markdown client, or that the file has
to be public before a tag can reach it.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-08-19 05:58:31 +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