github analyzed e391d9c

saajunaid/junai

github

junai is 'Just Un-AI' routing with full AI power. Your agents stay smart. Your pipeline stays predictable. Deterministic agent pipeline for VS Code + GitHub Copilot. A Python state machine routes 23 specialised AI agents through 9 stages — no hallucinated routing, git-blameable transitions.

maintainer
saajunaid
license
NOASSERTION
first seen
2026-06-08
last seen
2026-06-12
releases · 30d
0
short id

Drift inferred · capture-to-capture

  1. HIGH code analysis flagged hidden prompt content ×6 in saajunaid/junai
  2. HIGH code analysis flagged hidden prompt content ×6 in saajunaid/junai
capabilities 9 tools
transport stdio · streamable-http · http counts 9 tools · 0 res · 0 prompts permission surface via code analysis

tools

  • get_pipeline_status

    Current stage, mode, blocked_by, next transition, and formatted progress_line

  • notify_orchestrator

    Record stage completion + compute next transition

  • pipeline_init

    Start a new pipeline (confirm=true required)

  • pipeline_reset

    Reset for next feature (confirm=true required)

  • run_command

    Execute any shell command (tests, lint, format) — enables hands-free test runs

  • satisfy_gate

    Approve a supervision gate

  • set_pipeline_mode

    Switch between supervised / assisted / autopilot

  • skip_stage

    Skip the current stage with auto-gate satisfaction (blocked on implement, anchor, tester)

  • validate_deferred_paths

    Verify deferred item file paths before pipeline close

skills & danger signals github-tarball
prompt-surface shipped agent-instruction files + hidden-content / dangerous-code findings — quoted from the analyzed source

analyzed commit e391d9c · analyzer v18 · 1h ago

skills & prompt files 183

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

