plugins/lisa-rails/skills/ops-check-logs/SKILL.md
Check application logs from local Docker Compose or remote AWS CloudWatch for Rails applications. Supports log tailing, filtering, and error searching.
npx skillsauth add codyswanngt/lisa ops-check-logsInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
View and search logs across local and remote environments.
Argument: $ARGUMENTS — target and optional filter (e.g., local, local worker, staging errors, production 500, staging slow-queries)
config/deploy.yml to discover the service name (used in CloudWatch log group naming)docker-compose.yml to identify local service names for targeted log viewingdocker compose logs --tail=100
docker compose logs -f --tail=50
# Rails web server
docker compose logs --tail=100 web
# Solid Queue worker
docker compose logs --tail=100 worker
# PostgreSQL
docker compose logs --tail=100 postgres
docker compose logs --tail=500 web 2>&1 | grep -iE "(error|exception|fatal|500)"
tail -n 100 log/development.log
grep -E "SLOW|ms\)" log/development.log | tail -20
kamal app logs -d {environment}
kamal app logs -d {environment} -f
# Web role
kamal app logs --roles=web -d {environment}
# Worker role (Solid Queue)
kamal app logs --roles=worker -d {environment}
For advanced filtering and historical log access, use the AWS CLI directly.
aws logs describe-log-groups \
--region {aws-region} \
--query 'logGroups[].logGroupName' \
--output text | tr '\t' '\n' | grep -i "{app_name}"
aws logs filter-log-events \
--region {aws-region} \
--log-group-name "{log-group}" \
--start-time $(( ($(date +%s) - 1800) * 1000 )) \
--filter-pattern "ERROR" \
--query 'events[].message' \
--output text
aws logs filter-log-events \
--region {aws-region} \
--log-group-name "{log-group}" \
--start-time $(( ($(date +%s) - 1800) * 1000 )) \
--filter-pattern '"status=500"' \
--query 'events[].message' \
--output text
aws logs filter-log-events \
--region {aws-region} \
--log-group-name "{log-group}" \
--start-time $(( ($(date +%s) - 3600) * 1000 )) \
--filter-pattern '"duration" "1000"' \
--query 'events[].message' \
--output text
aws logs tail "{log-group}" \
--region {aws-region} \
--follow \
--since 10m
aws logs filter-log-events \
--region {aws-region} \
--log-group-name "{log-group}" \
--start-time $(date -d "{start-time}" +%s000) \
--end-time $(date -d "{end-time}" +%s000) \
--query 'events[].message' \
--output text
For container-level logs (useful when the application fails to start):
# List recent tasks
aws ecs list-tasks \
--cluster {cluster-name} \
--service-name {service-name} \
--region {aws-region} \
--query 'taskArns[]' --output text
# Describe a task to find the log stream
aws ecs describe-tasks \
--cluster {cluster-name} \
--tasks {task-arn} \
--region {aws-region} \
--query 'tasks[0].containers[].{Name:name,Status:lastStatus,ExitCode:exitCode}' \
--output table
Report log findings as:
| Source | Timestamp | Level | Context | Message | |--------|-----------|-------|---------|---------| | CloudWatch | 2026-03-18T10:30:00Z | ERROR | web | ActiveRecord::ConnectionTimeoutError | | Docker | — | ERROR | worker | SolidQueue::ProcessMissingError | | Rails log | — | WARN | N/A | DEPRECATION WARNING: ... |
Include a summary of findings: total errors, warnings, and any patterns observed.
documentation
Onboard a user to the project via its LLM Wiki. Interviews the user about themselves in relation to the project, captures that to project-scoped memory only, then gives a guided tour of what the project is and sample questions they can ask. Use when someone is new to the project or asks to be onboarded. Read-mostly — it does not open PRs or write PII into the wiki.
documentation
Migrate an existing, hand-rolled wiki implementation onto the lisa-wiki kernel — phased and compatibility-first, with a strict no-loss guarantee. Use when adopting lisa-wiki in a repo that already has its own wiki/, ingest skills, docs, or roles. Renaming things into the canonical shape is fine; losing functionality or data is not. Ends by running /doctor.
development
Health-check the LLM Wiki. Reports orphan pages, contradictions, stale claims, broken internal links, missing index/log coverage, structure-manifest violations, and secret/tenant leaks. Use periodically or before hardening a wiki. Read-only — it reports findings, it does not fix them.
testing
Ingest source material into the LLM Wiki. With an argument (URL, file path, or prompt) it ingests that one source; with no argument it runs a full ingest across every enabled non-external-write source. Routes to the right connector, then runs the ordered pipeline (source note → synthesis → index → log → verify → state → commit/PR). Use whenever new knowledge should enter the wiki.