blog persona and relayfile post#847
Conversation
📝 WalkthroughWalkthroughThis 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. ChangesWeb Blog Content Writer Persona
Relayfile Feature Blog Post
Estimated code review effort🎯 1 (Trivial) | ⏱️ ~3 minutes Poem
🚥 Pre-merge checks | ✅ 5✅ Passed checks (5 passed)
✏️ Tip: You can configure your own custom pre-merge checks in the settings. ✨ Finishing Touches🧪 Generate unit tests (beta)
Comment |
There was a problem hiding this comment.
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
📒 Files selected for processing (3)
.agentworkforce/workforce/personas/web-blog-content-writer.claudeMdContent.md.agentworkforce/workforce/personas/web-blog-content-writer.jsonweb/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. |
There was a problem hiding this comment.
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/**"] |
There was a problem hiding this comment.
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. |
There was a problem hiding this comment.
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.
Summary
Adds a blog writer persona and adds a relayfile blog post "just files"
Test Plan
Screenshots