github Python analyzed 5cc8972

nt1412/agentqa

github

Test management for agentic coding — a TestLink-equivalent evidence & context store for AI QA teams (REST + MCP + CLI).

maintainer
nt1412
license
Apache-2.0
first seen
2026-06-14
last seen
2026-06-15
releases · 30d
0
short id

Drift inferred · capture-to-capture

No drift recorded — single capability capture; advisories appear once its surface changes.

capabilities 44 tools
transport stdio counts 44 tools · 0 res · 0 prompts permission surface via code analysis

tools

  • _stub
  • add_cases_to_plan
  • add_test_dependency
  • assign_test
  • bulk_create_test_cases
  • compare_builds
  • create_annotation
  • create_audit_report
  • create_project
  • create_requirement
  • create_test_case
  • create_test_plan
  • create_test_suite
  • deactivate_agent
  • evaluate_test_case
  • get_agent_execution_history
  • get_build_detail
  • get_case_history
  • get_case_status_map
  • get_coverage_gaps
  • get_execution_evidence
  • get_failure_context
  • get_known_regressions
  • get_orientation
  • get_project_health
  • get_run_manifest
  • get_suite_tree
  • get_test_case
  • link_coverage
  • list_agents
  • list_annotations
  • list_assignments
  • list_branch_status
  • list_build_timeline
  • list_unverified_claims
  • record_test_run
  • register_agent
  • request_rerun
  • search_recurrences
  • search_similar_failures
  • search_test_cases
  • set_quarantine
  • upload_artifact
  • verify_claim
skills & danger signals github-tarball
prompt-surface shipped agent-instruction files + hidden-content / dangerous-code findings — quoted from the analyzed source

analyzed commit 5cc8972 · analyzer v33 · 1w ago

skills & prompt files 3

code evidence vHEAD · github-tarball
evidence-backed findings quoted directly from the published source artifact — not inferred

code files: 159

filesystem 4

  • fs nt1412-aqa-5cc8972/cli/main.py :3 from pathlib import Path
  • fs (weak) nt1412-aqa-5cc8972/scripts/bugcorpus/load.py :12 from pathlib import Path
  • fs (weak) nt1412-aqa-5cc8972/scripts/dogfood.py :21 from pathlib import Path
  • fs (weak) nt1412-aqa-5cc8972/tests/test_migrations.py :12 from pathlib import Path

shell / exec 2

  • shell (weak) nt1412-aqa-5cc8972/scripts/dogfood.py :19 import subprocess
  • shell (weak) nt1412-aqa-5cc8972/tests/test_migrations.py :10 import subprocess

network 3

  • net nt1412-aqa-5cc8972/cli/main.py :5 import httpx
  • net (weak) nt1412-aqa-5cc8972/scripts/_aqaclient.py :10 import httpx
  • net (weak) nt1412-aqa-5cc8972/tests/conftest.py :2 from httpx import ASGITransport, AsyncClient

secrets 2

  • secrets nt1412-aqa-5cc8972/app/services/auth.py :80 secret = os.environ.get("AQA_MCP_ENROLL_KEY") or os.environ.get("AGENTQA_MCP_ENROLL_KEY")
  • secrets (weak) nt1412-aqa-5cc8972/scripts/_aqaclient.py :18 key = os.environ.get("AQA_API_KEY")

