playbook/outfitter-agents/plugins/outfitter-stack/skills/stack-audit/templates/plan/99-unknowns.md

2.4 KiB

Stage 99: Unknowns

Status: Review Required Blocked By: None Unlocks: None (review throughout migration)

Objective

Track items the scanner couldn't categorize or that need human judgment.

Review Priority

Priority Meaning
🔴 High Blocks other work, needs immediate decision
🟡 Medium Should resolve before Documents stage
🟢 Low Can defer or skip with documentation

Unknowns

{{#each UNKNOWNS}}

{{this.id}}: {{this.title}}

  • File: {{this.file}}:{{this.line}}
  • Priority: {{this.priority}}
  • Category: {{this.category}}

Context

{{this.code}}

Why Unknown

{{this.reason}}

Options

{{#each this.options}} {{@index}}. {{this}} {{/each}}

Decision

  • Reviewed
  • Decision: _____________
  • Implemented

{{/each}}

Common Unknown Categories

Third-Party Libraries That Throw

Libraries that throw exceptions need wrapper decisions:

// Option 1: Wrap at call site
const result = await wrapAsync(() => thirdPartyLib.doThing());

// Option 2: Create typed wrapper
const safeDoThing = wrapThirdParty(thirdPartyLib.doThing);

Complex Try/Catch Blocks

Nested or multi-catch blocks that can't be auto-converted:

// May need manual restructuring
try {
  await step1();
  await step2();
} catch (e) {
  if (e instanceof TypeA) { ... }
  else if (e instanceof TypeB) { ... }
  else { throw e; }
}

Async Patterns

Unusual async patterns (Promise.race, Promise.allSettled with throws):

// May need Result-aware alternatives
const results = await Promise.all(items.map(processItem));

Domain-Specific Errors

Errors that don't map cleanly to taxonomy:

  • Consider if they're really ValidationError with metadata
  • Consider if they're InternalError with descriptive message
  • Consider creating domain error extending OutfitterError

Resolution Log

ID Decision Rationale Date

Stack Feedback

Issues discovered that should be reported to outfitter-dev/outfitter:

{{#each STACK_FEEDBACK}}

  • {{this.title}} — {{this.type}} {{/each}}

Use outfitter-stack:stack-feedback skill to create GitHub issues.

Completion Checklist

  • All unknowns reviewed
  • Decisions documented
  • High-priority items resolved
  • Stack feedback reported
  • Remaining items documented for future

Notes

{{UNKNOWN_NOTES}}