Interview question bank (per view)
Generated Markdown for references/fact_interview_question_bank.md.
Open book page Back to the skill graph
# Interview question bank (per view)
The questions the design interview asks, in interview order. Each answer becomes the block in its \*maps to\* column immediately — write, `wcl check`, then move on. Optional rows are asked only when relevant. (These are data — `interview_q` blocks — so tooling can walk them.)
## Overview / decisions
| Question | Maps to | |
| --- | --- | --- |
| What is the system, in one sentence — and what business problem makes it worth building? | `wad.summary / wad.description` | |
| How will you know it succeeded? (measurable criteria if possible) | `wad.description / article :overview` | |
| Rank the qualities that matter: performance, availability, security, cost, time-to-market. | `article :overview (drives later trade-off ADRs)` | |
| What is already fixed — mandated stack, compliance regime, budget, deadline, existing contracts? | `adr (one per constraint that forecloses options)` | |
| What decisions have already been made, and why? | `adr (status :accepted, dated)` | |
| Who funds it, who approves changes, who builds it, who operates it, who gets paged? | `stakeholder + raci_entry rows per activity` | |
## Personas
| Question | Maps to | |
| --- | --- | --- |
| Who USES the system — every distinct kind of user, including service accounts and AI agents that consume it? (Not the people who build or operate it — those are view-1 stakeholders.) | `persona (kind :human / :service / :ai_agent); builders/operators → stakeholder` | |
| For each persona: what are they trying to get done? What volume of them do you expect? | `persona.goals / persona.body` | |
| What SECURITY CONTROL gates each persona's access — SSO, approved signup, admin invite — and who approves? (Freely installing the software is not access control: no control means no access_grant blocks at all.) | `persona access_grant (method, approver) — or nothing` | |
| For each persona: what are the typical things they do with the system, end to end? Pick a selection broad enough to exercise most of their usage — each becomes a step-by-step flow (and doubles as a user-acceptance test). | `use_case (steps, from -> to flow, preconditions, outcome)` | |
## System context
| Question | Maps to | |
| --- | --- | --- |
| Which systems make up the solution — the boxes an outsider would see — with one line each? | `system` | |
| Which third-party systems does it integrate with to do its job (identity, payments, data feeds, notifications…)? Where it is hosted/built comes later, in infrastructure. | `external_system (stub) + relation; hosting/CI/CDN → infra_node (view 5)` | |
| For each connection: which direction, what protocol, what data crosses, sync or async? | `relation (kind, protocol, data)` | |
| Which persona uses which system/container? | `relation (persona → container, kind :uses)` | |
## External systems
| Question | Maps to | |
| --- | --- | --- |
| Per external system: who owns/runs it (vendor, team), and how critical is an outage to you? | `external_system.vendor / .criticality` | |
| Who do you call when it breaks — support contact and escalation path? | `support_contact` | |
| Connection details per environment: URLs, IPs, queue names, auth method? | `endpoint (kind url/ip/config)` | |
| Where do the API docs / OpenAPI specs / integration references live? | `api_ref` | |
| What data classification crosses the boundary, and where do the secrets live? | `security_note` | |
## Systems (C4)
| Question | Maps to | |
| --- | --- | --- |
| Per system: what are the independently deployable/runnable units — services, databases, web apps, CLIs, queues, batch jobs — with runtime/language for each? | `container (kind, technology)` | |
| Inside each significant container: what are the major parts and their responsibilities? | `component` | |
| Is any public interface fixed up front — a DB schema, an API contract, a key protocol? (Code items are otherwise extractor territory once code exists.) | `code_item (:db_schema / :api)` | _optional_ |
| For each user-facing container: every screen/page, what is on it, and how the screens flow into each other. Spec them out completely — wireframe each one. | `screen (wireframe body, nav_to)` | |
| For each CLI container: every command and subcommand, its arguments/flags, and what it prints — mock the important outputs. | `screen per command (route = the invocation, terminal body)` | |
| For each TUI container: every screen/panel, its widgets, and the navigation between them — mock each with terminal/TUI blocks. | `screen per panel (terminal/tui body, nav_to)` | |
## Domain
| Question | Maps to | |
| --- | --- | --- |
| What are the business objects in this system — the nouns the business itself uses when talking about it? | `domain_object` | |
| Per object: which fields matter, and how do objects relate (one-to-many, references)? | `field + domain_rel children` | |
| What invariants or lifecycle rules must always hold? | `domain_object.body / standard (kind :business)` | |
| Which terms does the team use that an outsider would misread? | `term` | |
## Infrastructure
| Question | Maps to | |
| --- | --- | --- |
| Which environments exist (local, CI, dev, staging, prod, DR) and in what promotion order? | `environment (order, promotes_to)` | |
| Where does each container run per environment — cloud/k8s/VMs/serverless/SaaS — and what is shared between environments? | `infra_node (parent nesting, environments) + deploy_target` | |
| What are the availability/scaling arrangements, and what gets backed up, how? | `infra_node.notes / article :infrastructure` | _optional_ |
## Build & deploy
| Question | Maps to | |
| --- | --- | --- |
| One repo or many? What lives where inside them? | `repository (+ repo_path rows)` | |
| What CI runs on a change, in what stages, and what gates promotion to each environment? Who approves? | `pipeline (+ stages: gates, next, environment)` | |
| How are versions numbered, where are artifacts stored, and what shipped in past releases? (Releases are extractor territory — git tags / the platform's releases API.) | `release (via an extractor) + pipeline.body / article :build_deploy` | |
| How does a new developer get from clone to running tests? | `sop (kind :dev) or repository.body` | |
## Documentation
| Question | Maps to | |
| --- | --- | --- |
| What will the project publish to be read — docs site, rendered book, agent skill, README — and for each: where is the source authored, what builds it, where is it hosted, and which personas is it for? | `doc_item (source, built_by, hosted_on, url, audience)` | |
## System admin
| Question | Maps to | |
| --- | --- | --- |
| What routine operations exist — deploys, secret rotation, restores, user admin? | `sop (kind :operations / :runbook)` | |
| What happens when it breaks at 3am — alerting destination, incident steps, escalation? | `sop (kind :incident)` | |
| How are changes approved and rolled back? | `sop (kind :change)` | |
## Standards & rules
| Question | Maps to | |
| --- | --- | --- |
| What coding/style standards apply, and what enforces each (CI, linter, review)? | `standard (kind :coding / :style) + rule (enforced_by)` | |
| Which business or regulatory rules constrain behaviour (retention, audit, licensing)? | `standard (kind :business / :security)` | |
## Related
- [Design a new system (the interview)](../references/process_designing_new_system.md)
- [Codebase scan checklist (per view)](../references/fact_scan_checklist.md)
[← Back to SKILL.md](../SKILL.md)