database 49

  • db nt1412-aqa-5cc8972/app/api/deps.py :4 from sqlalchemy.ext.asyncio import AsyncSession
  • db nt1412-aqa-5cc8972/app/db.py :3 from sqlalchemy.ext.asyncio import AsyncSession, async_sessionmaker, create_async_engine
  • db nt1412-aqa-5cc8972/app/models/base.py :3 from sqlalchemy import DateTime, func
  • db nt1412-aqa-5cc8972/app/models/evidence.py :4 from sqlalchemy import DateTime, ForeignKey, Integer, String, Text, func
  • db nt1412-aqa-5cc8972/app/models/execution.py :3 from sqlalchemy import DateTime, ForeignKey, Integer, String, Text, func
  • db nt1412-aqa-5cc8972/app/models/meta.py :3 from sqlalchemy import Boolean, DateTime, ForeignKey, Integer, String, Text, func
  • db nt1412-aqa-5cc8972/app/models/plan.py :3 from sqlalchemy import Boolean, DateTime, ForeignKey, Integer, String, Text, UniqueConstraint
  • db nt1412-aqa-5cc8972/app/models/requirement.py :1 from sqlalchemy import Boolean, ForeignKey, Integer, String, Text
  • db nt1412-aqa-5cc8972/app/models/structure.py :1 from sqlalchemy import Boolean, ForeignKey, Integer, String, Text, UniqueConstraint
  • db nt1412-aqa-5cc8972/app/models/testcase.py :1 from sqlalchemy import Boolean, ForeignKey, Integer, String, Text, UniqueConstraint
  • db nt1412-aqa-5cc8972/app/models/user.py :3 from sqlalchemy import Boolean, DateTime, ForeignKey, String, Text
  • db nt1412-aqa-5cc8972/app/services/annotations.py :1 from sqlalchemy import select
  • db nt1412-aqa-5cc8972/app/services/assignments.py :1 from sqlalchemy import select
  • db nt1412-aqa-5cc8972/app/services/auth.py :7 from sqlalchemy import select
  • db nt1412-aqa-5cc8972/app/services/builds.py :1 from sqlalchemy import select
  • db nt1412-aqa-5cc8972/app/services/evidence.py :3 from sqlalchemy import Integer, cast, func, select
  • db nt1412-aqa-5cc8972/app/services/executions.py :3 from sqlalchemy import select
  • db nt1412-aqa-5cc8972/app/services/lineage.py :8 from sqlalchemy import func, select, text
  • db nt1412-aqa-5cc8972/app/services/milestones.py :1 from sqlalchemy import select
  • db nt1412-aqa-5cc8972/app/services/plans.py :1 from sqlalchemy import func, select
  • db nt1412-aqa-5cc8972/app/services/platforms.py :1 from sqlalchemy import select
  • db nt1412-aqa-5cc8972/app/services/projects.py :1 from sqlalchemy import select
  • db nt1412-aqa-5cc8972/app/services/requirements.py :1 from sqlalchemy import select
  • db nt1412-aqa-5cc8972/app/services/reruns.py :7 from sqlalchemy import select
  • db nt1412-aqa-5cc8972/app/services/suites.py :1 from sqlalchemy import func, select
  • db nt1412-aqa-5cc8972/app/services/testcases.py :1 from sqlalchemy import select
  • db nt1412-aqa-5cc8972/app/services/users.py :1 from sqlalchemy import select
  • db nt1412-aqa-5cc8972/migrations/env.py :4 from sqlalchemy.ext.asyncio import async_engine_from_config
  • db nt1412-aqa-5cc8972/migrations/versions/011efae2d289_add_test_cases_quarantined.py :11 import sqlalchemy as sa
  • db nt1412-aqa-5cc8972/migrations/versions/13de60bfa83f_add_unique_constraints_for_external_id_.py :11 import sqlalchemy as sa
  • db nt1412-aqa-5cc8972/migrations/versions/27e9dc13d62a_add_build_base_commit_and_lineage_views.py :11 import sqlalchemy as sa
  • db nt1412-aqa-5cc8972/migrations/versions/4bef8cd70aab_add_annotations_table.py :11 import sqlalchemy as sa
  • db nt1412-aqa-5cc8972/migrations/versions/5c72a6312244_add_execution_reasoning_embedding_.py :11 import sqlalchemy as sa
  • db nt1412-aqa-5cc8972/migrations/versions/a7c3f1b9d2e4_add_reasoning_search_text_fts.py :13 import sqlalchemy as sa
  • db nt1412-aqa-5cc8972/migrations/versions/b2d4f6a8c0e1_add_execution_claim_claimant.py :13 import sqlalchemy as sa
  • db nt1412-aqa-5cc8972/migrations/versions/bc5d4977f6e4_add_guard_hits_table.py :11 import sqlalchemy as sa
  • db nt1412-aqa-5cc8972/migrations/versions/e56577598840_initial_schema.py :11 import sqlalchemy as sa
  • db (weak) nt1412-aqa-5cc8972/scripts/reembed.py :13 from sqlalchemy import text
  • db (weak) nt1412-aqa-5cc8972/scripts/seed.py :3 from sqlalchemy import select
  • db (weak) nt1412-aqa-5cc8972/tests/conftest.py :3 from sqlalchemy import text
  • db (weak) nt1412-aqa-5cc8972/tests/test_embeddings.py :2 from sqlalchemy import select
  • db (weak) nt1412-aqa-5cc8972/tests/test_evidence_artifacts.py :2 from sqlalchemy import select
  • db (weak) nt1412-aqa-5cc8972/tests/test_evidence_claims.py :2 from sqlalchemy import select
  • db (weak) nt1412-aqa-5cc8972/tests/test_evidence_verify.py :2 from sqlalchemy import select
  • db (weak) nt1412-aqa-5cc8972/tests/test_hierarchy.py :139 from sqlalchemy import update
  • db (weak) nt1412-aqa-5cc8972/tests/test_migrations.py :15 from sqlalchemy import inspect, text
  • db (weak) nt1412-aqa-5cc8972/tests/test_reruns.py :2 from sqlalchemy import select
  • db (weak) nt1412-aqa-5cc8972/tests/test_seed.py :2 from sqlalchemy import select
  • db (weak) nt1412-aqa-5cc8972/tests/test_services.py :2 from sqlalchemy import text

