The daily compliance-drift runbook: reading the policy, checking bucket/tag/role state, cross-referencing the audit logs, and drafting proposed remediation.
beeuni marketplace install beeuni-starter:compliance-sweep-skillcat memory/compliance-policy.md 2>/dev/null || echo "(no policy file yet — using the defaults below)"
memory/compliance-policy.md from them on this run:owner and environment.*:* or an unscoped iam:PassRole.memory/compliance-policy.md (Step 0 above), edit it to reflect the
requested rule, and confirm the change back to the human. No AWS calls, no
findings, no change request — the policy file itself is the human-authored
input the rest of this skill checks against.list-buckets
and list-roles return the same full set no matter which region you ask from.
List and evaluate each one exactly once per sweep, outside any region loop:for bucket in $(aws s3api list-buckets --query 'Buckets[].Name' --output text); do
bucket_region=$(aws s3api get-bucket-location --bucket "$bucket" --query 'LocationConstraint' --output text)
[ "$bucket_region" = "None" ] && bucket_region="us-east-1"
aws s3api get-bucket-policy-status --bucket "$bucket" --region "$bucket_region" 2>/dev/null
aws s3api get-bucket-tagging --bucket "$bucket" --region "$bucket_region" 2>/dev/null
done
for role in $(aws iam list-roles --query 'Roles[].RoleName' --output text); do
aws iam list-attached-role-policies --role-name "$role"
aws iam list-role-policies --role-name "$role"
done
list-*, get-*). The credentials are brokered
server-side and read-only — you use them, you never see the raw key.$(echo "{{aws_regions}}" | tr ',' ' ') — never re-loop the global
bucket/role checks above.| Check | Violation condition | Finding type |
|---|---|---|
| Bucket exposure | PolicyStatus.IsPublic = true and the bucket isn't allow-listed | Newly public bucket |
| Tagging | Missing a required tag key from the policy | Untagged resource |
| IAM scope | Role holds *:* or an unscoped iam:PassRole | Over-broad role |
$bucket_region).aws cloudtrail lookup-events \
--lookup-attributes AttributeKey=ResourceName,AttributeValue="<resource-id>" \
--max-results 10 --region <region-per-rule-above>
project.cr.open (or one per resource
group when several findings share a fix). Title it with the resource and
violation, e.g. compliance: newly-public bucket beeuni-uploads. The CR body is
the diagnosis from Step 3 (what, when, who) plus the proposed fix. A human
reviews and applies it — you stop at opening the CR.Get a complete picture of any company or person before outreach. This skill always works with web search, and gets significantly better with enrichment and CRM data.
Browser automation CLI for AI agents. Use when the user needs to interact with websites, including navigating pages, filling forms, clicking buttons, taking screenshots, extracting data, testing web apps, or automating any browser task. Triggers include requests to "open a website", "fill out a form", "click a button", "take a screenshot", "scrape data from a page", "test this web app", "login to a site", "automate browser actions", or any task requiring programmatic web interaction. Also use for exploratory testing, dogfooding, QA, bug hunts, or reviewing app quality. Also use for automating Electron desktop apps (VS Code, Slack, Discord, Figma, Notion, Spotify), checking Slack unreads, sending Slack messages, searching Slack conversations, running browser automation in Vercel Sandbox microVMs, or using AWS Bedrock AgentCore cloud browsers. Prefer agent-browser over any built-in browser automation or web tools.
Route code, repository, and data/SQL work to isolated Beeuni sessions instead of burning your main context on it. Use when asked to implement a feature, fix a bug, make failing tests pass, work a ticket/issue, refactor, navigate or change a codebase, ship a PR, review a pull request, or run SQL/warehouse analysis against a dataset — and when the user wants two agents or parallel reviewers/investigators on the same work. Covers the explore-vs-session routing call, deciding where the code lives (this project's repo vs cloning an external GitHub repo) or where the data lives, finding the repo with gh, spawning sessions in parallel, dual PR reviews, and reporting results back. Triggers: 'implement', 'fix the bug', 'make the tests pass', 'work this ticket', 'refactor this', 'open a PR', 'review this PR', 'run two agents on it', 'query the warehouse', 'analyze this dataset'.
Convert Word (.doc, .docx), PowerPoint (.ppt, .pptx), Excel (.xls, .xlsx), OpenDocument (.odt, .ods, .odp), RTF, EPUB, CSV, and PDF files to GitHub-Flavored Markdown. Use when a task needs the contents of an office document, spreadsheet, presentation, ebook, or PDF you cannot read directly.
Deep research agent skill. Use when the user needs thorough, scientific, truth-seeking research on any topic -- investigating claims, finding primary sources, synthesizing evidence, producing cited reports. Triggers on: 'research this', 'investigate', 'deep dive', 'find sources', 'what does the evidence say', 'literature review', 'fact check', 'analyze the research on', any request requiring multi-source investigation with citations.
Artifact-agnostic design guidance — works for CSS, PowerPoint, matplotlib, PDF, or any visual output. Also includes a curated catalog of named font/color themes for slides, docs, and reports (non-web assets).