Skip to content

feat(skills): add skill entity seed schema and boot-time registration#315

Open
castor-agent wants to merge 10 commits into
mainfrom
feat/skill-seed-schema
Open

feat(skills): add skill entity seed schema and boot-time registration#315
castor-agent wants to merge 10 commits into
mainfrom
feat/skill-seed-schema

Conversation

@castor-agent
Copy link
Copy Markdown
Collaborator

@castor-agent castor-agent commented May 20, 2026

Summary

  • Adds src/services/skills/seed_schema.ts — idempotent boot-time schema seeder for the skill entity type, following the same pattern as plans/seed_schema.ts and issues/seed_schema.ts
  • Wires seedSkillSchema() into actions.ts alongside issue and plan seeds so the global skill schema is guaranteed on every server start
  • Covers all 11 skill fields: name, description, triggers, content, slug, user_invocable, enabled, version, supported_harnesses, harness_config, synced_at
  • canonical_name_fields: ["name"] — one row per skill name per instance
  • user_specific: false (global schema), migrate_existing: true for incremental field backfills
  • Adds docs/developer/skills_guide.md — user-facing guide for skills (storage, retrieval, mirror, slash-palette), in line with the feature guides added in docs: add user-facing feature guides (plans, issues, mirror, subs) #314
  • Adds Feature guides section to docs/developer/getting_started.md with skills alongside plans, issues, mirror, and subscriptions

Relationship to #314

PR #314 adds user-facing feature guides for plans, issues, mirror, and subscriptions. This PR adds the equivalent guide for skills and includes the same Feature guides section in getting_started.md. These two PRs will have a minor conflict on getting_started.md (both add the same section header) — whichever merges second should keep both entries.

Test plan

  • Fresh server start seeds skill schema without error
  • Re-running seed on existing schema is a no-op (idempotent)
  • Adding a new field to SKILL_FIELDS on a running instance triggers incremental update and migrates existing rows
  • docs/developer/skills_guide.md renders on /docs route

🤖 Generated with Claude Code

