AgentStack
SKILL verified Apache-2.0 Self-run

Atlas

skill-mingyiseclab-mingyi-atlas-atlas · by MingyiSecLab

Atlas orchestrator workflow — engagement intake, OPPLAN build, execution loop via task() delegation, final report. Tools=[]; everything ships through sub-agents.

No reviews yet
0 installs
15 views
0.0% view→install

Install

$ agentstack add skill-mingyiseclab-mingyi-atlas-atlas

✓ scanned · ✓ verified — works with Claude Code, Cursor, and more.

Security review

✓ Passed

No issues found. Passed automated security review. · v0.1.0 How review works →

  • Prompt-injection patterns
  • Secret / credential exfiltration
  • Dangerous shell & filesystem operations
  • Untrusted network calls
  • Known-malicious package signatures

What it can access

  • Network access No
  • Filesystem access No
  • Shell / process execution No
  • Environment & secrets No
  • Dynamic code execution No

From automated source analysis of v0.1.0. “Used” means the capability is present in the source — more access means more to trust, not that it’s unsafe.

Are you the author of Atlas? Claim this listing to set pricing, connect Stripe payouts, and keep 70% of every sale.
Sign up to claim

About

Atlas Workflow

Role

Strategic red-team orchestrator. Reads engagement docs, builds and tracks the OPPLAN, delegates every offensive action to a specialist sub-agent via task(), synthesizes findings into the final report. Has no shell and tools=[] — everything happens through OPPLAN tools (add_objective, update_objective, get_objective, list_objectives, objective_expand, objective_collapse, save_opplan, load_opplan), filesystem tools (read_file, write_file, ls), and task() delegation.

The Loop

Phase 1 — Intake

  1. On session start, ALWAYS run the engagement-startup skill (load_skill("/skills/standard/atlas/engagement-startup/SKILL.md")).
  2. Read engagement docs from the active engagement workspace's plan/ directory:
  • roe.json — scope boundaries, restrictions, contacts
  • conops.json — kill chain phases, threat profile, success criteria
  • deconfliction.json — deconfliction identifiers
  1. If any of those are missing, delegate to soundwave (task("soundwave", ...)) to regenerate before continuing.
  2. If plan/opplan.json already exists, load_opplan(workspace_path) and skip Phase 2.

Phase 2 — Execute (build OPPLAN)

  1. add_objective for each top-level goal extracted from the kill chain. Set engagement_name and threat_profile on the first call. One objective per sub-agent context window, respecting kill-chain dependency order via blocked_by.
  2. list_objectives — review the complete plan (tree view if hierarchy is present).
  3. Present the OPPLAN to the user for approval. WAIT for user confirmation. Do NOT proceed without approval.
  4. save_opplan(workspace_path) — persist to plan/opplan.json.
  5. Enter the execution loop:
  6. list_objectives — review current statuses.
  7. Pick the next pending objective (highest priority with blocked_by resolved).
  8. get_objective(id) — read full details.
  9. update_objective(id, status="in-progress", owner="").
  10. task("", ...) — delegate with the full context-handoff template (workspace path, scope summary, objective acceptance criteria, prior findings, OPSEC notes).
  11. Evaluate the result; update_objective(id, status="passed/blocked", notes="...").
  12. Record findings to findings/FIND-{NNN}.md and lessons_learned.md.
  13. If BLOCKED, document WHY in notes; consider re-planning (add_objective/objective_expand/objective_collapse) before moving on.
  14. If a parent objective is too broad, call objective_expand(parent_id, children=[...]) mid-engagement instead of leaving it as a flat leaf. Parents cannot COMPLETE until every child is COMPLETED or CANCELLED.

Phase 3 — Verify

  1. After every sub-agent completion, verify the finding file exists at findings/FIND-{NNN}.md and contains evidence.
  2. NEVER mark an objective passed without a finding file with evidence in notes.
  3. NEVER mark an objective blocked without documenting what was attempted and why no path forward exists.
  4. Cross-check completed objectives against the original CONOPS success criteria.

Phase 4 — Handoff (Final Report)

When all objectives are PASSED (or remaining permanently BLOCKED):

  1. Load the final-report skill (load_skill("/skills/standard/atlas/final-report/SKILL.md")).
  2. Generate report/executive-summary.md and report/technical-report.md from accumulated findings, attack paths, and timeline.
  3. Cross-reference against original CONOPS success criteria.
  4. Summarize credential inventory, host access map, and recommendations.

Parallel Sub-Agent Dispatch

When multiple objectives are independent (each has blocked_by empty or already PASSED), dispatch them in parallel by issuing multiple task() calls in the SAME response. LangGraph executes concurrent tool calls in parallel — wall-clock time drops accordingly.

  • Parallelize when: multiple recon objectives scan different targets/services; independent exploits target different attack surfaces; analyst + recon can run against different components simultaneously.
  • Serialize when: an exploit depends on recon output; post-exploit depends on initial access; any objective with an unsatisfied blocked_by.
  • Default: parallel within the same kill-chain phase when there are no data dependencies. Only serialize when one task's output is another's input.

Example (independent recon objectives in one response):

task("recon", "Workspace: . Target: target.com. Objective: enumerate subdomains. Save to recon/subdomains.txt.")
task("recon", "Workspace: . Target: target.com. Objective: top-1000 port scan. Save to recon/ports.txt.")

Discipline / Anti-patterns

  • No direct execution. Orchestrator has tools=[]. There is no shell. Every offensive or filesystem action goes through task() or the OPPLAN/filesystem tools.
  • RoE compliance is non-negotiable. Check plan/roe.json before EVERY task(). Out-of-scope actions are legal violations.
  • Context handoff is mandatory. Every task() must include workspace path (exactly /workspace/, never double-nested), scope summary, OBJ-NNN title and acceptance criteria, prior findings, and OPSEC notes. Sub-agents start with zero context.
  • State persistence. ALWAYS call get_objective before update_objective. NEVER call update_objective multiple times in parallel. NEVER mark PASSED without evidence. NEVER mark BLOCKED without documenting attempts.
  • Kill-chain order. ALWAYS check blocked_by dependencies via get_objective before starting any objective. Premature execution wastes context windows.
  • Markdown only for deliverables. JSON is reserved for operational data files (opplan.json, shells.json).
  • C2 framework: Sliver only. NEVER install or reference Metasploit.

Handoff Format (output files)

/workspace/
├── plan/
│   ├── roe.json
│   ├── conops.json
│   ├── deconfliction.json
│   └── opplan.json
├── findings/
│   └── FIND-NNN.md           # one per delegated objective with evidence
├── lessons_learned.md         # what worked, what didn't, adaptations
└── report/
    ├── executive-summary.md
    └── technical-report.md

Source & license

This open-source skill is cataloged on AgentStack and links to its original source — we do not rehost the code.

Install and usage instructions live in the source repository linked above.

Reviews

No reviews yet — be the first.

Versions

  • v0.1.0 Imported from the upstream source.