google-agents-cli-scaffold
Project scaffolding, deployment configuration, and CI/CD setup for Google ADK agents.
log-auditor
Audit logs in project against fractary-logs best practices and generate actionable remediation specification
Full skill instructions
This skill is used for:
You generate specifications that can be followed to bring log management into alignment with fractary-logs best practices. </CONTEXT>
<CRITICAL_RULES> IMPORTANT: Analysis is Read-Only
IMPORTANT: Use Spec Plugin When Available
IMPORTANT: Respect Project-Specific Logs
Check if fractary-spec plugin is available:
if [ -f ".fractary/plugins/spec/config.json" ] || [ -d "plugins/spec" ]; then
USE_SPEC_PLUGIN=true
else
USE_SPEC_PLUGIN=false
fi
Load fractary-logs configuration (if exists):
.fractary/plugins/logs/config.jsonplugins/logs/config/config.example.jsonIf config doesn't exist, note that configuration will need to be created.
Execute discovery scripts:
bash plugins/logs/skills/log-auditor/scripts/discover-logs.sh {project_root} {output_dir}/discovery-logs.json
bash plugins/logs/skills/log-auditor/scripts/discover-vcs-logs.sh {project_root} {output_dir}/discovery-vcs-logs.json
bash plugins/logs/skills/log-auditor/scripts/discover-patterns.sh {output_dir}/discovery-logs.json {output_dir}/discovery-patterns.json
bash plugins/logs/skills/log-auditor/scripts/analyze-storage.sh {output_dir}/discovery-logs.json {output_dir}/discovery-storage.json
discover-logs.sh:
discover-vcs-logs.sh:
discover-patterns.sh:
analyze-storage.sh:
Define what proper fractary-logs management looks like (the target state):
Standard Configuration:
.fractary/plugins/logs/config.jsonStandard Directory Structure:
/logs/
├── .archive-index.json # Archive metadata
├── sessions/ # Session logs (*.md)
├── builds/ # Build logs (npm-debug.log, etc.)
├── deployments/ # Deployment logs (terraform.log, etc.)
├── debug/ # Debug logs
└── tests/ # Test output logs
Standard Version Control:
/logs/ directories excluded in .gitignoreStandard Archival:
Standard Integration:
Load discovery results and explicitly compare against the standard:
.fractary/plugins/logs/config.json with hybrid retention/logs/{category}/ directoriesCategorize All Gaps by Priority:
Invoke docs-manage-audit skill to create dual-format audit report:
Skill(skill="docs-manage-audit")
Then provide the audit data:
Use the docs-manage-audit skill to create logs audit report with the following parameters:
{
"operation": "create",
"audit_type": "logs",
"check_type": "full",
"audit_data": {
"audit": {
"type": "logs",
"check_type": "full",
"timestamp": "{ISO8601}",
"duration_seconds": {duration},
"auditor": {
"plugin": "fractary-logs",
"skill": "log-auditor"
},
"audit_id": "{timestamp}-logs-audit"
},
"summary": {
"overall_status": "pass|warning|error",
"status_counts": {
"passing": {passing_count},
"warnings": {warning_count},
"failures": {failure_count}
},
"exit_code": {0|1|2},
"compliance_percentage": {compliance_percentage}
},
"findings": {
"categories": [
{
"name": "Configuration",
"status": "pass|warning|error",
"checks_performed": {count},
"passing": {count},
"warnings": {count},
"failures": {count}
},
{
"name": "Structure",
"status": "pass|warning|error",
"checks_performed": {count},
"passing": {count},
"warnings": {count},
"failures": {count}
},
{
"name": "Version Control",
"status": "pass|warning|error",
"checks_performed": {count},
"passing": {count},
"warnings": {count},
"failures": {count}
},
{
"name": "Archival",
"status": "pass|warning|error",
"checks_performed": {count},
"passing": {count},
"warnings": {count},
"failures": {count}
},
{
"name": "Integration",
"status": "pass|warning|error",
"checks_performed": {count},
"passing": {count},
"warnings": {count},
"failures": {count}
},
{
"name": "Storage",
"status": "pass|warning|error",
"checks_performed": {count},
"passing": {count},
"warnings": {count},
"failures": {count}
}
],
"by_severity": {
"high": [
{
"id": "log-001",
"severity": "high",
"category": "version-control",
"message": "X GB of logs tracked in version control",
"details": "Found {count} log files in Git repository",
"remediation": "Exclude logs from Git and archive to cloud"
}
],
"medium": [{finding}],
"low": [{finding}]
}
},
"metrics": {
"total_storage_mb": {total_size_mb},
"managed_logs": {managed_count},
"unmanaged_logs": {unmanaged_count},
"vcs_logs": {vcs_count},
"vcs_impact_mb": {vcs_size_mb}
},
"recommendations": [
{
"priority": "high|medium|low",
"category": "logs",
"recommendation": "{action}",
"impact": "{storage_savings or compliance_improvement}"
}
],
"extensions": {
"logs": {
"total_storage_mb": {total_size_mb},
"potential_savings_mb": {savings_mb},
"cloud_cost_estimate": "{monthly_cost}",
"vcs_impact_mb": {vcs_size_mb},
"implementation_phases": 4
}
}
},
"output_path": "/logs/audits/",
"project_root": "{project-root}"
}
This will generate:
Both files in /logs/audits/{timestamp}-logs-audit.[md|json]
Storage Location:
/logs/audits/ (ephemeral)Integration: The docs-manage-audit skill standardizes the audit report format and integrates with logs-manager for retention tracking.
Now create the actionable implementation plan using the Spec Manager agent.
CRITICAL: This is a separate document from the audit report!
Audit Report (Step 6): Point-in-time assessment stored with logs (ephemeral)
/logs/audits/audit-{timestamp}.mdRemediation Spec (Step 7): Persistent action plan for project
/specs/logs-remediation-{timestamp}.md (created by Spec Manager)If fractary-spec plugin available:
Invoke the spec-manager agent using natural language to generate the specification:
Use the @agent-fractary-spec:spec-manager agent to generate a remediation specification with the following request:
{
"operation": "generate",
"spec_type": "implementation",
"parameters": {
"title": "Log Management Remediation - {project_name}",
"context": "Adopt Universal Log Manager (fractary-logs) for operational log management with hybrid retention and cloud archival. Based on audit performed at {timestamp}.",
"metadata": {
"complexity": "{MINIMAL|MODERATE|EXTENSIVE}",
"estimated_hours": {hours},
"total_actions": {count},
"priority_breakdown": {
"high": {high_count},
"medium": {medium_count},
"low": {low_count}
},
"storage_analysis": {
"total_logs_gb": {size},
"unmanaged_gb": {size},
"vcs_logs_gb": {size},
"potential_savings_gb": {size}
},
"discovery_date": "{date}",
"plugin_version": "1.0"
}
},
"sections": {
"overview": {
"summary": "This specification outlines adoption of Universal Log Manager (fractary-logs) for operational log management with hybrid retention and cloud archival.",
"current_state": {
"total_logs": "{count} files ({size} GB)",
"unmanaged_logs": "{count} files ({size} GB)",
"vcs_logs": "{count} files ({size} GB)",
"managed_logs": "{count} files ({size} GB)",
"cloud_storage": "{configured|not_configured}"
},
"target_state": {
"management": "All operational logs managed by fractary-logs",
"retention": "Hybrid (30 days local, archived to cloud)",
"vcs_cleanup": "No logs in version control",
"storage_savings": "{size} GB from repository"
}
},
"requirements": [
{
"id": "REQ-{n}",
"priority": "{high|medium|low}",
"title": "{Action title}",
"description": "{What needs to be done}",
"rationale": "{Why this is needed}",
"files_affected": ["{list of files}"],
"acceptance_criteria": ["{checklist}"]
}
],
"implementation_plan": {
"phases": [
{
"phase": 1,
"name": "Configure Cloud Storage",
"estimated_hours": {hours},
"objective": "Set up fractary-file for cloud archival",
"tasks": [
{
"task_id": "1.1",
"title": "Initialize fractary-file plugin",
"commands": ["/fractary-file:init"],
"verification": ["/fractary-file:test-connection"]
},
{
"task_id": "1.2",
"title": "Configure S3/R2 bucket",
"commands": ["# Configure in .fractary/plugins/file/config.json"],
"verification": ["# Test upload"]
}
]
},
{
"phase": 2,
"name": "Set Up Log Management",
"estimated_hours": {hours},
"objective": "Configure fractary-logs and create managed locations",
"tasks": [
{
"task_id": "2.1",
"title": "Initialize fractary-logs",
"commands": ["/fractary-logs:init"],
"verification": ["ls /logs/"]
},
{
"task_id": "2.2",
"title": "Update .gitignore",
"commands": ["# Add /logs/ exclusion"],
"verification": ["git check-ignore /logs/"]
}
]
},
{
"phase": 3,
"name": "Archive Historical Logs",
"estimated_hours": {hours},
"objective": "Archive existing logs to cloud",
"tasks": [
{
"task_id": "3.1",
"title": "Archive logs to cloud",
"commands": ["# Commands to archive specific logs"],
"verification": ["# Verify in cloud storage"]
},
{
"task_id": "3.2",
"title": "Remove logs from VCS",
"commands": [
"git rm {files}",
"git filter-repo --path {files} --invert-paths"
],
"verification": ["git log --all --full-history -- {files}"]
}
]
},
{
"phase": 4,
"name": "Configure Auto-Capture",
"estimated_hours": {hours},
"objective": "Set up automatic log capture",
"tasks": [
{
"task_id": "4.1",
"title": "Configure build log capture",
"commands": ["# Update build scripts"],
"verification": ["# Run build and verify log captured"]
}
]
}
]
},
"acceptance_criteria": [
"fractary-file configured for cloud storage",
"fractary-logs initialized and configured",
"All operational logs in managed locations",
"Historical logs archived to cloud",
"No logs in version control",
".gitignore excludes /logs/",
"Auto-capture configured for builds/deployments"
],
"verification_steps": [
"/fractary-logs:search \"test\"",
"git status # Should show no log files",
"du -sh /logs/ # Check local storage",
"# Check cloud storage for archived logs"
]
},
"output_path": "/specs/logs-remediation-{timestamp}.md"
}
Important Notes on Spec Manager Invocation:
/specs/Timestamp Format: YYYYMMDD-HHMMSS (e.g., 20250115-143022)
If fractary-spec NOT available:
Generate markdown specification directly following similar structure but in plain markdown format. Write directly to /specs/logs-remediation-{timestamp}.md.
Note on Spec Location: The Spec Manager may place the spec in its own managed location. Default is /specs/ at project root.
Display audit summary:
═══════════════════════════════════════════════════════════
📊 LOG AUDIT SUMMARY
═══════════════════════════════════════════════════════════
📁 LOG INVENTORY
Total Logs: {count} files ({size} GB)
By Type: Build: {n}, Deploy: {n}, Debug: {n}, Session: {n}, Other: {n}
📊 MANAGEMENT STATUS
Managed: {count} files ({size} GB)
Unmanaged: {count} files ({size} GB)
In VCS: {count} files ({size} GB)
💰 STORAGE ANALYSIS
Total Storage: {size} GB
Repository Impact: {size} GB
Potential Savings: {size} GB
Cloud Cost (est.): ${cost}/month
⚠️ ACTIONS REQUIRED
High Priority: {count}
Medium Priority: {count}
Low Priority: {count}
📋 OUTPUT DOCUMENTS
1. Audit Report: /logs/audits/audit-{timestamp}.md
- Point-in-time assessment (ephemeral)
- Current state, standard, gap analysis
- Stored with logs, subject to retention
2. Remediation Spec: /specs/logs-remediation-{timestamp}.md
- Persistent action plan (committed to VCS)
- Generated by Spec Manager agent
- Estimated Time: {hours} hours
- Phases: 4
💡 NEXT STEPS
1. Review audit report: /logs/audits/audit-{timestamp}.md
2. Review remediation spec: /specs/logs-remediation-{timestamp}.md
3. Set up cloud storage (fractary-file)
4. Follow 4-phase implementation plan
5. Verify with search command
═══════════════════════════════════════════════════════════
OUTPUT END MESSAGE:
✅ COMPLETED: Log Audit
Audit Timestamp: {timestamp}
Logs Found: {count} ({size} GB)
Gaps Identified: {count}
───────────────────────────────────────────────────────────
Outputs:
• Audit Report (ephemeral): /logs/audits/audit-{timestamp}.md
• Remediation Spec (persistent): /specs/logs-remediation-{timestamp}.md
• Discovery Data: /logs/audits/tmp/discovery-*.json
───────────────────────────────────────────────────────────
Next: Review both documents and follow implementation plan
</WORKFLOW>
<COMPLETION_CRITERIA> Audit is complete when:
/logs/audits/audit-{timestamp}.md with:
/specs/logs-remediation-{timestamp}.md with:
Success Response:
{
"success": true,
"operation": "audit",
"result": {
"discovery": {
"total_logs": {
"count": 45,
"size_gb": 2.3
},
"managed": {
"count": 3,
"size_gb": 0.15
},
"unmanaged": {
"count": 32,
"size_gb": 1.8
},
"vcs_logs": {
"count": 12,
"size_gb": 0.45
}
},
"gap_analysis": {
"gaps_identified": 14,
"by_priority": {
"high": 8,
"medium": 4,
"low": 2
}
},
"storage_savings": {
"repository_gb": 1.9,
"cloud_cost_monthly": 5.50
},
"outputs": {
"audit_report": "/logs/audits/audit-20250115-143022.md",
"remediation_spec": "/specs/logs-remediation-20250115-143022.md",
"discovery_files": [
"/logs/audits/tmp/discovery-logs.json",
"/logs/audits/tmp/discovery-vcs-logs.json",
"/logs/audits/tmp/discovery-patterns.json",
"/logs/audits/tmp/discovery-storage.json"
],
"timestamp": "20250115-143022"
},
"estimated_hours": 4,
"used_spec_plugin": true
},
"timestamp": "2025-01-15T12:00:00Z"
}
Error Response:
{
"success": false,
"operation": "audit",
"error": "No log files found",
"error_code": "NO_LOGS_FOUND",
"timestamp": "2025-01-15T12:00:00Z"
}
</OUTPUTS>
<ERROR_HANDLING> Handle errors gracefully:
Discovery Errors:
Spec Generation Errors:
Configuration Errors:
Usage Example:
Use the log-auditor skill to audit logs:
{
"operation": "audit",
"parameters": {
"project_root": "/path/to/project",
"output_dir": "/logs/audits/tmp",
"config_path": ".fractary/plugins/logs/config.json",
"execute": false
}
}
</INTEGRATION>
<DEPENDENCIES> - **Discovery scripts**: plugins/logs/skills/log-auditor/scripts/ - **Spec plugin** (optional): fractary-spec for standardized spec generation - **Configuration** (optional): .fractary/plugins/logs/config.json - **fractary-file** (optional): For cloud storage operations </DEPENDENCIES> <DOCUMENTATION> Document the audit process:What to document:
Format: Audit summary as formatted text Remediation spec as structured markdown (via spec-manager or direct) </DOCUMENTATION>
Project scaffolding, deployment configuration, and CI/CD setup for Google ADK agents.
Set up tracing, logging, and monitoring for deployed ADK agents across Cloud Trace, BigQuery, and third-party platforms.
Enterprise Azure infrastructure architect generating Bicep or Terraform from workload descriptions.
Plan and configure production-ready Azure Kubernetes Service clusters with Day-0 and Day-1 best practices.
Raw mechanical interfaces fusing Swiss typographic print with military terminal aesthetics. Rigid grids, extreme type scale contrast, utilitarian color, analog degradation effects. For data-heavy dashboards, portfolios, or editorial sites that need to feel like declassified blueprints.
Web search, scraping, extraction, crawling, and monitoring via ScrapeGraph AI CLI.
Skill for working with Firebase Hosting (Classic). Use this when you want to deploy static web apps, Single Page Apps (SPAs), or simple microservices. Do NOT use for Firebase App Hosting.
Deploy and manage web apps with Firebase App Hosting. Use this skill when deploying Next.js/Angular apps with backends.
Deploy applications and websites to Vercel. Use when the user requests deployment actions like "deploy my app", "deploy and give me the link", "push this live", or "create a preview deployment".
Build SEO-optimized pages at scale using templates, data, and proven playbook patterns.
Design and build isolated, reusable Convex backend components with clear boundaries and app-facing wrappers.
Deploy and manage projects on Vercel using token-based authentication. Use when working with Vercel CLI using access tokens rather than interactive login — e.g. "deploy to vercel", "set up vercel", "add environment variables to vercel".
Opus.ai: Revolutionize Your Web Experience
Build a no-code AI app in minutes.
An IDE for code migration from legacy to modern frameworks through coding agents.
Automate CGI animation in live-action scenes
Branded artistic QR-code concepts
Launch a website in seconds with AI.
Streamline Your Coding Experience with AI Code Helper
Convert any screenshot or design to clean code.