ankos remediate
Turn scan findings into prioritized remediation guidance — a sprint-based plan with effort estimates, or CSV/Markdown/JSON tasks you can import into Jira, Linear, GitHub, or your tracker.
ankos remediate reads an evidence directory produced by
ankos scan, analyzes the findings, and
emits remediation guidance in several formats. Use it to drive a
sprint of work, hand a prioritized list to someone unfamiliar with the
underlying AWS services, or export the work as tickets for your own
tracker — all free and local.
Ankos is read-only and prepares evidence — it does not fix
infrastructure. remediate outputs plain-English guidance and
planning only; it never generates apply-able fixes or runnable mutating
commands. Your team reviews and applies changes through your normal
change-management process.
Synopsis
ankos remediate <evidence-dir> [flags]Quick start
# Per-finding plain-English guidance (default)
ankos remediate ./ankos-evidence-20260526-153045
# Sprint-based plan with effort estimates for a team of 3 on 2-week sprints
ankos remediate ./evidence --format plan --team-size 3 --sprint-weeks 2
# Same, but anchored to a specific target audit date
ankos remediate ./evidence --format plan --target-date 2026-09-15
# Export the task list for your own tracker (Jira / Linear / GitHub / …)
ankos remediate ./evidence --format csv -o tasks.csvFlags
Format + output
| Flag | Default | Description |
|---|---|---|
--format | cli | Output format: cli, plan, csv, markdown, or json. |
--output / -o | (stdout) | Output file for csv / markdown / json export. |
Filtering
| Flag | Default | Description |
|---|---|---|
--severity | (all) | Filter to one or more severities: comma-separated critical,high,medium,low. |
--ignore-file | .ankosignore | Path to accepted-findings file (excludes accepted findings). |
--scope-file | .ankosscope | Path to scope definition (excludes out-of-scope findings). |
Plan-format specific
| Flag | Default | Description |
|---|---|---|
--sprint-weeks | 2 | Length of each sprint, in weeks. |
--team-size | 1 | Number of team members available to do the work. |
--target-date | (none) | Target audit date YYYY-MM-DD. When set, the plan back-schedules from this date and flags slippage risk if there isn't enough time. |
Misc
| Flag | Default | Description |
|---|---|---|
--dry-run | false | Show what would be generated without writing any files. |
--seed-ledger | false | Push the plan's tasks onto matching Ledger entries as checklist items (Team and above; needs an API key). |
Output formats
cli (default)
Per-finding plain-English guidance — what needs attention and why it matters for evidence — grouped by area, severity-prioritized, with PCI requirement mapping inline. The guidance describes the change to make; your team applies it through its own process. No runnable commands are emitted.
Example output (abbreviated):
═══════════════════════════════════════════════════════════════
Ankos PCI DSS — Remediation Guidance
═══════════════════════════════════════════════════════════════
S3 Bucket Encryption (1 finding(s))
[HIGH] S3 buckets encrypted at rest
1 bucket(s) without encryption
Suggestion: Enable default SSE-KMS encryption on the affected
buckets so objects are encrypted at rest.
Access Logging (1 finding(s))
[MEDIUM] S3 buckets have server access logging
0/2 bucket(s) have access logging enabled
Suggestion: Enable server access logging to track access requests.This format prints to stdout by default. Pipe to less or redirect to
a file for review.
plan
A sprint-by-sprint remediation roadmap with effort estimates, dependencies, and an explicit owner column ready for assignment. Sized to your team:
ankos remediate ./evidence --format plan \
--team-size 3 --sprint-weeks 2 --target-date 2026-09-15Plan output groups findings by:
- Severity — critical/high first
- Effort estimate — small (under 1 day), medium (1-3 days), large (1 week+)
- Dependencies — if a fix depends on another fix, they're sequenced
When --target-date is set, the plan back-schedules from that date. If
there's not enough capacity (team size × weeks × sprint count) to cover
the critical+high findings before the date, the plan flags the gap
explicitly so you can argue for more headcount or a date slip.
csv, markdown, json — export to your tracker
The same task list as plan, rendered for import into wherever your team
already tracks work. No account, no upload — fully local and free.
# CSV — import into Jira, Linear, Asana, monday, or a spreadsheet
ankos remediate ./evidence --format csv -o tasks.csv
# Markdown checklist — paste into a GitHub/GitLab issue, Notion, or a doc
ankos remediate ./evidence --format markdown -o tasks.md
# JSON — the full plan for scripts and pipelines
ankos remediate ./evidence --format json -o plan.jsonThe CSV has one row per task with Summary, Description (the guidance
plus the QSA "why"), Priority (mapped to Highest/High/Medium/Low),
Issue Type, Labels, PCI Requirement, Estimate (hours), and
Sprint — column names most importers recognize, with mapping on import
for the rest. The four manual policy items (incident response, security
policy, training, vendor assessments) come through under a Manual
sprint so they aren't lost.
These exports are stateless by design: the CLI never tracks "done." Your tracker owns assignment and completion; re-run a scan and the items you've fixed simply drop off the next export.
--seed-ledger — push tasks onto your Ankos Ledger (Team)
On the Team plan and above, skip the export/import round-trip: push the plan's tasks straight onto the matching entries of your active Ledger cycle as checklist items.
ankos remediate ./evidence --seed-ledgerEach task is matched to the ledger entries for its PCI requirement and added as a checklist item (carrying its severity and effort estimate). The command reports exactly what landed — including any tasks it couldn't map to an entry, so nothing is silently dropped:
✓ Seeded 23 task(s) into cycle 2026-Q2 as checklist items (4 already there).
⚠ 2 task(s) didn't map to a ledger entry, so they weren't seeded:
• Rotate exposed access key (PCI 8.3.1)
• Document key-management procedures (PCI 3.6)
These are usually findings outside your current cycle's scope.Like the file exports, seeding is stateless and idempotent: the CLI never marks tasks done. Re-scan and re-run to refresh — items already present are left untouched (including ones your team has checked off), and findings you've fixed simply stop being added. Completion lives in the Ledger.
Requires an API key (ankos auth set-key) and an active paid plan (Team or
above), plus an active assessment cycle to seed into. Free users get the same plan via
--format csv.
Already uploading with scan --upload? Add
--seed-ledger there (or run ankos config seed-on-upload on once) to seed
the ledger in the same step — no separate remediate run needed.
Filtering with --severity
For a focused remediation sprint, filter to just critical + high:
ankos remediate ./evidence --severity critical,high --format planThe plan format respects severity filtering so you can produce a "30-day plan" (criticals only), a "quarter plan" (criticals + highs), and a "full backlog" with the same evidence directory.
Pairing with --ignore-file and --scope-file
.ankosignore— accepted findings are excluded from remediation output. If you've reviewed and risk-accepted a finding, it shouldn't re-appear as work to do..ankosscope— out-of-scope resources are excluded. Remediation effort focuses on the CDE; out-of-scope items are someone else's problem (or yours, but not for PCI reasons).
Exit codes
| Code | Meaning |
|---|---|
0 | Remediation guidance generated successfully |
1 | Could not read evidence, scope, or ignore files |
remediate doesn't have a CI gate equivalent to report --fail-on —
the intent here is generating remediation guidance and a plan, not
blocking builds. Pair it with ankos report for the gating side.
ankos docs
Generate Word policy documents pre-filled with your AWS infrastructure data. All 10 templates are free — encryption, access control, logging, vulnerability management, incident response, and more.
Collectors
List of evidence collectors, what each one pulls, and which PCI DSS requirements they map to.

