Flisk candidate test: four labs
Product: flisk.sh ยท Repository: github.com/flisk-sh/flisk
What this is
You do four labs in order. Each lab ends with evidence (a command output, a log, a screenshot or a link). Then you add one short go-to-market note. Then we interview you, using the evidence as the map. Plan for 4 to 6 hours in total. You may use any AI coding tool; tell us which and how.
The role is about making Flisk useful to developers and AI agents. So we do not ask for trivia: we ask you to use the product the way our users do, and to notice what hurts.
Before you start
- A laptop with Docker (Docker Desktop or Colima). Keep about 20 GB of disk free.
- Node 18+ or Bun, and Git.
- A public GitHub repository for your work. Star flisk-sh/flisk.
- Keep a
LOG.mdin that repository. Write what you tried, what failed, how long it took. Honest failures score higher than a clean story.
Lab 1: First five minutes
Goal: feel what a new user feels. This is the most important lab: the demo is the first thing a new user runs.
Do
npx @flisk-sh/flisk demo
- Run the demo. Note how long until you see something working, and every moment of doubt.
- Run it a second time. The second run meets the first run's data and volumes.
- Stop Docker and run it again. The demo should fall back to running the two-service app as plain local processes.
Evidence
- Timings for run 1, run 2 and the no-Docker run, in
LOG.md. - Three things that confused you, each with a one-line fix you would make.
We check
Can you observe a product honestly? Do you separate "I made a mistake" from "the product misled me"?
Lab 2: Build a small system
Goal: create a multi-service system with Flisk, without hand-writing container files.
Do
flisk project agent-stack # a starter with tools, a database and messaging flisk resource my-api --type backend flisk up flisk status --json
- Scaffold the agent stack. Add one extra resource of your own (type
backend,worker,agentormcp) that does something small but real. - Bring everything up and show that your new resource talks to another one.
- If you need a database schema, use a separate migrator resource (
appType: migrator), not your API's start script.
Rules
- Do not hand-write container manifests and do not edit generated folders such as
.flisk/. Changeservice.jsonor the templates instead. - Do not commit secrets or
.envfiles.
Evidence
- Your repository, with a README that lets a stranger run it in under ten minutes.
- The output of
flisk status --jsonwith everything healthy.
We check
Can you build something that works, and explain it to someone who has never seen it?
Lab 3: Break it, then fix it
Goal: debugging is most of the job. Show that you can find a fault using the tools Flisk gives you.
Do
flisk doctor --json # environment and service checks flisk config verify --json # are the generated files consistent? flisk logs # what the services say flisk restart my-api
- Break your system in three different ways. For example: a wrong port, a service that depends on one that is not up yet, and a missing environment variable.
- For each: show the symptom, find it with
doctor,config verifyorlogs, and fix it. - Write down which tool pointed at the cause fastest, and which message was unclear or wrong.
Evidence
- A table in
LOG.md: fault, symptom, command that found it, fix, minutes spent. - At least one error message you think Flisk should say better, with your proposed wording.
We check
Do you reason from evidence? Do you know the difference between an environment problem (doctor) and a generated-files problem (config verify)?
Lab 4: Make Flisk stronger
Goal: ship one improvement, or a clear plan for one. Pick one option.
Option A: Feature proposal and prototype
Propose one feature or fix that helps AI agents or developers. Give: why it matters, how it works (user experience and technical), acceptance criteria. Build a prototype, or a detailed design with code or pseudocode.
Option B: Integration
Connect Flisk to one AI or developer tool (for example Claude Code, Cursor, Windsurf, Continue, Aider) through the MCP server:
{ "command": "flisk", "args": ["mcp"] }
Show an agent starting the stack, checking status and restarting a service on its own. Record what worked and what the agent got wrong.
Option C: Companion tool
A small separate tool, agent or CLI wrapper that uses Flisk and adds value on top.
Evidence
- A pull request to flisk-sh/flisk is best. A fork or your own repository is fine.
- Tests for whatever you change. A change without a test is not finished.
- Commits signed off (
git commit -s).
We check
Does the idea fit what Flisk is (a fast local inner loop, not a production cluster tool)? Is it small enough to merge, and clear enough to review?
Go-to-market note
One page, in the README or a separate file. Answer in your own words:
- How would you win the first 100 to 500 real users?
- Which three AI or developer products should Flisk integrate with first, and why those?
- One concrete step we could take this week.
How to send it
- A public GitHub repository link, with a README covering: what it is, how it relates to Flisk, how to run it, and links to flisk.sh and the official repository.
- Send the link by LinkedIn or email.
The interview: Zachman framework
We walk through your labs using the Zachman framework: six questions (what, how, where, who, when, why) across six viewpoints (from planner to user). We pick 8 to 10 cells, not all 36. Each answer is scored 0 (nothing), 1 (general words), 2 (specific), 3 (specific, with proof such as code, a number or a link).
| What (things, data) | How (process) | Where (place, network) | Who (people, roles) | When (time, events) | Why (purpose) | |
|---|---|---|---|---|---|---|
| 1. Planner scope |
What is Flisk in one sentence? What does it not do? | Which developer job does it replace? | Where does it run: laptop, Docker, cloud? | Who is the main user: a person or an AI agent? | Which moment in development hurts most? | Why would anyone adopt one more tool? |
| 2. Owner business |
What should a user have after five minutes? | How does the product create value? | Where do the first users hang out? | Who recommends it, who blocks it? | What must happen in the first 30 days? | What is the one success metric? |
| 3. Designer system |
Which entities are in your lab (service.json, resource, stack)? | Describe the flow from command to result. | Where is the line between Flisk and Docker or Tilt? | Which roles: developer, agent, CI? | What starts first, what waits? | Which design principle sits behind your change? |
| 4. Builder technology |
What data format and schema did you use? | Which modules or commands did you add? | Which files in the repository did you touch? | Who calls it: the CLI, MCP, a UI? | What are the retries and timeouts? | Which trade-off did you choose, and why? |
| 5. Implementer detail |
Show the code or config. | How is it tested? What runs in CI? | How do I run it from zero on a clean machine? | Who maintains it after you? | What breaks on a second run? | Which acceptance criterion did you pass? |
| 6. User working system |
What does the user see on screen? | How many steps to success? | Where will they get stuck, and will the error help? | Who will they tell about it? | How many minutes until they feel the value? | Why would they come back tomorrow? |
Reading the grid: an empty "Who" column usually means nobody else ever tried the feature. An empty "Where" or "When" column usually means it only worked once, on one machine.
Scoring
| Level | What we see |
|---|---|
| Strong | All four labs have evidence. Lab 1 and Lab 3 are honest and specific. Lab 4 is a real pull request or working prototype with tests. Scores of 2 or 3 in viewpoints 3 to 5, and in viewpoints 1, 2 and 6 the candidate talks about people and one metric, not only code. The go-to-market note has a concrete step. |
| Medium | Good ideas and a clear write-up, but weak build (low scores in rows 4 and 5) or a build without understanding of the product (low scores in rows 1 and 2). |
| Weak | General phrases, labs skipped or not run, no evidence, no link to what Flisk really does. |
We value honesty over polish. A failed lab with a clear diagnosis beats a perfect lab nobody can reproduce.