← Back to Séance Stock

How Kiro
Conjured This

Deep dive into Kiro's AI capabilities

🧠 Build Story

How We Drove The AI

We treated the model like a paired senior dev: gave it a role (“Apple engineer + security reviewer”), a Definition of Done (file tree, commands, verification list), and hard guardrails (Next.js App Router + TS, no new deps unless justified, never invent GitHub fields).

Real Prompts, Real Constraints

  • Phased flow: Plan → validate → implement. No code until the plan cleared edge cases (token missing, rate limits, forks-only).
  • Interfaces first: Defined `RepoData`/`AnalyzedRepo` and score math before touching UI.
  • Strict output shape: Asked for diffs and explicit headings to keep merges tight.
  • Assumptions capped: Max 6 assumptions + 2 clarifying questions; otherwise proceed.
  • Self-review: Every change ended with “check error states + accessibility” before moving on.

Project-Specific Wins

GitHub resilience
// lib/github.ts
if (!GITHUB_TOKEN) {
  return getDemoRepos('demo'); // no-token path
}
// graceful fallback on 401/403/429
return getDemoRepos('fallback');

We enforced “no token? show demo data” to keep the hackathon demo unbreakable.

Analysis engine
const analyzed = repos.map(analyzeRepo);
analyzed.sort((a, b) => b.revivalPotential - a.revivalPotential);

We tuned generateResurrectionPlan() to branch on language, project type, forks, and abandonment age.

UI truth to data
// components/RepoCard.tsx
{repo.fork && <Badge>Fork</Badge>}
{repo.source !== 'live' && <Badge>Demo data</Badge>}

Badges make fork/demo context explicit so judges see why a repo scored the way it did.

Scenarios We Tested

  • Missing token → demo banner + curated results; no errors.
  • GitHub rate limit/401 → silent fallback to demo seed.
  • Forks-only toggle → query adds/removes fork:false; badge shows when active.
  • Hero image missing → onError hides the image, keeps layout intact.
  • Plan reveal → animation tested in light theme; buttons copy/export/Kiro prompt all work.
⏱️
10 focused
Sessions
💬
160+ iterative
Prompts
🛡️
5 constraints
Guardrails
📁
Specs + polish
Artifacts