tool registrations 44

  • get_orientation nt1412-aqa-5cc8972/app/mcp_server/server.py :204
  • create_project nt1412-aqa-5cc8972/app/mcp_server/server.py :217
  • create_test_suite nt1412-aqa-5cc8972/app/mcp_server/server.py :231
  • create_test_case nt1412-aqa-5cc8972/app/mcp_server/server.py :239
  • bulk_create_test_cases nt1412-aqa-5cc8972/app/mcp_server/server.py :269
  • get_test_case nt1412-aqa-5cc8972/app/mcp_server/server.py :293
  • search_test_cases nt1412-aqa-5cc8972/app/mcp_server/server.py :310
  • record_test_run nt1412-aqa-5cc8972/app/mcp_server/server.py :318
  • assign_test nt1412-aqa-5cc8972/app/mcp_server/server.py :383
  • list_assignments nt1412-aqa-5cc8972/app/mcp_server/server.py :412
  • upload_artifact nt1412-aqa-5cc8972/app/mcp_server/server.py :437
  • list_unverified_claims nt1412-aqa-5cc8972/app/mcp_server/server.py :458
  • verify_claim nt1412-aqa-5cc8972/app/mcp_server/server.py :470
  • create_audit_report nt1412-aqa-5cc8972/app/mcp_server/server.py :487
  • evaluate_test_case nt1412-aqa-5cc8972/app/mcp_server/server.py :512
  • get_execution_evidence nt1412-aqa-5cc8972/app/mcp_server/server.py :520
  • get_agent_execution_history nt1412-aqa-5cc8972/app/mcp_server/server.py :528
  • get_failure_context nt1412-aqa-5cc8972/app/mcp_server/server.py :545
  • search_similar_failures nt1412-aqa-5cc8972/app/mcp_server/server.py :555
  • search_recurrences nt1412-aqa-5cc8972/app/mcp_server/server.py :563
  • create_requirement nt1412-aqa-5cc8972/app/mcp_server/server.py :580
  • link_coverage nt1412-aqa-5cc8972/app/mcp_server/server.py :605
  • get_coverage_gaps nt1412-aqa-5cc8972/app/mcp_server/server.py :618
  • list_build_timeline nt1412-aqa-5cc8972/app/mcp_server/server.py :629
  • get_build_detail nt1412-aqa-5cc8972/app/mcp_server/server.py :637
  • get_case_history nt1412-aqa-5cc8972/app/mcp_server/server.py :645
  • compare_builds nt1412-aqa-5cc8972/app/mcp_server/server.py :653
  • list_branch_status nt1412-aqa-5cc8972/app/mcp_server/server.py :663
  • get_case_status_map nt1412-aqa-5cc8972/app/mcp_server/server.py :673
  • get_project_health nt1412-aqa-5cc8972/app/mcp_server/server.py :683
  • get_known_regressions nt1412-aqa-5cc8972/app/mcp_server/server.py :692
  • create_annotation nt1412-aqa-5cc8972/app/mcp_server/server.py :708
  • list_annotations nt1412-aqa-5cc8972/app/mcp_server/server.py :722
  • set_quarantine nt1412-aqa-5cc8972/app/mcp_server/server.py :732
  • request_rerun nt1412-aqa-5cc8972/app/mcp_server/server.py :743
  • register_agent nt1412-aqa-5cc8972/app/mcp_server/server.py :769
  • get_suite_tree nt1412-aqa-5cc8972/app/mcp_server/server.py :822
  • list_agents nt1412-aqa-5cc8972/app/mcp_server/server.py :837
  • deactivate_agent nt1412-aqa-5cc8972/app/mcp_server/server.py :848
  • create_test_plan nt1412-aqa-5cc8972/app/mcp_server/server.py :858
  • add_cases_to_plan nt1412-aqa-5cc8972/app/mcp_server/server.py :871
  • add_test_dependency nt1412-aqa-5cc8972/app/mcp_server/server.py :887
  • get_run_manifest nt1412-aqa-5cc8972/app/mcp_server/server.py :903
  • _stub nt1412-aqa-5cc8972/app/mcp_server/server.py :925

declared dependencies 20

  • mcp@>=1.1
  • fastapi@>=0.115
  • uvicorn@>=0.32
  • sqlalchemy@>=2.0.36
  • asyncpg@>=0.30
  • alembic@>=1.14
  • pydantic@>=2.10
  • pydantic-settings@>=2.6
  • python-jose@>=3.3
  • passlib@>=1.7
  • bcrypt@>=4.0,<5
  • pgvector@>=0.3.6
  • minio@>=7.2
  • typer@>=0.13
  • httpx@>=0.28
  • python-multipart@>=0.0.12
  • pytest@>=8.3
  • pytest-asyncio@>=0.24
  • ruff@>=0.8
  • sentence-transformers@>=3.0