filesystem 118

  • fs saajunaid-junai-e391d9c/.github/skills/coding/mcp-builder/scripts/evaluation.py :14 from pathlib import Path
  • fs saajunaid-junai-e391d9c/.github/skills/frontend/ui-ux-intelligence/data/_sync_all.py :190 with open(src, newline="", encoding="utf-8") as f:
  • fs saajunaid-junai-e391d9c/.github/skills/frontend/ui-ux-intelligence/scripts/core.py :9 from pathlib import Path
  • fs saajunaid-junai-e391d9c/.github/skills/frontend/ui-ux-intelligence/scripts/design_system.py :20 from pathlib import Path
  • fs saajunaid-junai-e391d9c/.github/skills/media/draw-io/scripts/find_aws_icon.py :16 from pathlib import Path
  • fs saajunaid-junai-e391d9c/.github/skills/media/excalidraw/scripts/add-arrow.py :24 from pathlib import Path
  • fs saajunaid-junai-e391d9c/.github/skills/media/excalidraw/scripts/add-icon-to-diagram.py :27 from pathlib import Path
  • fs saajunaid-junai-e391d9c/.github/skills/media/excalidraw/scripts/split-excalidraw-library.py :23 from pathlib import Path
  • fs saajunaid-junai-e391d9c/.github/skills/media/notebooklm/scripts/__init__.py :10 from pathlib import Path
  • fs saajunaid-junai-e391d9c/.github/skills/media/notebooklm/scripts/ask_question.py :16 from pathlib import Path
  • fs saajunaid-junai-e391d9c/.github/skills/media/notebooklm/scripts/auth_manager.py :16 import shutil
  • fs saajunaid-junai-e391d9c/.github/skills/media/notebooklm/scripts/browser_session.py :11 from pathlib import Path
  • fs saajunaid-junai-e391d9c/.github/skills/media/notebooklm/scripts/browser_utils.py :50 with open(STATE_FILE, 'r') as f:
  • fs saajunaid-junai-e391d9c/.github/skills/media/notebooklm/scripts/cleanup_manager.py :7 import shutil
  • fs saajunaid-junai-e391d9c/.github/skills/media/notebooklm/scripts/config.py :6 from pathlib import Path
  • fs saajunaid-junai-e391d9c/.github/skills/media/notebooklm/scripts/notebook_manager.py :12 from pathlib import Path
  • fs saajunaid-junai-e391d9c/.github/skills/media/notebooklm/scripts/run.py :10 from pathlib import Path
  • fs saajunaid-junai-e391d9c/.github/skills/media/notebooklm/scripts/setup_environment.py :11 from pathlib import Path
  • fs saajunaid-junai-e391d9c/.github/skills/media/slack-gif-creator/core/gif_builder.py :9 from pathlib import Path
  • fs saajunaid-junai-e391d9c/.github/skills/media/slack-gif-creator/core/validators.py :8 from pathlib import Path
  • fs saajunaid-junai-e391d9c/.github/skills/media/slack-gif-creator/templates/bounce.py :9 from pathlib import Path
  • fs saajunaid-junai-e391d9c/.github/skills/media/slack-gif-creator/templates/explode.py :9 from pathlib import Path
  • fs saajunaid-junai-e391d9c/.github/skills/media/slack-gif-creator/templates/fade.py :9 from pathlib import Path
  • fs saajunaid-junai-e391d9c/.github/skills/media/slack-gif-creator/templates/flip.py :9 from pathlib import Path
  • fs saajunaid-junai-e391d9c/.github/skills/media/slack-gif-creator/templates/kaleidoscope.py :9 from pathlib import Path
  • fs saajunaid-junai-e391d9c/.github/skills/media/slack-gif-creator/templates/morph.py :9 from pathlib import Path
  • fs saajunaid-junai-e391d9c/.github/skills/media/slack-gif-creator/templates/move.py :9 from pathlib import Path
  • fs saajunaid-junai-e391d9c/.github/skills/media/slack-gif-creator/templates/pulse.py :9 from pathlib import Path
  • fs saajunaid-junai-e391d9c/.github/skills/media/slack-gif-creator/templates/shake.py :10 from pathlib import Path
  • fs saajunaid-junai-e391d9c/.github/skills/media/slack-gif-creator/templates/slide.py :9 from pathlib import Path
  • fs saajunaid-junai-e391d9c/.github/skills/media/slack-gif-creator/templates/spin.py :9 from pathlib import Path
  • fs saajunaid-junai-e391d9c/.github/skills/media/slack-gif-creator/templates/wiggle.py :9 from pathlib import Path
  • fs saajunaid-junai-e391d9c/.github/skills/media/slack-gif-creator/templates/zoom.py :9 from pathlib import Path
  • fs saajunaid-junai-e391d9c/.github/skills/workflow/data-contract-pipeline/scripts/discover_connections.py :14 from pathlib import Path
  • fs saajunaid-junai-e391d9c/.github/skills/workflow/data-contract-pipeline/scripts/discover_sources.py :13 from pathlib import Path
  • fs saajunaid-junai-e391d9c/.github/skills/workflow/data-contract-pipeline/scripts/drift_check.py :24 from pathlib import Path
  • fs saajunaid-junai-e391d9c/.github/skills/workflow/data-contract-pipeline/scripts/extract_schema.py :45 from pathlib import Path
  • fs saajunaid-junai-e391d9c/.github/skills/workflow/data-contract-pipeline/scripts/generate_gap_report.py :9 from pathlib import Path
  • fs saajunaid-junai-e391d9c/.github/skills/workflow/data-contract-pipeline/scripts/generate_mapping_doc.py :28 from pathlib import Path
  • fs saajunaid-junai-e391d9c/.github/skills/workflow/data-contract-pipeline/scripts/ts_dto_compare.py :20 from pathlib import Path
  • fs saajunaid-junai-e391d9c/.github/skills/workflow/data-contract-pipeline/scripts/validate_lineage.py :8 from pathlib import Path
  • fs saajunaid-junai-e391d9c/.github/skills/workflow/skill-creator/eval-viewer/generate_review.py :28 from pathlib import Path
  • fs saajunaid-junai-e391d9c/.github/skills/workflow/skill-creator/scripts/aggregate_benchmark.py :42 from pathlib import Path
  • fs saajunaid-junai-e391d9c/.github/skills/workflow/skill-creator/scripts/generate_report.py :13 from pathlib import Path
  • fs saajunaid-junai-e391d9c/.github/skills/workflow/skill-creator/scripts/improve_description.py :15 from pathlib import Path
  • fs saajunaid-junai-e391d9c/.github/skills/workflow/skill-creator/scripts/package_skill.py :16 from pathlib import Path
  • fs saajunaid-junai-e391d9c/.github/skills/workflow/skill-creator/scripts/quick_validate.py :10 from pathlib import Path
  • fs saajunaid-junai-e391d9c/.github/skills/workflow/skill-creator/scripts/run_eval.py :17 from pathlib import Path
  • fs saajunaid-junai-e391d9c/.github/skills/workflow/skill-creator/scripts/run_loop.py :16 from pathlib import Path
  • fs saajunaid-junai-e391d9c/.github/skills/workflow/skill-creator/scripts/utils.py :3 from pathlib import Path
  • fs saajunaid-junai-e391d9c/.github/tools/mcp-server/server.py :13 from pathlib import Path
  • fs saajunaid-junai-e391d9c/.github/tools/pipeline-runner/agent_manager.py :19 from pathlib import Path
  • fs saajunaid-junai-e391d9c/.github/tools/pipeline-runner/guards.py :3 from pathlib import Path
  • fs saajunaid-junai-e391d9c/.github/tools/pipeline-runner/junai.py :64 from pathlib import Path
  • fs saajunaid-junai-e391d9c/.github/tools/pipeline-runner/pipeline_runner.py :7 from pathlib import Path
  • fs saajunaid-junai-e391d9c/.github/tools/pipeline-runner/scripts/dry_run_all_modes.py :15 from pathlib import Path
  • fs saajunaid-junai-e391d9c/.github/tools/pipeline-runner/transitions.py :5 from pathlib import Path
  • fs saajunaid-junai-e391d9c/.github/tools/pool-sync/generate_registry.py :6 from pathlib import Path
  • fs saajunaid-junai-e391d9c/.github/tools/pool-sync/manifest.py :5 from pathlib import Path
  • fs saajunaid-junai-e391d9c/.github/tools/pool-sync/pool_sync.py :8 import shutil
  • fs saajunaid-junai-e391d9c/export_runtime_resources.py :6 import shutil
  • fs saajunaid-junai-e391d9c/plugin-extras/skills/data-contract-pipeline/scripts/discover_connections.py :14 from pathlib import Path
  • fs saajunaid-junai-e391d9c/plugin-extras/skills/data-contract-pipeline/scripts/discover_sources.py :13 from pathlib import Path
  • fs saajunaid-junai-e391d9c/plugin-extras/skills/data-contract-pipeline/scripts/drift_check.py :24 from pathlib import Path
  • fs saajunaid-junai-e391d9c/plugin-extras/skills/data-contract-pipeline/scripts/extract_schema.py :45 from pathlib import Path
  • fs saajunaid-junai-e391d9c/plugin-extras/skills/data-contract-pipeline/scripts/generate_gap_report.py :9 from pathlib import Path
  • fs saajunaid-junai-e391d9c/plugin-extras/skills/data-contract-pipeline/scripts/generate_mapping_doc.py :28 from pathlib import Path
  • fs saajunaid-junai-e391d9c/plugin-extras/skills/data-contract-pipeline/scripts/ts_dto_compare.py :20 from pathlib import Path
  • fs saajunaid-junai-e391d9c/plugin-extras/skills/data-contract-pipeline/scripts/validate_lineage.py :8 from pathlib import Path
  • fs saajunaid-junai-e391d9c/plugin-extras/skills/excalidraw/scripts/add-arrow.py :24 from pathlib import Path
  • fs saajunaid-junai-e391d9c/plugin-extras/skills/excalidraw/scripts/add-icon-to-diagram.py :27 from pathlib import Path
  • fs saajunaid-junai-e391d9c/plugin-extras/skills/excalidraw/scripts/split-excalidraw-library.py :23 from pathlib import Path
  • fs saajunaid-junai-e391d9c/plugin-extras/skills/mcp-builder/scripts/evaluation.py :14 from pathlib import Path
  • fs saajunaid-junai-e391d9c/plugin-extras/skills/notebooklm/scripts/__init__.py :10 from pathlib import Path
  • fs saajunaid-junai-e391d9c/plugin-extras/skills/notebooklm/scripts/ask_question.py :16 from pathlib import Path
  • fs saajunaid-junai-e391d9c/plugin-extras/skills/notebooklm/scripts/auth_manager.py :16 import shutil
  • fs saajunaid-junai-e391d9c/plugin-extras/skills/notebooklm/scripts/browser_session.py :11 from pathlib import Path
  • fs saajunaid-junai-e391d9c/plugin-extras/skills/notebooklm/scripts/browser_utils.py :50 with open(STATE_FILE, 'r') as f:
  • fs saajunaid-junai-e391d9c/plugin-extras/skills/notebooklm/scripts/cleanup_manager.py :7 import shutil
  • fs saajunaid-junai-e391d9c/plugin-extras/skills/notebooklm/scripts/config.py :6 from pathlib import Path
  • fs saajunaid-junai-e391d9c/plugin-extras/skills/notebooklm/scripts/notebook_manager.py :12 from pathlib import Path
  • fs saajunaid-junai-e391d9c/plugin-extras/skills/notebooklm/scripts/run.py :10 from pathlib import Path
  • fs saajunaid-junai-e391d9c/plugin-extras/skills/notebooklm/scripts/setup_environment.py :11 from pathlib import Path
  • fs saajunaid-junai-e391d9c/plugin-extras/skills/slack-gif-creator/core/gif_builder.py :9 from pathlib import Path
  • fs saajunaid-junai-e391d9c/plugin-extras/skills/slack-gif-creator/core/validators.py :8 from pathlib import Path
  • fs saajunaid-junai-e391d9c/plugin-extras/skills/slack-gif-creator/templates/bounce.py :9 from pathlib import Path
  • fs saajunaid-junai-e391d9c/plugin-extras/skills/slack-gif-creator/templates/explode.py :9 from pathlib import Path
  • fs saajunaid-junai-e391d9c/plugin-extras/skills/slack-gif-creator/templates/fade.py :9 from pathlib import Path
  • fs saajunaid-junai-e391d9c/plugin-extras/skills/slack-gif-creator/templates/flip.py :9 from pathlib import Path
  • fs saajunaid-junai-e391d9c/plugin-extras/skills/slack-gif-creator/templates/kaleidoscope.py :9 from pathlib import Path
  • fs saajunaid-junai-e391d9c/plugin-extras/skills/slack-gif-creator/templates/morph.py :9 from pathlib import Path
  • fs saajunaid-junai-e391d9c/plugin-extras/skills/slack-gif-creator/templates/move.py :9 from pathlib import Path
  • fs saajunaid-junai-e391d9c/plugin-extras/skills/slack-gif-creator/templates/pulse.py :9 from pathlib import Path
  • fs saajunaid-junai-e391d9c/plugin-extras/skills/slack-gif-creator/templates/shake.py :10 from pathlib import Path
  • fs saajunaid-junai-e391d9c/plugin-extras/skills/slack-gif-creator/templates/slide.py :9 from pathlib import Path
  • fs saajunaid-junai-e391d9c/plugin-extras/skills/slack-gif-creator/templates/spin.py :9 from pathlib import Path
  • fs saajunaid-junai-e391d9c/plugin-extras/skills/slack-gif-creator/templates/wiggle.py :9 from pathlib import Path
  • fs saajunaid-junai-e391d9c/plugin-extras/skills/slack-gif-creator/templates/zoom.py :9 from pathlib import Path
  • fs saajunaid-junai-e391d9c/plugin-extras/skills/ui-ux-intelligence/data/_sync_all.py :190 with open(src, newline="", encoding="utf-8") as f:
  • fs saajunaid-junai-e391d9c/plugin-extras/skills/ui-ux-intelligence/scripts/core.py :9 from pathlib import Path
  • fs saajunaid-junai-e391d9c/plugin-extras/skills/ui-ux-intelligence/scripts/design_system.py :20 from pathlib import Path
  • fs saajunaid-junai-e391d9c/plugin/hooks/inject_relay.py :115 text = open(RELAY, encoding="utf-8").read().strip()
  • fs saajunaid-junai-e391d9c/plugin/hooks/session_end.py :61 with open(transcript_path, encoding="utf-8") as fh:
  • fs saajunaid-junai-e391d9c/plugin/scripts/setup_project_ai.py :24 import shutil
  • fs saajunaid-junai-e391d9c/plugin/scripts/usage_review.py :24 from pathlib import Path
  • fs saajunaid-junai-e391d9c/plugin/skills/draw-io/scripts/find_aws_icon.py :16 from pathlib import Path
  • fs saajunaid-junai-e391d9c/plugin/skills/skill-creator/eval-viewer/generate_review.py :28 from pathlib import Path
  • fs saajunaid-junai-e391d9c/plugin/skills/skill-creator/scripts/aggregate_benchmark.py :42 from pathlib import Path
  • fs saajunaid-junai-e391d9c/plugin/skills/skill-creator/scripts/generate_report.py :13 from pathlib import Path
  • fs saajunaid-junai-e391d9c/plugin/skills/skill-creator/scripts/improve_description.py :15 from pathlib import Path
  • fs saajunaid-junai-e391d9c/plugin/skills/skill-creator/scripts/package_skill.py :16 from pathlib import Path
  • fs saajunaid-junai-e391d9c/plugin/skills/skill-creator/scripts/quick_validate.py :10 from pathlib import Path
  • fs saajunaid-junai-e391d9c/plugin/skills/skill-creator/scripts/run_eval.py :17 from pathlib import Path
  • fs saajunaid-junai-e391d9c/plugin/skills/skill-creator/scripts/run_loop.py :16 from pathlib import Path
  • fs saajunaid-junai-e391d9c/plugin/skills/skill-creator/scripts/utils.py :3 from pathlib import Path
  • fs saajunaid-junai-e391d9c/src/junai_mcp/server.py :13 from pathlib import Path
  • fs saajunaid-junai-e391d9c/validate_agents.py :24 from pathlib import Path
  • fs saajunaid-junai-e391d9c/validate_pool.py :24 from pathlib import Path

shell / exec 21

  • shell saajunaid-junai-e391d9c/.github/skills/media/notebooklm/scripts/__init__.py :9 import subprocess
  • shell saajunaid-junai-e391d9c/.github/skills/media/notebooklm/scripts/run.py :9 import subprocess
  • shell saajunaid-junai-e391d9c/.github/skills/media/notebooklm/scripts/setup_environment.py :9 import subprocess
  • shell saajunaid-junai-e391d9c/.github/skills/testing/webapp-testing/scripts/with_server.py :17 import subprocess
  • shell saajunaid-junai-e391d9c/.github/skills/workflow/skill-creator/eval-viewer/generate_review.py :22 import subprocess
  • shell saajunaid-junai-e391d9c/.github/skills/workflow/skill-creator/scripts/improve_description.py :13 import subprocess
  • shell saajunaid-junai-e391d9c/.github/skills/workflow/skill-creator/scripts/run_eval.py :12 import subprocess
  • shell saajunaid-junai-e391d9c/.github/tools/mcp-server/server.py :10 import subprocess as _subprocess
  • shell saajunaid-junai-e391d9c/.github/tools/pool-sync/pool_sync.py :9 import subprocess
  • shell saajunaid-junai-e391d9c/plugin-extras/skills/notebooklm/scripts/__init__.py :9 import subprocess
  • shell saajunaid-junai-e391d9c/plugin-extras/skills/notebooklm/scripts/run.py :9 import subprocess
  • shell saajunaid-junai-e391d9c/plugin-extras/skills/notebooklm/scripts/setup_environment.py :9 import subprocess
  • shell saajunaid-junai-e391d9c/plugin/hooks/auto_lint.py :9 import subprocess
  • shell saajunaid-junai-e391d9c/plugin/hooks/inject_relay.py :14 import subprocess
  • shell saajunaid-junai-e391d9c/plugin/scripts/setup_project_ai.py :293 import subprocess
  • shell saajunaid-junai-e391d9c/plugin/skills/skill-creator/eval-viewer/generate_review.py :22 import subprocess
  • shell saajunaid-junai-e391d9c/plugin/skills/skill-creator/scripts/improve_description.py :13 import subprocess
  • shell saajunaid-junai-e391d9c/plugin/skills/skill-creator/scripts/run_eval.py :12 import subprocess
  • shell saajunaid-junai-e391d9c/plugin/skills/webapp-testing/scripts/with_server.py :17 import subprocess
  • shell saajunaid-junai-e391d9c/src/junai_mcp/server.py :10 import subprocess as _subprocess
  • shell saajunaid-junai-e391d9c/validate_agents.py :20 import subprocess

