Skip to content

blog persona and relayfile post#847

Merged
khaliqgant merged 1 commit into
mainfrom
blog-writer-persona
May 13, 2026
Merged

blog persona and relayfile post#847
khaliqgant merged 1 commit into
mainfrom
blog-writer-persona

Conversation

@khaliqgant
Copy link
Copy Markdown
Member

Summary

Adds a blog writer persona and adds a relayfile blog post "just files"

Test Plan

  • Tests added/updated
  • Manual testing completed

Screenshots

@coderabbitai
Copy link
Copy Markdown

coderabbitai Bot commented May 13, 2026

Review Change Stack

📝 Walkthrough

Walkthrough

This PR introduces a new agent persona for creating web blog content alongside a feature-focused blog post. The persona setup includes JSON configuration and markdown system prompts that restrict the agent to web/blog directories and enforce SEO/accessibility quality gates. The blog post documents Relayfile, explaining how it shifts agents from reactive tool-based patterns to proactive file-watching with filesystem integration.

Changes

Web Blog Content Writer Persona

Layer / File(s) Summary
Persona Configuration and System Prompt
.agentworkforce/workforce/personas/web-blog-content-writer.json, .agentworkforce/workforce/personas/web-blog-content-writer.claudeMdContent.md
JSON persona config wires Claude-Sonnet-4-6 with mount-based directory restrictions, Notion MCP server, and task description input. Markdown system prompt defines scope (web/blog only), workflow pattern (brief → outline → draft → meta/keywords), and compliance constraints (SEO/accessibility, no internal tooling or non-web content).

Relayfile Feature Blog Post

Layer / File(s) Summary
Blog Post: Relayfile and Proactive Agents
web/content/blog/just-give-the-agent-files.mdx
Blog post contrasts reactive MCP/tool-pull patterns with push-based workspace-as-files using RelayFileSync, relaycron, and relaycast primitives. Includes TypeScript examples of change event handling, filesystem writebacks for agent actions, multi-agent scoped permissions, provider auth via Nango, and practical setup/login workflow. Explains when file-based integration is appropriate.

Estimated code review effort

🎯 1 (Trivial) | ⏱️ ~3 minutes

Poem

🐰 A writer persona blooms, blog-bound and bright,
With Relayfile as guide, files push instead of pull,
From brief to draft, workspace transforms just right,
Watch the agents wake—no more reactive, now full!
*hops excitedly*

🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Title check ✅ Passed The title 'blog persona and relayfile post' accurately summarizes the main changes: adding a blog writer persona and a relayfile blog post.
Description check ✅ Passed The description follows the required template with Summary and Test Plan sections, though both checkboxes remain unchecked and lack detail about actual testing.
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 blog-writer-persona

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

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: 3

🤖 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
@.agentworkforce/workforce/personas/web-blog-content-writer.claudeMdContent.md:
- Line 9: The current constraint "no executable code in blog posts" is overly
restrictive for engineering blogs; update the constraint in
web-blog-content-writer.claudeMdContent.md to allow non-executable illustrative
code blocks (e.g., markdown fenced code) while explicitly prohibiting
runnable/unsafe instructions or external side-effects, and rename or reword the
rule from "no executable code in blog posts" to something like "no executable or
unsafe code execution" so functions that render posts (code examples) such as
the blog generator persona still permit safe snippets but reject any directives
that attempt to execute, fetch, or run code.

In @.agentworkforce/workforce/personas/web-blog-content-writer.json:
- Line 22: The mount's allowlist in the "ignoredPatterns" array is too
broad—it's permitting "web/**" but the persona requires blog-only access; update
the pattern list by replacing the "web" allow entries to narrow scope to
"web/content/blog/**" (e.g., change "!web" and "!web/**" to "!web/content/blog"
and "!web/content/blog/**") so only web/content/blog paths are exposed while
keeping existing ignore entries like "secrets/", ".env", and
"internal-prompts/**".

In `@web/content/blog/just-give-the-agent-files.mdx`:
- Line 22: Replace the insecure HTTP URL occurrences by updating the literal
string "http://pipedream.com/" to "https://pipedream.com/" in the content (the
two places noted); search for the exact text "http://pipedream.com/" in the
markdown (file contains the paragraph mentioning Composio and Pipedream) and
change both instances to use HTTPS.
🪄 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: c65283ff-fac8-487f-835b-60dd3531259e

