Skip to content

docs(skills): add four workspace-primitive skills#146

Closed
khaliqgant wants to merge 1 commit into
mainfrom
add-relayfile-workspace-skills
Closed

docs(skills): add four workspace-primitive skills#146
khaliqgant wants to merge 1 commit into
mainfrom
add-relayfile-workspace-skills

Conversation

@khaliqgant
Copy link
Copy Markdown
Member

Summary

Adds four workspace-primitive skills under .claude/skills/ so agents working in this repo pick them up automatically. These are the conceptual primitives referenced in the Just Give the Agent Files blog post.

  • activity-summary — read digests/yesterday.md before crawling provider data for time-windowed activity questions. Cuts the canonical "what did I work on yesterday" task from ~25 tool calls to ~4 in our benchmarks.
  • daily-digest — authoring contract for <mount>/digests/: window taxonomy, per-provider section format, adapter digest() exports, regeneration rules, determinism requirements.
  • writeback-as-files — file-creation writeback contract: drop a JSON file at the canonical path, mount validates against sibling .schema.json, provider mutation lands in ~30s. Covers relayfile writeback list and .relay/dead-letter/ recovery.
  • workspace-layout — start at LAYOUT.md, then <provider>/.layout.md, then by-* alias subtrees. Documents the <identifier>__<uuid> filename convention.

Companion PRs:

  • AgentWorkforce/skills#39 — publishes the four skills as @agent-relay/* packages
  • AgentWorkforce/cloud — ships them in the sandbox

Test plan

  • Verify the four .claude/skills/<slug>/SKILL.md files have valid frontmatter
  • Spot-check that frontmatter name matches the directory name
  • Confirm <identifier>__<uuid> and digests/ references stay consistent with docs/LAYOUT.md

🤖 Generated with Claude Code

Bundles activity-summary, daily-digest, writeback-as-files, and
workspace-layout into .claude/skills/ so agents working in this repo
pick them up automatically.

- activity-summary: read digests/yesterday.md before crawling provider
  data for time-windowed activity questions
- daily-digest: authoring contract for <mount>/digests/ including
  adapter digest() exports and regeneration rules
- writeback-as-files: drop-a-JSON-file writeback contract with schema
  discovery and dead-letter recovery
- workspace-layout: LAYOUT.md + by-* alias indexes instead of find/grep -r

Each is also being published from AgentWorkforce/skills and shipped
into the cloud sandbox via parallel PRs.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
@coderabbitai
Copy link
Copy Markdown

coderabbitai Bot commented May 13, 2026

Review Change Stack

📝 Walkthrough

Walkthrough

This PR adds four new agent skill documentation files to .claude/skills/ that define interaction patterns with relayfile mounts: workspace resource discovery via LAYOUT.md and alias indexes, digest authoring contracts for content producers, activity consumption from pre-computed digests, and provider mutation via JSON file writebacks.

Changes

Agent Skill Documentation

Layer / File(s) Summary
Workspace layout and resource discovery
.claude/skills/workspace-layout/SKILL.md
Skill instructs agents to read root and provider-specific LAYOUT.md files, then use by-* alias indexes (by-title/, by-id/, by-name/, by-edited/<date>/, by-state/) instead of recursive search. Documents canonical filename convention (<identifier>__<uuid>.<ext>), provides concrete command examples for UUID and slug lookup, and lists explicit "what not to do" constraints.
Digest authoring contract and activity consumption
.claude/skills/daily-digest/SKILL.md, .claude/skills/activity-summary/SKILL.md
Daily-digest skill defines authoring contract with required header fields (window, generated, providers, events), per-provider section formatting (alphabetical, time-sorted bullets with canonical links), and exported digest(ctx: DigestContext) adapter shape. Activity-summary skill instructs agents to read pre-computed digests before exploration, explains filename schemes (yesterday.md, today.md, date-stamped), shows digest structure, provides step-by-step selection workflow, and specifies fallback to by-edited/<date>/ when windows are unusual or coverage is incomplete.
Provider writebacks via canonical file paths
.claude/skills/writeback-as-files/SKILL.md
Skill documents performing provider mutations by discovering writable directories with sibling .schema.json schemas and dropping appropriately shaped JSON payloads at canonical paths. Specifies filename conventions (wb-<timestamp>.json, no .tmp suffixes), monitoring commands (relayfile writeback list/status), and dead-letter recovery flow from <mount>/.relay/dead-letter/ using .error.json diagnostics. Explicitly warns against direct SDK calls, read-only path writes, and tight-loop polling.

Estimated code review effort

🎯 2 (Simple) | ⏱️ ~10 minutes

Possibly related issues

Poem

🐰 Four skills for agents traversing the mount,
Read layouts first, then index counts,
Digest the summaries, write back with care—
The rabbit hops through relayfiles with flair! ✨

🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Title check ✅ Passed The title clearly and specifically summarizes the main change: adding four workspace-primitive skills documentation files under .claude/skills/.
Description check ✅ Passed The description is directly related to the changeset, providing context on what skills are added, their purposes, and how they address the PR objectives.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch add-relayfile-workspace-skills