castor-agent and others added 5 commits May 19, 2026 16:14
…ntent (#267)

Add Intent-triggered task creation rule to [TASKS & COMMITMENTS] section of
MCP instructions. When user messages contain trigger phrases ("I need to",
"remind me", "follow up", "I should", "don't let me forget", "make sure I",
"I have to", "I want to", "I must", "don't forget", "remember to"), agents
MUST create a task entity with entity_type: "task" and status: "pending" in
the user-phase store (Step 2) before composing the reply. Explicit FORBIDDEN
clauses prevent deferring task creation or skipping it when trigger phrases
are present.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
… creation (#253)

Add [RELATIONSHIP CREATION] section to the MCP fenced instruction block
with five rules:
- Pre-store candidate discovery: check for logically related entities
  before completing a store; FORBIDDEN to skip this consideration
- Relationship-in-same-store: prefer the store relationships array over
  separate create_relationship calls; use create_relationships only as
  follow-up when target id was unknown at store time
- Canonical relationship examples: 8 typed REFERS_TO patterns (person→org,
  task→conversation, activity→source conversation, issue→plan/spec,
  note→subject, event→place, task→person, entity→source artifact)
- retrieve_related_entities for traversal guidance
- Relationship direction convention for REFERS_TO and PART_OF

Add pointer-only entry in cli_agent_instructions.md per canonical-first
sync rules (no duplicating full instruction body).

Update Design rationale section inventory to include [RELATIONSHIP CREATION].

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
When the diff-size gate evaluates to substantial=false, a new step posts
a PR comment stating the file/line count and the thresholds that would
trigger a review, plus the @claude review escape hatch.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Update inspector to entity history, timeline layers, and design showcase.
Refine lexical search so multi-word titles containing registered type names
still match (e.g. plan titles ending in "Strategy"). Add shadcn audit/rules
and FU-2026-05-003 plan. Docs hierarchy Playwright spec lands separately
once GET /docs?format=json is wired.
Adds `src/services/skills/seed_schema.ts` — an idempotent boot-time
schema seeder for the `skill` entity type, following the same pattern
as plans and issues. Wires `seedSkillSchema()` into `actions.ts` so the
global skill schema (fields: name, description, triggers, content, slug,
user_invocable, enabled, version, supported_harnesses, harness_config,
synced_at) is guaranteed to exist on every server start, surviving fresh
DB installs without requiring manual MCP calls.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
castor-agent and others added 4 commits May 20, 2026 08:57
Adds `docs/developer/skills_guide.md` covering skill entity storage,
MCP/CLI retrieval, mirror-to-disk layout, slash-command palette
activation via `user_invocable`, and the full field reference.

Also adds the Feature guides section to `getting_started.md` (in line
with PR #314) with skills listed alongside plans, issues, mirror, and
subscriptions.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Main repo root has no .env file; env lives in ~/.config/neotoma/.env.
Add it as the last fallback candidate so worktrees get an env baseline.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
…bump

Restore queryEntitiesByExactEntityId for full ent_* search strings (header
search and API). Add unit tests for entity-type keyword boost and integration
tests for id resolution. Point inspector submodule at design catalog, route
loading UX, snapshot_display wiring, and abort-aware search hooks. Fix
inspector mount integration fixtures for /inspector base path validation.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
@castor-agent
Copy link
Copy Markdown
Collaborator Author

/create_pr skill audit

Automated audit against the /create_pr skill (Neotoma plan ent_8cde942847555a83253dfe5b), which defines the standard PR description structure (Problems / Solutions / UX improvements / Documentation / Test plan / Breaking changes), the pre-PR checklist from .claude/rules/change_guardrails_rules.md, and the functional-change documentation gate (docs entry + docs/site/site_doc_manifest.yaml + docs server surfacing).

Verdict: does not fully meet standards. Gaps below; recommended changes follow each item.

Findings

  • Missing required sections: Problems, Solutions, UX improvements, Documentation, Breaking changes.
  • Breaking changes section MUST be present, even for non-breaking PRs (write No breaking changes.).
  • docs/site/site_doc_manifest.yaml is not updated. New or substantively changed docs must be registered there so the docs site surfaces them.
  • PR body does not confirm the doc is reachable via the docs server (src/services/docs/) or list the specific docs/...md path under the Documentation section.
  • No Related section and no Fixes #N / Closes #N reference — link the plan and/or issue(s) so the PR closes them on merge.

Recommended changes

Update the PR description to match the skill template exactly:

## Problems
- <Concrete pain point or gap.>

## Solutions
- <Concrete change made.>

## UX improvements
- <User-visible behavior change, or `No user-visible change.`>

## Documentation
- <docs/... path(s) added or updated; parameters/outputs/examples/error modes covered.>
- <`docs/site/site_doc_manifest.yaml` entry added/updated; docs service tests pass.>
- <Or: `No functional change; no user-facing docs required.`>

## Test plan
- [ ] `npm run type-check`
- [ ] `npm test`
- [ ] `npm test -- src/services/docs` (if docs changed)
- [ ] Manual verification: <steps>

## Breaking changes
No breaking changes.

## Related
- Plan: <Neotoma plan entity_id or docs/ path>
- Issue(s): <#N>

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Functional surfaces detected from the diff: MCP. Per the skill, the Documentation section must point at a real docs/...md path covering parameters, outputs, at least one example, and error modes, and the doc must be listed in docs/site/site_doc_manifest.yaml so it is surfaced by the docs server and docs site.

Posted by /create_pr skill audit run. See .claude/skills/create_pr/SKILL.md for the full template.

Branch pinned inspector at 9ea252460 which is not publicly reachable
in neotoma-inspector, causing CI to fail with 'not our ref' on submodule
init. Reset to 206e14e (the commit main currently pins).

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant