Self-hosted kanban + markdown workspace where AI agents are first-class users. Every URL serves HTML, Markdown or JSON; REST API and MCP server built in. SvelteKit + SQLite, single process.
Drift inferred · capture-to-capture
No drift recorded — single capability capture; advisories appear once its surface changes.
transport — counts 54 tools · 0 res
· 0 prompts
permission surface via code analysis
tools
-
add_comment
-
add_label_to_card
-
admin_create_invite
-
admin_delete_invite
-
admin_get_settings
-
admin_list_invites
-
admin_list_users
-
admin_set_role
-
admin_update_settings
-
archive_board
-
archive_card
-
archive_column
-
assign_card
-
attach_file
-
create_board
-
create_card
-
create_column
-
create_doc
-
create_label
-
delete_attachment
-
delete_comment
-
delete_doc
-
delete_label
-
detach_card
-
get_activity
-
get_board
-
get_board_archive
-
get_card
-
get_doc
-
inbox
-
link_doc_to_card
-
list_attachments
-
list_boards
-
list_columns
-
list_docs
-
list_labels
-
list_principals
-
list_revisions
-
move_card
-
move_column
-
remove_label_from_card
-
rename_column
-
save_doc
-
search
-
set_doc_visibility
-
unarchive_board
-
unarchive_card
-
unarchive_column
-
unassign_card
-
unlink_doc_from_card
-
update_board
-
update_card
-
update_label
-
whoami
prompt-surface
shipped agent-instruction files + hidden-content / dangerous-code findings —
quoted from the analyzed source
analyzed commit 7267647 · analyzer v33 · 2w ago
skills & prompt files 1
- agent-rules cryguy-hashboard-7267647/CLAUDE.md
evidence-backed
findings quoted directly from the published source artifact — not inferred
code files: 192
filesystem 3
- fs (weak) cryguy-hashboard-7267647/scripts/copy-scalar.mjs :5
import { copyFileSync, mkdirSync } from 'node:fs'; - fs (weak) cryguy-hashboard-7267647/src/lib/server/services/attachments.spec.ts :1
import { existsSync, mkdtempSync, readFileSync, rmSync } from 'node:fs'; - fs cryguy-hashboard-7267647/src/lib/server/storage.ts :2
import { mkdirSync, readFileSync, rmSync, writeFileSync } from 'node:fs';
network 2
- net cryguy-hashboard-7267647/src/lib/api.ts :28
const response = await fetch(`/api/v1${path}`, { - net cryguy-hashboard-7267647/src/lib/server/services/feed.ts :101
if (!cache.has(id)) cache.set(id, fetch());
database 2
- db (weak) cryguy-hashboard-7267647/scripts/migrate.mjs :10
import Database from 'better-sqlite3'; - db cryguy-hashboard-7267647/src/lib/server/db/client.ts :1
import Database from 'better-sqlite3';
tool registrations 54
- whoami cryguy-hashboard-7267647/src/lib/server/mcp/server.ts :121
- list_boards cryguy-hashboard-7267647/src/lib/server/mcp/server.ts :137
- get_board cryguy-hashboard-7267647/src/lib/server/mcp/server.ts :153
- create_board cryguy-hashboard-7267647/src/lib/server/mcp/server.ts :163
- update_board cryguy-hashboard-7267647/src/lib/server/mcp/server.ts :177
- archive_board cryguy-hashboard-7267647/src/lib/server/mcp/server.ts :192
- unarchive_board cryguy-hashboard-7267647/src/lib/server/mcp/server.ts :198
- get_board_archive cryguy-hashboard-7267647/src/lib/server/mcp/server.ts :207
- create_column cryguy-hashboard-7267647/src/lib/server/mcp/server.ts :224
- list_columns cryguy-hashboard-7267647/src/lib/server/mcp/server.ts :233
- rename_column cryguy-hashboard-7267647/src/lib/server/mcp/server.ts :239
- move_column cryguy-hashboard-7267647/src/lib/server/mcp/server.ts :248
- archive_column cryguy-hashboard-7267647/src/lib/server/mcp/server.ts :262
- unarchive_column cryguy-hashboard-7267647/src/lib/server/mcp/server.ts :272
- create_card cryguy-hashboard-7267647/src/lib/server/mcp/server.ts :283
- get_card cryguy-hashboard-7267647/src/lib/server/mcp/server.ts :301
- move_card cryguy-hashboard-7267647/src/lib/server/mcp/server.ts :311
- detach_card cryguy-hashboard-7267647/src/lib/server/mcp/server.ts :326
- update_card cryguy-hashboard-7267647/src/lib/server/mcp/server.ts :335
- unarchive_card cryguy-hashboard-7267647/src/lib/server/mcp/server.ts :352
- archive_card cryguy-hashboard-7267647/src/lib/server/mcp/server.ts :361
- assign_card cryguy-hashboard-7267647/src/lib/server/mcp/server.ts :367
- unassign_card cryguy-hashboard-7267647/src/lib/server/mcp/server.ts :380
- inbox cryguy-hashboard-7267647/src/lib/server/mcp/server.ts :392
- create_doc cryguy-hashboard-7267647/src/lib/server/mcp/server.ts :410
- get_doc cryguy-hashboard-7267647/src/lib/server/mcp/server.ts :425
- save_doc cryguy-hashboard-7267647/src/lib/server/mcp/server.ts :435
- set_doc_visibility cryguy-hashboard-7267647/src/lib/server/mcp/server.ts :450
- delete_doc cryguy-hashboard-7267647/src/lib/server/mcp/server.ts :462
- list_docs cryguy-hashboard-7267647/src/lib/server/mcp/server.ts :475
- list_revisions cryguy-hashboard-7267647/src/lib/server/mcp/server.ts :490
- list_attachments cryguy-hashboard-7267647/src/lib/server/mcp/server.ts :511
- attach_file cryguy-hashboard-7267647/src/lib/server/mcp/server.ts :536
- delete_attachment cryguy-hashboard-7267647/src/lib/server/mcp/server.ts :570
- add_comment cryguy-hashboard-7267647/src/lib/server/mcp/server.ts :585
- delete_comment cryguy-hashboard-7267647/src/lib/server/mcp/server.ts :598
- list_labels cryguy-hashboard-7267647/src/lib/server/mcp/server.ts :611
- create_label cryguy-hashboard-7267647/src/lib/server/mcp/server.ts :623
- update_label cryguy-hashboard-7267647/src/lib/server/mcp/server.ts :632
- delete_label cryguy-hashboard-7267647/src/lib/server/mcp/server.ts :646
- add_label_to_card cryguy-hashboard-7267647/src/lib/server/mcp/server.ts :658
- remove_label_from_card cryguy-hashboard-7267647/src/lib/server/mcp/server.ts :670
- link_doc_to_card cryguy-hashboard-7267647/src/lib/server/mcp/server.ts :682
- unlink_doc_from_card cryguy-hashboard-7267647/src/lib/server/mcp/server.ts :695
- list_principals cryguy-hashboard-7267647/src/lib/server/mcp/server.ts :707
- search cryguy-hashboard-7267647/src/lib/server/mcp/server.ts :722
- get_activity cryguy-hashboard-7267647/src/lib/server/mcp/server.ts :749
- admin_list_users cryguy-hashboard-7267647/src/lib/server/mcp/server.ts :798
- admin_set_role cryguy-hashboard-7267647/src/lib/server/mcp/server.ts :815
- admin_get_settings cryguy-hashboard-7267647/src/lib/server/mcp/server.ts :825
- admin_update_settings cryguy-hashboard-7267647/src/lib/server/mcp/server.ts :834
- admin_list_invites cryguy-hashboard-7267647/src/lib/server/mcp/server.ts :846
- admin_create_invite cryguy-hashboard-7267647/src/lib/server/mcp/server.ts :852
- admin_delete_invite cryguy-hashboard-7267647/src/lib/server/mcp/server.ts :865
install hooks 1
- prepare cryguy-hashboard-7267647/package.json :11
node scripts/copy-scalar.mjs && svelte-kit sync || echo ''
declared dependencies 41
- @modelcontextprotocol/sdk@^1.30.0
- @fontsource-variable/ibm-plex-sans@^5.3.0
- @fontsource-variable/jetbrains-mono@^5.3.0
- @fontsource-variable/space-grotesk@^5.3.0
- @scalar/api-reference@^1.64.0
- better-sqlite3@^13.0.2
- drizzle-orm@^0.45.2
- lowlight@^3.3.0
- markdown-it@^15.0.0
- openid-client@^6.8.4
- prosemirror-commands@^1.7.1
- prosemirror-dropcursor@^1.8.3
- prosemirror-gapcursor@^1.4.1
- prosemirror-history@^1.5.0
- prosemirror-inputrules@^1.5.1
- prosemirror-keymap@^1.2.3
- prosemirror-markdown@^1.13.5
- prosemirror-model@^1.25.11
- prosemirror-schema-list@^1.5.1
- prosemirror-state@^1.4.4
- prosemirror-view@^1.42.2
- zod@^4.4.3
- @eslint/js@^10.0.1
- @sveltejs/adapter-node@^5.5.4
- @sveltejs/kit@^2.63.0
- @sveltejs/vite-plugin-svelte@^7.1.2
- @types/better-sqlite3@^7.6.13
- @types/node@^24
- drizzle-kit@^0.31.10
- eslint@^10.4.1
- eslint-config-prettier@^10.1.8
- eslint-plugin-svelte@^3.19.0
- globals@^17.6.0
- prettier@^3.8.3
- prettier-plugin-svelte@^4.1.0
- svelte@^5.56.1
- svelte-check@^4.6.0
- typescript@^6.0.3
- typescript-eslint@^8.60.1
- vite@^8.0.16
- vitest@^4.1.8