Skip to main content
Sky HaliskyAI Builder

SkyPi Studio

Skip intro
Sky Halisky

Sky Halisky

Building accessible, AI-native product. Open to thoughtful product collaborations.

Portfolio — 2026

An accessibility map. A multi-agent system. A web-based prompt library.

Five projects built, all five on the open web. One heading to the App Store. Accessibility first, built for everyone.

2,900+

tests passing — Flagstone

reported method

0

axe violations — 17 routes × 2 themes, strict rules

measured evidence

V

calibration round, open — 11 phases · 10 shipped · 1 held

reportedthe record

Featured — the flagship

Flagstone

SEVERITY 4 · VERIFIED

No ramp at the corner — wheelchair users have to detour.

DOWNTOWN KELOWNA, BRITISH COLUMBIA

Status Pre-launch — App Store submission in progress

Read the case study
Flagstone's full map — severity-coloured barrier pins over street tiles of downtown Kelowna, a nearest-barrier banner up top and rounded zoom controls at the edge.
Flagstone's full map — severity-coloured barrier pins over street tiles of downtown Kelowna, a nearest-barrier banner up top and rounded zoom controls at the edge.

Real capture · map-overview · captured

The Work

A handful of things, made with intention.

  1. Flagstone

    Mobile app for flagging accessibility barriers — broken ramps, missing tactile paths — pinned to a real city map. Privacy-first: no tracking, no data sold.

  2. Claude Corp

    A 15-role AI team governed by a written Constitution. Each agent owns a domain; an orchestrator runs the cycles. The infrastructure behind this portfolio.

    In active use — my own system, no outside users

    15 AI agents

  3. Claude Corp Dashboard

    A live command center for an AI agent team — agent feed, decision queue, blocker board, health scores. Fully drivable demo running on synthetic data.

    Live demo — synthetic data

  4. Prompt Library

    Local-first AI prompt manager. Your prompts, your API key, your browser — zero cloud, instant runs.

    Live — public, no backend

    100% static

  5. Ghost Code

    Retro arcade trainer for CLI commands — guide the Phantom, capture the right token. 56 cards, vanilla JS, zero dependencies, runs in any browser.

    Live — public, no backend

    56 command cards

The Record

The last thing I got wrong is in here too.

  • Round VThe Room — 11 phases · 10 shipped · 1 held · axe 0 violations · 34 scans · the recordopen
  • Last defectthe dead Report button — found by a simulator walk, fixed by one moved closing tag, re-proven by a test that fails against the old arrangement · the accountclosed
  • 2.2 AAthe bar I build to — pixel-contrast at the measured coordinates · the statement
  • 100%focus stops visible — every tab stop, keyboard-traced · evidence

How the work gets made

I direct AI agents, and I built the system that keeps them honest.

The projects above were implemented by AI agents working inside a governance system I designed: fifteen roles with explicit domain boundaries, and a written constitution that outranks any individual role or prompt. The agents do the implementation, the tests, and most of the diagnosis. I set the problem, make the architectural calls, and gate what lands.

The constraints are what make the output reviewable. Database migrations are files with a rollback, never applied changes — no agent has written to a production database. None handles credentials, and none sends anything outside the repository. Exactly one of the fifteen may message me; the rest write to files I read on my own schedule. Merges to main are mine, with one narrow gated exception I granted to a single project.

Here is the system working. An agent fixing something unrelated added two background-location permission strings to app.json. The privacy role blocked it: the app uses no background-location APIs, so declaring them would invite an App Store 5.1.1 rejection and ask for a permission the product does not need. Both keys were removed; neither reached main.

And here is what it hands back. A review found that anonymous reports skipped a content filter that signed-in reports run. It was written up and deliberately left unpatched, because deciding what to filter on a submit form is a moderation policy, not a bug fix. It waited for me instead of being quietly patched, and the filter runs on both paths now.

The honest limit: these fences are prompt-level, not sandbox-level. It is one persons system, tested across one persons projects, and some of the governance overhead does not pay for itself.

A Brief Account

The work is careful. The record is honest.

One careful deliverable beats a dozen rough ones.

Most of what I make starts with a problem worth solving. I prefer small, exact software to large, approximate software. I work from Canada, mostly on AI tooling, accessibility infrastructure, and the systems that make a product feel calm.

I keep a written record of how each thing was made. The documentation is part of the deliverable, not an afterthought.

The full account

Credentials, earned in order — 9 of them, with issuers and dates. See the credential badges

Let’s talk

Have something worth building?
Let’s talk about it.