Comment @coderabbitai help to get the list of available commands and usage tips.

Copy link
Copy Markdown
Contributor

@devin-ai-integration devin-ai-integration Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

✅ Devin Review: No Issues Found

Devin Review analyzed this PR and found no bugs or issues to report.

Open in Devin Review

Copy link
Copy Markdown

@coderabbitai coderabbitai Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 2

🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In @.claude/skills/activity-summary/SKILL.md:
- Line 30: Update the mutability label and description for the `yesterday.md`
entry in SKILL.md so it matches the digest contract: change the "rolling" tag to
indicate immutability (e.g., "immutable" or "generated at day close") and
clarify the text to state that `yesterday.md` is generated once at the prior
calendar day's close and does not change thereafter; update the line containing
`yesterday.md      # rolling — generated at 00:00 local for the prior calendar
day` to reflect the immutable/once-generated semantics so agents read the
correct contract.
- Around line 55-57: Under the "## slack" section update the lone bullet "- 7
messages in `#gtm-prospects` mentioning "ACME"" to follow the file's "canonical
link per bullet" pattern: replace the plain channel name with a markdown link
that points to the canonical mount URL for the Slack channel (i.e., use the same
canonical-link format used by other providers in this file). Edit the bullet
under the "## slack" header so it includes the canonical mount link for
`#gtm-prospects` while preserving the rest of the text.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro Plus

Run ID: 17ded618-e9bc-4165-bda7-b754ceccf73e

📥 Commits

Reviewing files that changed from the base of the PR and between 2381eff and e4eaba3.

📒 Files selected for processing (4)
  • .claude/skills/activity-summary/SKILL.md
  • .claude/skills/daily-digest/SKILL.md
  • .claude/skills/workspace-layout/SKILL.md
  • .claude/skills/writeback-as-files/SKILL.md


```bash
$ ls $MOUNT/digests/
yesterday.md # rolling — generated at 00:00 local for the prior calendar day
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟡 Minor | ⚡ Quick win

Fix yesterday.md mutability label to match the digest contract.

yesterday.md is described as “rolling” here, but the contract defines it as generated at day close and then immutable. This mismatch can lead to wrong agent behavior.

Suggested doc fix
-yesterday.md      # rolling — generated at 00:00 local for the prior calendar day
+yesterday.md      # closing — generated at 00:00 local for the prior calendar day; immutable afterward
📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
yesterday.md # rolling — generated at 00:00 local for the prior calendar day
yesterday.md # closing — generated at 00:00 local for the prior calendar day; immutable afterward
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In @.claude/skills/activity-summary/SKILL.md at line 30, Update the mutability
label and description for the `yesterday.md` entry in SKILL.md so it matches the
digest contract: change the "rolling" tag to indicate immutability (e.g.,
"immutable" or "generated at day close") and clarify the text to state that
`yesterday.md` is generated once at the prior calendar day's close and does not
change thereafter; update the line containing `yesterday.md      # rolling —
generated at 00:00 local for the prior calendar day` to reflect the
immutable/once-generated semantics so agents read the correct contract.

Comment on lines +55 to +57
## slack
- 7 messages in #gtm-prospects mentioning "ACME"
```
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟡 Minor | ⚡ Quick win

Keep provider examples consistent with the “canonical link per bullet” rule.

The Slack bullet is the only one without a canonical mount link, which contradicts the format guidance in the same file.

Suggested doc fix
 ## slack
-- 7 messages in `#gtm-prospects` mentioning "ACME"
+- 7 messages in `#gtm-prospects` mentioning "ACME" — [/slack/channels/C0ADE9B71CN__gtm-prospects/messages/2026-05-12.jsonl]
📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
## slack
- 7 messages in #gtm-prospects mentioning "ACME"
```
## slack
- 7 messages in `#gtm-prospects` mentioning "ACME" — [/slack/channels/C0ADE9B71CN__gtm-prospects/messages/2026-05-12.jsonl]
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In @.claude/skills/activity-summary/SKILL.md around lines 55 - 57, Under the "##
slack" section update the lone bullet "- 7 messages in `#gtm-prospects` mentioning
"ACME"" to follow the file's "canonical link per bullet" pattern: replace the
plain channel name with a markdown link that points to the canonical mount URL
for the Slack channel (i.e., use the same canonical-link format used by other
providers in this file). Edit the bullet under the "## slack" header so it
includes the canonical mount link for `#gtm-prospects` while preserving the rest
of the text.

@khaliqgant
Copy link
Copy Markdown
Member Author

Closing in favor of AgentWorkforce/skills#39 (skills live in the central registry, not bundled into relayfile/.claude/skills) and #147 (specs for the missing primitives the skills assume). Re-opening once the skills become accurate against shipping code is unnecessary — they're maintained from skills#39.

@khaliqgant khaliqgant closed this May 13, 2026
@khaliqgant khaliqgant deleted the add-relayfile-workspace-skills branch May 13, 2026 18:49
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