Skip to content

feat: Cursor workspaceOpen/failClosed + skill frontmatter, Factory hook cleanup, DeepAgents input.required#1774

Merged
dyoshikawa merged 2 commits into
mainfrom
resolve-scrap-issues-20260608-6
Jun 9, 2026
Merged

feat: Cursor workspaceOpen/failClosed + skill frontmatter, Factory hook cleanup, DeepAgents input.required#1774
dyoshikawa merged 2 commits into
mainfrom
resolve-scrap-issues-20260608-6

Conversation

@dyoshikawa

Copy link
Copy Markdown
Owner

Summary

Batch follow-up of three maintainer-scrap upstream issues, all primary-source verified.

#1688 — Cursor: workspaceOpen hook, failClosed field, skill frontmatter (fully resolved)

  • workspaceOpen hook event — added to the canonical HookEvent union, CURSOR_HOOK_EVENTS, and the Cursor name mapping.
  • failClosed field — added an optional failClosed boolean to HookDefinitionSchema (block the action when the hook errors) and passed it through the Cursor hook adapter.
  • Cursor skill frontmatter — added a cursor skill section (paths, disable-model-invocation, metadata) emitted and round-tripped by CursorSkill.

#1690 — Factory Droid: remove stale hook events (partial)

FACTORYDROID_HOOK_EVENTS and the canonical→Factory mapping included setupSetup and permissionRequestPermissionRequest, neither of which is a valid Droid event (the documented set is exactly 9: PreToolUse, PostToolUse, UserPromptSubmit, Notification, Stop, SubagentStop, PreCompact, SessionStart, SessionEnd). Removed them so rulesync no longer emits dead keys that Droid ignores.

Remaining #1690 follow-ups: native custom droids + native skills with global scope, the mcpServers droid frontmatter, the hooks-file relocation to .factory/hooks.json, and the commandAllowlist/commandDenylist permissions adapter. This PR does not close #1690.

#1689 — DeepAgents: input.required hook event (partial)

Mapped the canonical notification event to deepagents-code (dcode) input.required (human-in-the-loop interrupt) — the closest documented equivalent — and added it to DEEPAGENTS_HOOK_EVENTS.

Remaining #1689 follow-up: switch the DeepAgents subagent adapter to the directory-per-subagent .deepagents/agents/<name>/AGENTS.md layout. This PR does not close #1689.

Validation evidence (primary sources)

Test plan

  • pnpm cicheck — green (fmt, oxlint, typecheck, 5994 unit tests, sync-skill-docs, cspell, secretlint).
  • New unit tests: Cursor workspaceOpen/failClosed emission; Cursor skill paths/disable-model-invocation/metadata round-trip; Factory Droid drops setup/permissionRequest; DeepAgents notificationinput.required.
  • E2E e2e-hooks + e2e-skills pass in full (Tool × Feature happy-path preserved).

Linked issues

🤖 Generated with Claude Code

…ok cleanup, DeepAgents input.required

Batch follow-up of three maintainer-scrap upstream issues:

#1688 (Cursor): add the workspaceOpen hook event (canonical union + CURSOR_HOOK_EVENTS + mapping); add an optional failClosed field to HookDefinitionSchema and pass it through the Cursor hook adapter; add a cursor skill frontmatter section (paths, disable-model-invocation, metadata) emitted/round-tripped by CursorSkill.

#1690 (Factory Droid): remove the stale setup/permissionRequest hook events from FACTORYDROID_HOOK_EVENTS and the mapping — they are not valid Droid events (confirmed 9-event set), so rulesync no longer emits dead keys. (Native droids/skills, global scope, hooks-file relocation, and permissions remain follow-ups.)

#1689 (DeepAgents): map the canonical notification event to dcode's input.required (human-in-the-loop interrupt). (The directory-per-subagent .deepagents/agents/<name>/AGENTS.md layout remains a follow-up.)

Closes #1688

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Resolve conflicts from upstream Goose hooks (#1770) and Agent Skills (#1775):
- src/types/hooks.ts: keep both new HookEvent members (workspaceOpen + messageDisplay)
- src/features/skills/rulesync-skill.ts: keep both new skill sections (cursor + agentsskills) in schema and input type
- docs/reference/file-formats.md: merge the hook matrix to 16 columns (incl. Goose),
  re-applying #1774's changes (workspaceOpen row, deepagents notification, Factory Droid
  permissionRequest/setup cleanup) on top of the upstream messageDisplay row; regenerate
  skills/rulesync/file-formats.md via the docs sync script

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
@dyoshikawa dyoshikawa merged commit baa8502 into main Jun 9, 2026
9 checks passed
@dyoshikawa dyoshikawa deleted the resolve-scrap-issues-20260608-6 branch June 9, 2026 03:17
dyoshikawa pushed a commit that referenced this pull request Jun 9, 2026
Re-resolve rulesync-skill.ts after Cursor skill frontmatter (#1774) landed: keep
all three skill sections (rovodev + cursor + agentsskills) in both the zod schema
and the input type.

Co-Authored-By: Claude Opus 4.8 <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

2 participants