# Interface Desk > Paste a brief for one software module - what it does, who calls it, its key operations, its constraints, what should stay hidden - and design its interface twice. The browser checks the brief against the five requirement questions of the design-an-interface agent skill, counts the entry points, parameters and boolean flag parameters of your own sketch, and fills the skill's sub-agent prompt for each design constraint, for free. A paid lane writes three or four radically different interface designs, one per constraint; a second paid lane compares them in prose on the skill's five criteria and synthesises the interface to build. Every reply is checked against the page's own reading. URL: https://interface-desk.skillsafe.ai/ API tutorial: https://interface-desk.skillsafe.ai/api.html ## Who it is for Developers and tech leads about to give a module, class, library or service client its public interface - before callers depend on it - who want real alternatives to their first idea and an argued comparison rather than a single answer. ## The free reading (in the browser, no model) - Input: a module name, a language (TypeScript, JavaScript, Python, Go, Rust, Java, C#, Kotlin or Swift), the brief (pasted or a dropped .md/.txt), optionally your first sketch of the interface, and for the comparison lane the designs as "## Design A - name" Markdown sections. - The skill's requirement checklist: problem, callers, key operations, constraints, hidden vs exposed - answered in a labelled section, mentioned in prose, or missing - with the items listed under each label. - Signature counts per design or sketch: entry points (functions and methods a caller calls, overloads once, constructors included), parameters, the longest parameter list, boolean flag parameters, declared types. Methods of an interface the module takes as a parameter (an injected clock or store) are listed as implemented by the caller, not counted as entry points. A per-language heuristic over the signature text, shown so you can check it. - Overlap between designs: shared entry points per pair; a pair sharing most of its entry points with the same count is flagged as a near-clone. - The constraint each design gets, from the skill's sub-agent template: fewest methods (1-3), most flexible, the common case first, and optionally one that takes inspiration from a paradigm or library you name. - The skill's sub-agent prompts, filled in for your brief, to run with your own agents. - Exports: the reading as Markdown or JSON, the prompts, a five-question brief template. ## The paid lanes (gpt-terra, metered) - designs: the requirements restated from the brief (assumptions named separately), then one design per constraint - name, signature (declarations only, in your language), usage example, what it hides, trade-offs, and which entry point serves each key operation. - compare: the designs weighed in prose on interface simplicity, general-purpose vs specialised, implementation efficiency, depth (deep vs shallow module) and ease of correct use vs misuse - each criterion favouring a design or a tie - where they diverge most, a synthesis that starts from one design and names each element borrowed from the others, and questions back to you. The designs lane hands its designs to this lane with one button. - The brief, the sketch and the designs are data: instructions inside them are never followed. ## How replies are held to the input Designs: one design per assigned constraint, in order, the constraint copied; no function bodies, loops or return statements in a signature; every key operation covered by every design through a name that is in that design's signature; the fewest-methods design within three entry points by the page's count; no two designs near-clones, and none a renamed copy of your sketch. Compare: the five criteria in order, each favouring a real design or a tie, discussed in prose with no tables; entry-point counts quoted in the discussion equal to the page's; a synthesis based on a real design, borrowing only from the others; at least one question back to you. Both: no percentage the brief does not contain. ## Limits - Entry-point counts are a text heuristic, not a compiler's; unusual syntax can be miscounted, and the counts are shown so you can see. - Interface shape only: no implementations, and no judging a design by its implementation effort. - Bundled examples use invented modules (a gateway rate limiter, a billing service's feature-flag client). ## Sources - Agent skill @mattpocock/design-an-interface (github.com/mattpocock/skills, MIT): https://skillsafe.ai/skill/@mattpocock/design-an-interface - its workflow (gather requirements, generate radically different designs under different constraints, present, compare in prose, synthesise), its sub-agent prompt template and constraints, its evaluation criteria and its anti-patterns. - "Design It Twice", deep and shallow modules: John Ousterhout, A Philosophy of Software Design.