network 2

  • net saajunaid-junai-e391d9c/.github/skills/testing/webapp-testing/scripts/with_server.py :18 import socket
  • net saajunaid-junai-e391d9c/plugin/skills/webapp-testing/scripts/with_server.py :18 import socket

database 2

  • db saajunaid-junai-e391d9c/.github/skills/workflow/data-contract-pipeline/scripts/extract_schema.py :765 from sqlalchemy import text
  • db saajunaid-junai-e391d9c/plugin-extras/skills/data-contract-pipeline/scripts/extract_schema.py :765 from sqlalchemy import text

tool registrations 22

  • notify_orchestrator saajunaid-junai-e391d9c/.github/tools/mcp-server/server.py :205
  • validate_deferred_paths saajunaid-junai-e391d9c/.github/tools/mcp-server/server.py :287
  • get_pipeline_status saajunaid-junai-e391d9c/.github/tools/mcp-server/server.py :348
  • skip_stage saajunaid-junai-e391d9c/.github/tools/mcp-server/server.py :391
  • set_pipeline_mode saajunaid-junai-e391d9c/.github/tools/mcp-server/server.py :443
  • satisfy_gate saajunaid-junai-e391d9c/.github/tools/mcp-server/server.py :462
  • update_notes saajunaid-junai-e391d9c/.github/tools/mcp-server/server.py :483
  • replay_stage saajunaid-junai-e391d9c/.github/tools/mcp-server/server.py :547
  • pipeline_init saajunaid-junai-e391d9c/.github/tools/mcp-server/server.py :659
  • pipeline_reset saajunaid-junai-e391d9c/.github/tools/mcp-server/server.py :759
  • run_command saajunaid-junai-e391d9c/.github/tools/mcp-server/server.py :799
  • notify_orchestrator saajunaid-junai-e391d9c/src/junai_mcp/server.py :205
  • validate_deferred_paths saajunaid-junai-e391d9c/src/junai_mcp/server.py :287
  • get_pipeline_status saajunaid-junai-e391d9c/src/junai_mcp/server.py :348
  • skip_stage saajunaid-junai-e391d9c/src/junai_mcp/server.py :391
  • set_pipeline_mode saajunaid-junai-e391d9c/src/junai_mcp/server.py :443
  • satisfy_gate saajunaid-junai-e391d9c/src/junai_mcp/server.py :462
  • update_notes saajunaid-junai-e391d9c/src/junai_mcp/server.py :483
  • replay_stage saajunaid-junai-e391d9c/src/junai_mcp/server.py :547
  • pipeline_init saajunaid-junai-e391d9c/src/junai_mcp/server.py :659
  • pipeline_reset saajunaid-junai-e391d9c/src/junai_mcp/server.py :759
  • run_command saajunaid-junai-e391d9c/src/junai_mcp/server.py :799

declared dependencies 1

  • fastmcp@>=0.3.0