paperclip/server/src/services
MrBob 5f16efb3d0
fix: parse YAML block scalar skill descriptions (#5046)
## Thinking Path

> - Paperclip is the open source control plane teams use to manage AI
agents for work.
> - Company skills are imported from `SKILL.md` files and rely on YAML
frontmatter to describe what each skill does.
> - Multi-line descriptions commonly use YAML block scalars (`>` and
`|`), but the broken parser path behind #4989 reduced those descriptions
to a literal `>` or `|`.
> - The earliest contributor fix for that bug was PR #5046, so this
branch keeps that PR as the canonical merge target instead of replacing
it.
> - Follow-up work from #5071 and #8258 was then transplanted onto this
earlier branch so the final PR preserves contributor credit while still
shipping the strongest complete fix.
> - The resulting change fixes block-scalar parsing in the shared
frontmatter path, aligns server company-skill imports with that shared
parser, and prevents already-stale stored markers from rendering as junk
in the UI.

## Linked Issues or Issue Description

- Fixes #4989
- Refs #2863
- Refs #788
- Related superseded PRs: #5071, #8258

## What Changed

- Kept the original PR #5046 server-side company-skill fix and
regression coverage as the base branch history.
- Added the missing YAML chomping and indicator hardening explored
further in #5071.
- Moved frontmatter parsing to the shared parser path so
`packages/shared`, `packages/skills-catalog`, and server company-skill
imports stay aligned.
- Added UI summary sanitization and fallback handling so stale stored
`>` / `|` values no longer render as visible junk in company-skill
cards.
- Added regression coverage for shared frontmatter parsing,
skills-catalog parsing, company-skill imports, and stale-summary
fallback behavior.

## Verification

- Passed locally: `pnpm exec vitest run
packages/shared/src/frontmatter.test.ts
packages/skills-catalog/src/frontmatter.test.ts
server/src/__tests__/company-skills.test.ts
ui/src/lib/company-skill-summary.test.ts`
- Passed locally: `pnpm --filter @paperclipai/shared typecheck`
- Passed locally: `pnpm --filter @paperclipai/skills-catalog typecheck`
- Not fully runnable in this worktree: `pnpm --filter
@paperclipai/server typecheck` currently fails in `packages/plugins/sdk`
before reaching server code because local workspace `node_modules` type
deps are missing (`TS2688` for `node` / `react`).
- GitHub Actions / PR checks are rerunning on PR #5046 head
`005290b7557725abf748d00f36dd24ea0d919aba`.

## Risks

- Medium-low risk: the fix now touches shared parser code, server
company-skill imports, and UI fallback display rather than only the
server import path.
- The parser is still intentionally narrower than a full YAML
implementation; this change focuses on block-scalar correctness and the
stale-description rendering path relevant to #4989 / #2863.
- This branch intentionally supersedes narrower overlapping work from
#5071 and duplicate work from #8258 once the survivor PR is green.

> For core feature work, check [`ROADMAP.md`](ROADMAP.md) first and
discuss it in `#dev` before opening the PR. Feature PRs that overlap
with planned core work may need to be redirected — check the roadmap
first. See `CONTRIBUTING.md`.

## Model Used

- OpenAI Codex / GPT-5-based coding agent with local shell and
code-editing tools enabled.

## Checklist

- [x] I have included a thinking path that traces from project context
to this change
- [x] I have specified the model used (with version and capability
details)
- [x] I have checked ROADMAP.md and confirmed this PR does not duplicate
planned core work
- [x] I have searched GitHub for duplicate or related PRs and linked
them above
- [x] I have either (a) linked existing issues with `Fixes: #` / `Closes
#` / `Refs #` OR (b) described the issue in-PR following the relevant
issue template
- [x] I have run tests locally and they pass
- [x] I have added or updated tests where applicable
- [ ] If this change affects the UI, I have included before/after
screenshots
- [x] I have updated relevant documentation to reflect my changes
- [x] I have considered and documented any risks above
- [ ] All Paperclip CI gates are green
- [ ] Greptile is 5/5 with no open P2s, recommendations, or follow-ups
- [x] I will address all Greptile and reviewer comments before
requesting merge

---------

Co-authored-by: Devin Foley <devin@paperclip.ing>
2026-06-18 12:01:11 -07:00
..
recovery fix: resolve secret refs before sandbox draft probes (#8256) 2026-06-18 07:48:09 -07:00
access.ts [codex] prevent invalid agents from receiving assignments and runs (#7663) 2026-06-06 12:45:57 -05:00
activity-log.ts [codex] Add plugin orchestration host APIs (#4114) 2026-04-20 08:52:51 -05:00
activity.ts [codex] Clarify interrupt handoffs and scoped wake semantics (#7855) 2026-06-09 21:57:21 -05:00
adapter-models-env.test.ts feat(server): kubernetes execution integration for sandbox-provider plugins (stage 2/3) (#7938) 2026-06-10 21:09:02 -07:00
adapter-models-env.ts feat(server): kubernetes execution integration for sandbox-provider plugins (stage 2/3) (#7938) 2026-06-10 21:09:02 -07:00
adapter-plugin-store.ts [codex] Add runtime lifecycle recovery and live issue visibility (#4419) 2026-04-24 15:50:32 -05:00
adapter-registry-bootstrap.reconcile.test.ts feat(server): kubernetes execution integration for sandbox-provider plugins (stage 2/3) (#7938) 2026-06-10 21:09:02 -07:00
adapter-registry-bootstrap.test.ts feat(server): kubernetes execution integration for sandbox-provider plugins (stage 2/3) (#7938) 2026-06-10 21:09:02 -07:00
adapter-registry-bootstrap.ts feat(server): kubernetes execution integration for sandbox-provider plugins (stage 2/3) (#7938) 2026-06-10 21:09:02 -07:00
agent-assignability.ts [codex] prevent invalid agents from receiving assignments and runs (#7663) 2026-06-06 12:45:57 -05:00
agent-instructions.ts chore: mark bootstrapPromptTemplate as deprecated 2026-03-26 11:12:25 -05:00
agent-invokability.ts [codex] prevent invalid agents from receiving assignments and runs (#7663) 2026-06-06 12:45:57 -05:00
agent-permissions.ts [codex] Add teams catalog extraction (#7550) 2026-06-05 12:55:49 -05:00
agent-start-lock.ts [codex] Add runtime lifecycle recovery and live issue visibility (#4419) 2026-04-24 15:50:32 -05:00
agents.ts [codex] Add clear-error agent action (#7695) 2026-06-07 10:33:29 -05:00
approvals.ts Add username log censor setting 2026-03-20 08:50:00 -05:00
assets.ts
authorization.ts cloud_tenant: company-scoped tenants, never instance-admin (#7525) 2026-06-11 17:59:32 -07:00
board-auth.ts Improve CLI API parity coverage (#6626) 2026-06-02 17:13:29 -07:00
budgets.ts fix: Stop archived companies from waking agents (#7478) 2026-06-03 21:07:14 -07:00
catalog-provenance.ts [codex] Add skills CLI and catalog management (#6782) 2026-05-28 07:33:51 -10:00
cloud-upstreams.ts [codex] Bundle local branch fixes from PAP-10032 (#6604) 2026-05-25 07:25:26 -05:00
companies.ts fix: Stop archived companies from waking agents (#7478) 2026-06-03 21:07:14 -07:00
company-artifacts.ts PAP-10440: group artifacts by task stacks (#7654) 2026-06-06 10:22:47 -05:00
company-export-readme.ts fix: link Agent Company to agentcompanies.io in export README 2026-03-20 08:06:04 -05:00
company-member-roles.ts [codex] Add agent permissions and controls plan (#6386) 2026-05-22 08:12:52 -05:00
company-portability.ts Build the Skills Store (#7990) 2026-06-11 14:02:09 -05:00
company-search-rate-limit.ts Add full company search page (#5293) 2026-05-06 06:32:37 -05:00
company-search.ts Add company artifacts page (#7621) 2026-06-05 18:11:05 -05:00
company-skills.ts fix: parse YAML block scalar skill descriptions (#5046) 2026-06-18 12:01:11 -07:00
costs.ts Improve operator workflow QoL (#5291) 2026-05-06 06:30:44 -05:00
cron.ts Add plugin framework and settings UI 2026-03-13 16:22:34 -05:00
dashboard.ts [codex] Harden heartbeat scheduling and runtime controls (#4223) 2026-04-21 12:24:11 -05:00
default-agent-instructions.ts Add default agent instructions bundle 2026-03-20 07:42:36 -05:00
document-annotations.ts Make deleted-comment cleanup atomic 2026-06-05 03:56:39 +00:00
documents.ts Add low-trust review containment (#7530) 2026-06-05 16:48:02 -05:00
environment-config.ts fix: resolve secret refs before sandbox draft probes (#8256) 2026-06-18 07:48:09 -07:00
environment-execution-target.ts Fix exe.dev sandbox installs for gemini/opencode local adapters (#5737) 2026-05-11 14:28:22 -07:00
environment-probe.ts Add sandbox environment support (#4415) 2026-04-24 12:15:53 -07:00
environment-run-orchestrator.ts feat(server): kubernetes execution integration for sandbox-provider plugins (stage 2/3) (#7938) 2026-06-10 21:09:02 -07:00
environment-runtime.ts feat(server): kubernetes execution integration for sandbox-provider plugins (stage 2/3) (#7938) 2026-06-10 21:09:02 -07:00
environments.ts fix(environments): partial unique index to dedup managed sandbox rows (#8247) 2026-06-17 16:09:45 -07:00
execution-allowlist.test.ts feat(server): kubernetes execution integration for sandbox-provider plugins (stage 2/3) (#7938) 2026-06-10 21:09:02 -07:00
execution-allowlist.ts feat(server): kubernetes execution integration for sandbox-provider plugins (stage 2/3) (#7938) 2026-06-10 21:09:02 -07:00
execution-policy-bootstrap.test.ts feat(server): kubernetes execution integration for sandbox-provider plugins (stage 2/3) (#7938) 2026-06-10 21:09:02 -07:00
execution-policy-bootstrap.ts feat(server): kubernetes execution integration for sandbox-provider plugins (stage 2/3) (#7938) 2026-06-10 21:09:02 -07:00
execution-workspace-policy.ts Add low-trust review containment (#7530) 2026-06-05 16:48:02 -05:00
execution-workspaces.ts [codex] Bundle local branch fixes from PAP-10032 (#6604) 2026-05-25 07:25:26 -05:00
feedback-redaction.ts Add feedback voting and thumbs capture flow 2026-04-02 09:11:49 -05:00
feedback-share-client.ts Restore feedback trace export fixes 2026-04-03 15:59:42 -05:00
feedback.ts Redact deleted issue comments 2026-06-05 03:20:46 +00:00
finance.ts Sync/master post pap1497 followups 2026 04 15 (#3779) 2026-04-15 21:13:56 -05:00
github-fetch.ts fix: harden GHE URL detection and extract shared GitHub helpers 2026-04-01 21:05:48 +00:00
goals.ts Improve onboarding defaults and issue goal fallback 2026-03-12 08:50:31 -05:00
heartbeat-run-summary.ts [codex] Add run liveness continuations (#4083) 2026-04-20 06:01:49 -05:00
heartbeat-stop-metadata.test.ts [codex] Retry max-turn exhausted heartbeats (#5096) 2026-05-03 11:30:48 -05:00
heartbeat-stop-metadata.ts [codex] Retry max-turn exhausted heartbeats (#5096) 2026-05-03 11:30:48 -05:00
heartbeat.ts fix: resolve secret refs before sandbox draft probes (#8256) 2026-06-18 07:48:09 -07:00
hire-hook.ts fix(adapters): honor paused overrides and isolate UI parser state 2026-04-04 14:04:33 -05:00
inbox-dismissals.ts Persist non-issue inbox dismissals 2026-04-09 06:16:05 -05:00
index.ts feat(server): kubernetes execution integration for sandbox-provider plugins (stage 2/3) (#7938) 2026-06-10 21:09:02 -07:00
instance-settings.ts feat(ui): NUX rework behind enableConferenceRoomChat experimental flag — capsule onboarding, conference-room chat, unified composer (#8000) 2026-06-11 16:32:55 -05:00
invite-grants.ts feat: implement multi-user access and invite flows (#3784) 2026-04-17 09:44:19 -05:00
issue-approvals.ts
issue-assignment-wakeup.ts fix: close remaining routine merge blockers 2026-03-20 16:40:27 -05:00
issue-continuation-summary.ts Add low-trust review containment (#7530) 2026-06-05 16:48:02 -05:00
issue-execution-policy.ts Add low-trust review containment (#7530) 2026-06-05 16:48:02 -05:00
issue-goal-fallback.ts Seed onboarding project and issue goal context 2026-03-24 11:48:59 -05:00
issue-liveness.ts [codex] Add runtime lifecycle recovery and live issue visibility (#4419) 2026-04-24 15:50:32 -05:00
issue-recovery-actions.ts [codex] Add source-scoped recovery actions (#5599) 2026-05-12 09:37:15 -05:00
issue-references.ts Redact deleted issue comments 2026-06-05 03:20:46 +00:00
issue-thread-interactions.test.ts [codex] Add structured issue-thread interactions (#4244) 2026-04-21 20:15:11 -05:00
issue-thread-interactions.ts [codex] Add checkbox confirmation issue interactions (#7649) 2026-06-06 08:48:43 -05:00
issue-tree-control.ts [codex] Split backend control-plane QoL slice (#4700) 2026-04-28 16:46:45 -05:00
issues.ts fix: resolve orphan-sweep null-assignee filter regression (#8018) 2026-06-12 09:20:00 -07:00
json-schema-secret-refs.ts Generalize sandbox provider core for plugin-only providers (#4449) 2026-04-24 18:03:41 -07:00
live-events.ts Add plugin framework and settings UI 2026-03-13 16:22:34 -05:00
local-service-supervisor.ts Add workspace file viewer and artifact links (#7681) 2026-06-09 17:17:43 -05:00
low-trust-runtime-containment.ts Add low-trust review containment (#7530) 2026-06-05 16:48:02 -05:00
plugin-capability-validator.ts [codex] Add agent permissions and controls plan (#6386) 2026-05-22 08:12:52 -05:00
plugin-config-validator.ts Refactor secret-ref format registration to use a UI hint for Paperclip secret UUIDs 2026-03-14 15:43:56 -07:00
plugin-database.ts Fix LLM Wiki package and migration validation (#6010) 2026-05-15 10:20:02 -05:00
plugin-dev-watcher.ts [codex] Improve local plugin development workflow (#5821) 2026-05-12 17:38:24 -05:00
plugin-environment-driver.ts fix(plugin): raise environmentProbe RPC timeout to 120s for cold-start sandboxes (#6289) 2026-05-18 09:32:12 -07:00
plugin-event-bus.ts Simplify plugin runtime and cleanup lifecycle 2026-03-13 16:58:29 -05:00
plugin-host-service-cleanup.ts Add plugin framework and settings UI 2026-03-13 16:22:34 -05:00
plugin-host-services.ts feat(security): plugin tables get company_id FK for tenant isolation (#5865) 2026-06-12 10:17:19 -07:00
plugin-job-coordinator.ts Add plugin framework and settings UI 2026-03-13 16:22:34 -05:00
plugin-job-scheduler.ts Add plugin framework and settings UI 2026-03-13 16:22:34 -05:00
plugin-job-store.ts Add plugin framework and settings UI 2026-03-13 16:22:34 -05:00
plugin-lifecycle.ts [codex] Runtime control-plane fixes (#6380) 2026-05-20 10:37:11 -05:00
plugin-loader.ts Auto-build bundled plugins on install (#8254) 2026-06-17 22:39:55 -07:00
plugin-local-folders.ts [codex] Roll up May 17 branch changes (#6210) 2026-05-17 17:15:06 -05:00
plugin-log-retention.ts Add plugin framework and settings UI 2026-03-13 16:22:34 -05:00
plugin-managed-agents.ts [codex] Add LLM Wiki plugin host support (#5597) 2026-05-10 07:34:12 -05:00
plugin-managed-routines.ts Expand plugin host surface (#5205) 2026-05-05 07:42:57 -05:00
plugin-managed-skills.ts [codex] Add LLM Wiki plugin host support (#5597) 2026-05-10 07:34:12 -05:00
plugin-manifest-validator.ts Add plugin framework and settings UI 2026-03-13 16:22:34 -05:00
plugin-registry.ts feat(security): plugin tables get company_id FK for tenant isolation (#5865) 2026-06-12 10:17:19 -07:00
plugin-runtime-sandbox.ts Add plugin framework and settings UI 2026-03-13 16:22:34 -05:00
plugin-secrets-handler.ts Add secrets provider vaults and remote import (#5429) 2026-05-09 18:22:17 -05:00
plugin-state-store.ts Add plugin framework and settings UI 2026-03-13 16:22:34 -05:00
plugin-stream-bus.ts Add plugin framework and settings UI 2026-03-13 16:22:34 -05:00
plugin-tool-dispatcher.ts fix(plugin-tool-dispatcher): propagate pluginDbId so worker.isRunning resolves (#5671) 2026-06-03 19:13:21 -07:00
plugin-tool-registry.ts fix(plugin-tool-dispatcher): propagate pluginDbId so worker.isRunning resolves (#5671) 2026-06-03 19:13:21 -07:00
plugin-worker-manager.ts [codex] Bundle local branch fixes from PAP-10032 (#6604) 2026-05-25 07:25:26 -05:00
portable-path.ts [codex] Add skills CLI and catalog management (#6782) 2026-05-28 07:33:51 -10:00
principal-access-compatibility.ts [codex] Add agent permissions and controls plan (#6386) 2026-05-22 08:12:52 -05:00
productivity-review.ts Guard cheap recovery model usage (#6371) 2026-05-19 13:46:02 -05:00
project-workspace-runtime-config.ts [codex] Respect manual workspace runtime controls (#4125) 2026-04-20 10:39:37 -05:00
projects.ts Information Architecture + project/agent visual refresh (experimental) (#7543) 2026-06-06 09:17:27 -05:00
quota-windows.ts feat(costs): add billing, quota, and budget control plane 2026-03-16 15:11:01 -05:00
resource-memberships.ts [codex] Add resource membership controls (#6677) 2026-05-25 13:12:41 -05:00
routines-formatter-cache.test.ts fix(server): cache Intl.DateTimeFormat per timezone in cron minute-stepper (#8033) (#8034) 2026-06-12 10:15:53 -07:00
routines.ts fix(server): cache Intl.DateTimeFormat per timezone in cron minute-stepper (#8033) (#8034) 2026-06-12 10:15:53 -07:00
run-continuations.ts [codex] Add runtime lifecycle recovery and live issue visibility (#4419) 2026-04-24 15:50:32 -05:00
run-liveness.ts [codex] Add runtime lifecycle recovery and live issue visibility (#4419) 2026-04-24 15:50:32 -05:00
run-log-store.ts [codex] Add runtime lifecycle recovery and live issue visibility (#4419) 2026-04-24 15:50:32 -05:00
runtime-skill-selections.ts Build the Skills Store (#7990) 2026-06-11 14:02:09 -05:00
sandbox-provider-runtime.ts Generalize sandbox provider core for plugin-only providers (#4449) 2026-04-24 18:03:41 -07:00
secrets.ts fix: resolve secret refs before sandbox draft probes (#8256) 2026-06-18 07:48:09 -07:00
session-workspace-cwd.test.ts fix(remote-sandbox): harden host workspace resumes (#5922) 2026-05-13 16:23:04 -05:00
session-workspace-cwd.ts fix(remote-sandbox): harden host workspace resumes (#5922) 2026-05-13 16:23:04 -05:00
sidebar-badges.ts Persist non-issue inbox dismissals 2026-04-09 06:16:05 -05:00
sidebar-preferences.ts [codex] Improve workspace runtime and navigation ergonomics (#3680) 2026-04-14 12:57:11 -05:00
skills-catalog.ts Add referenced last30days catalog entry 2026-06-04 20:01:25 +00:00
source-trust.ts Add low-trust review containment (#7530) 2026-06-05 16:48:02 -05:00
teams-catalog.ts [codex] Add teams catalog extraction (#7550) 2026-06-05 12:55:49 -05:00
trust-preset-resolver.ts Add low-trust review containment (#7530) 2026-06-05 16:48:02 -05:00
work-products.ts Add low-trust review containment (#7530) 2026-06-05 16:48:02 -05:00
workspace-file-resources.ts Add workspace file viewer and artifact links (#7681) 2026-06-09 17:17:43 -05:00
workspace-operation-log-store.ts Add workspace operation tracking and fix project properties JSX 2026-03-17 09:36:35 -05:00
workspace-operations.ts [codex] Improve agent runtime recovery and governance (#4086) 2026-04-20 06:19:48 -05:00
workspace-realization.ts Add sandbox environment support (#4415) 2026-04-24 12:15:53 -07:00
workspace-runtime-read-model.ts Fix workspace runtime state reconciliation 2026-04-04 17:48:54 -05:00
workspace-runtime.ts Add workspace file viewer and artifact links (#7681) 2026-06-09 17:17:43 -05:00