Skip to content

[Audit] ProjectArgus -- Overall Grade: F (52%) #35

@mvillmow

Description

@mvillmow

Ecosystem Audit: ProjectArgus

Audit Date: 2026-03-22
Methodology: repo-analyze-strict (15 sections, evidence-based, starts at F)
Overall Grade: F (52%)
Verdict: NO-GO

Section Scorecard

# Section Grade Score Findings
1 Project Structure & Organization C+ 77% .gitignore incomplete (#18), no pixi.lock
2 Documentation D+ 67% Missing LICENSE (#23), CONTRIBUTING, CHANGELOG (#31), port mismatch (#5)
3 Architecture & Design D+ 68% Dashboard metric mismatches (#1), alert rule errors (#2), N+1 scraping (#14)
4 Source Code Quality D+ 68% Mutable default arg (#12), duplicate TYPE lines (#9), hardcoded IPs
5 Testing F 0% Zero test files in repository (#6)
6 CI/CD & Build Pipeline D- 60% Branch mismatch (#7), no Python linting (#30), no pixi/just in CI (#33)
7 Dependency & Package Mgmt D 65% No pixi.lock (#24), unpinned images (#10)
8 Security F 40% 0.0.0.0 bind (#21), hardcoded password (#13), ports exposed (#22), lifecycle endpoint (#19), Loki no auth (#25), no TLS (#26), no SECURITY.md (#27), /tmp mount (#20)
9 Safety & Reliability F 35% No graceful shutdown (#16), no health checks (#28), no resource limits (#29), no alertmanager (#11)
10 Planning & Project Mgmt D- 60% No milestones, no templates, no release strategy
11 AI Agent Tooling C 73% CLAUDE.md good but references :latest images
12 Packaging & Distribution D 63% All :latest tags (#10), no versioning
13 Developer Experience C- 70% Good justfile, but no pre-commit (#32), no .editorconfig (#32), port mismatch (#5)
14 API Design D+ 67% Exporter metric names inconsistent with dashboards (#1)
15 Compliance & Governance F 30% No LICENSE (#23), no CODE_OF_CONDUCT

Issue Breakdown

Development Principles Compliance

Principle Compliance Key Observation
KISS Partial Exporter is simple but N+1 scraping pattern adds unnecessary complexity
YAGNI Good No over-engineering; stack is minimal for its purpose
TDD Failing Zero tests in the entire repository
DRY Partial CI duplicates validation logic that should be in justfile; import-dashboards.sh and justfile recipe duplicate logic
SOLID N/A Not applicable to infrastructure/YAML repo
MODULARITY Partial Good separation of configs, dashboards, rules, scripts; but exporter is monolithic
POLA Poor Dashboard metrics don't match exporter output; port 3000 in docs vs 3001 in compose; hardcoded paths

Verdict: NO-GO

ProjectArgus fails the audit with a 52% overall score. The combination of zero tests, multiple security findings (including exposed ports, hardcoded credentials, no TLS, no auth on Loki), missing LICENSE file, and fundamental metric name mismatches between the exporter and dashboards makes this stack unreliable for production observability.

The most critical issue is that the dashboards and alert rules reference metrics that the exporter never emits (e.g., agamemnon_agents_active, agamemnon_agents_hibernated, gnatsd_varz_*, agamemnon_tasks_created_total, agamemnon_tasks_failed_total). This means the entire dashboard layer is non-functional out of the box.

Recommended Priority Order

  1. Fix metric name consistency between exporter output and dashboard/alert queries (Fix dashboard metric names to match exporter output #1, Fix alert rules to use correct metric names #2) -- without this, the stack provides no value
  2. Add LICENSE file ([Audit] S15 Compliance: Missing LICENSE file #23) -- legal blocker for any shared use
  3. Add resource limits and health checks to docker-compose ([Audit] S9 Safety: No Docker health checks in docker-compose services #28, [Audit] S9 Safety: No resource limits on docker-compose containers #29) -- prevent the monitoring stack from taking down the host
  4. Add tests for the exporter (Add tests and dependency declaration for custom exporter #6) -- the only custom code has known bugs
  5. Address security findings: remove exposed ports, enable Loki auth, add TLS (Security: All monitoring ports exposed to host without authentication #22, [Audit] S8 Security: Loki has authentication disabled #25, [Audit] S8 Security: No TLS configured for inter-service communication #26)

Filed by HomericIntelligence ecosystem audit (repo-analyze-strict methodology)
Audit date: 2026-03-22


Updated per ADR-006 — ai-maestro references replaced with current architecture terminology.

Metadata

Metadata

Assignees

No one assigned

    Labels

    auditEcosystem audit finding

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions