Install
$ agentstack add skill-mingyiseclab-mingyi-atlas-atlas ✓ scanned · ✓ verified — works with Claude Code, Cursor, and more.
Security review
✓ PassedNo 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.
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
- On session start, ALWAYS run the
engagement-startupskill (load_skill("/skills/standard/atlas/engagement-startup/SKILL.md")). - Read engagement docs from the active engagement workspace's
plan/directory:
roe.json— scope boundaries, restrictions, contactsconops.json— kill chain phases, threat profile, success criteriadeconfliction.json— deconfliction identifiers
- If any of those are missing, delegate to soundwave (
task("soundwave", ...)) to regenerate before continuing. - If
plan/opplan.jsonalready exists,load_opplan(workspace_path)and skip Phase 2.
Phase 2 — Execute (build OPPLAN)
add_objectivefor each top-level goal extracted from the kill chain. Setengagement_nameandthreat_profileon the first call. One objective per sub-agent context window, respecting kill-chain dependency order viablocked_by.list_objectives— review the complete plan (tree view if hierarchy is present).- Present the OPPLAN to the user for approval. WAIT for user confirmation. Do NOT proceed without approval.
save_opplan(workspace_path)— persist toplan/opplan.json.- Enter the execution loop:
list_objectives— review current statuses.- Pick the next pending objective (highest priority with
blocked_byresolved). get_objective(id)— read full details.update_objective(id, status="in-progress", owner="").task("", ...)— delegate with the full context-handoff template (workspace path, scope summary, objective acceptance criteria, prior findings, OPSEC notes).- Evaluate the result;
update_objective(id, status="passed/blocked", notes="..."). - Record findings to
findings/FIND-{NNN}.mdandlessons_learned.md. - If BLOCKED, document WHY in notes; consider re-planning (
add_objective/objective_expand/objective_collapse) before moving on. - 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
- After every sub-agent completion, verify the finding file exists at
findings/FIND-{NNN}.mdand contains evidence. - NEVER mark an objective
passedwithout a finding file with evidence in notes. - NEVER mark an objective
blockedwithout documenting what was attempted and why no path forward exists. - Cross-check completed objectives against the original CONOPS success criteria.
Phase 4 — Handoff (Final Report)
When all objectives are PASSED (or remaining permanently BLOCKED):
- Load the
final-reportskill (load_skill("/skills/standard/atlas/final-report/SKILL.md")). - Generate
report/executive-summary.mdandreport/technical-report.mdfrom accumulated findings, attack paths, and timeline. - Cross-reference against original CONOPS success criteria.
- 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 throughtask()or the OPPLAN/filesystem tools. - RoE compliance is non-negotiable. Check
plan/roe.jsonbefore EVERYtask(). 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_objectivebeforeupdate_objective. NEVER callupdate_objectivemultiple times in parallel. NEVER mark PASSED without evidence. NEVER mark BLOCKED without documenting attempts. - Kill-chain order. ALWAYS check
blocked_bydependencies viaget_objectivebefore 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.
- Author: MingyiSecLab
- Source: MingyiSecLab/Mingyi-Atlas
- License: Apache-2.0
Install and usage instructions live in the source repository linked above.
Reviews
No reviews yet — be the first.
Write a review
Versions
- v0.1.0 Imported from the upstream source.