📥 Commits

Reviewing files that changed from the base of the PR and between ac35a1b and bd9eb5d.

📒 Files selected for processing (3)
  • .agentworkforce/workforce/personas/web-blog-content-writer.claudeMdContent.md
  • .agentworkforce/workforce/personas/web-blog-content-writer.json
  • web/content/blog/just-give-the-agent-files.mdx

- Quality gates: Follow accessibility guidelines (ARIA, alt text, logical heading structure), use semantic HTML; provide metadata skeletons (title, description, keywords); include internal links and citations where appropriate; ensure tone is inclusive and clear.
- Compliance: Do not reference or embed non-web directories; avoid leaking internal tooling outside the allowed MCP surface; respect the Notion MCP boundary for task/state updates.
- Interaction pattern: When given a blog brief, respond with a structured outline, a draft header and subheaders, a short meta description, and a suggested keyword set. Offer multiple tone variants if requested.
- Constraints: Do not generate content outside the blog directory; do not fetch external assets without explicit permission; no executable code in blog posts.
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 | 🟠 Major | ⚡ Quick win

Constraint blocks valid engineering-blog output.

The “no executable code in blog posts” rule is too strict for engineering content and conflicts with the expected post format (code examples/snippets). Please relax this to allow illustrative code blocks while still disallowing unsafe instructions.

🤖 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
@.agentworkforce/workforce/personas/web-blog-content-writer.claudeMdContent.md
at line 9, The current constraint "no executable code in blog posts" is overly
restrictive for engineering blogs; update the constraint in
web-blog-content-writer.claudeMdContent.md to allow non-executable illustrative
code blocks (e.g., markdown fenced code) while explicitly prohibiting
runnable/unsafe instructions or external side-effects, and rename or reword the
rule from "no executable code in blog posts" to something like "no executable or
unsafe code execution" so functions that render posts (code examples) such as
the blog generator persona still permit safe snippets but reject any directives
that attempt to execute, fetch, or run code.

"webSearch": false
},
"mount": {
"ignoredPatterns": ["/*", "!web", "!web/**", "secrets/", ".env", "internal-prompts/**"]
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 | 🟠 Major | ⚡ Quick win

Mount scope is broader than persona policy.

The mount currently exposes all web/**, while the persona states blog-only scope. Please narrow the allowlist to web/content/blog/** to enforce least privilege.

🤖 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 @.agentworkforce/workforce/personas/web-blog-content-writer.json at line 22,
The mount's allowlist in the "ignoredPatterns" array is too broad—it's
permitting "web/**" but the persona requires blog-only access; update the
pattern list by replacing the "web" allow entries to narrow scope to
"web/content/blog/**" (e.g., change "!web" and "!web/**" to "!web/content/blog"
and "!web/content/blog/**") so only web/content/blog paths are exposed while
keeping existing ignore entries like "secrets/", ".env", and
"internal-prompts/**".


## The infrastructure problem nobody warns you about

MCP is genuinely a step forward and I'm glad it exists. But I've found that when you stack many MCP tools, the agent starts every task carrying a catalog it may mostly never use. Anthropic has [written about](https://www.anthropic.com/engineering/advanced-tool-use) tool definitions consuming tens of thousands of tokens before any real work begins. [Composio](https://composio.dev/) and [Pipedream](http://pipedream.com/) have made similar points in their docs.
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

Use HTTPS for external links.

http://pipedream.com/ should be https://pipedream.com/ in both places.

Also applies to: 136-136

🤖 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 `@web/content/blog/just-give-the-agent-files.mdx` at line 22, Replace the
insecure HTTP URL occurrences by updating the literal string
"http://pipedream.com/" to "https://pipedream.com/" in the content (the two
places noted); search for the exact text "http://pipedream.com/" in the markdown
(file contains the paragraph mentioning Composio and Pipedream) and change both
instances to use HTTPS.

@khaliqgant khaliqgant merged commit 51a6913 into main May 13, 2026
38 of 39 checks passed
@khaliqgant khaliqgant deleted the blog-writer-persona branch May 13, 2026 13:48
This was referenced May 13, 2026
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