Architecture Research
Understand how real systems work before committing to a technical direction.
Produce a decision artifact backed by inspectable evidence, not a feature table,
vendor narrative, or speculative target architecture.
Read both references before completing decision-grade work:
- Architecture lenses explains how to
inspect ownership, authority, wiring, lifecycle, recovery, trade-offs, and
adoption risk.
- Evidence matrix and decision template
provides the output structure.
Operating Contract
- Direct actions: read-only discovery, source inspection, local experiments,
decision recovery, comparison, and drafting within the requested access path.
- Escalate before: paid API use, new accounts or legal terms, publication of
non-public findings, remote mutations, or an unauthorized production choice.
- Evidence-backed pushback: challenge category errors, unsupported architecture
claims, false equivalence, and premature hyperscale design with cited facts.
- Feedback loop: test decisive claims, record unknowns and reversal evidence,
then re-open the decision when its review trigger fires.
Scope and handoff
Use this skill for four related tasks:
- Landscape research: identify and compare relevant systems or approaches.
- System archaeology: reconstruct how a system actually works from source,
deployment material, tests, runtime evidence, and authoritative documents.
- Architecture decision: choose whether to adopt, adapt, build, defer, or
retain the current system.
- Decision reassessment: recover an earlier decision, check whether its
assumptions still hold, and keep or revise it using current evidence.
This skill owns external research, evidence, comparison, and the decision
boundary. Once a direction is selected, hand detailed internal boundaries,
contracts, and target architecture to architecture-foundation. Use
product-discovery for customer or market validation without a technical
decision question.
Respect the requested access path and repository instructions. Never expose
credentials or reproduce private implementation details in a public artifact.
Do not invoke this workflow for a small bug fix, rename, formatting change,
routine dependency use, or when the foundational technology is explicitly fixed
by the user or nearest repository instructions.
Workflow
1. State the decision question
Before searching, write a compact research brief:
- User outcome and the exact capability the system must own.
- Current boundary, missing layer, and the decision to make.
- One or more representative quality scenarios: stimulus, operating condition,
expected response, and measurable success.
- Constraints that matter now: scale horizon, freshness, latency, quality,
privacy, deployment, budget, licensing, data ownership, and team capacity.
- Explicit non-goals and the cost of making no change.
Scale research depth to decision risk. Reversible component choices need less
evidence than a new source of truth, data platform, hosted dependency, or
one-way migration.
Challenge category errors early. A browser, API wrapper, scraper, search index,
agent runtime, and answer engine can share a surface while owning different
capabilities.
2. Recover existing context without inheriting its claims
When prior decisions, incidents, chats, ADRs, or benchmarks exist, extract:
- The decision and alternatives considered at the time.
- Assumptions, constraints, unresolved unknowns, and promised validation.
- What was actually implemented and what happened in operation.
- Which facts are stale, contradicted, or were never verified.
Prefer focused summaries, exact excerpts, decision records, and runtime
artifacts over loading whole conversation archives. Treat prior conclusions as
leads until their evidence is re-opened.
3. Select representative alternatives
Search before proposing architecture. Include only alternatives that can change
the decision:
- Maintained open-source systems with inspectable source and deployment paths.
- Commercial systems with authoritative technical material.
- Standards, public datasets, protocols, and lower-level reusable components.
- The current system and the option to make no change.
Classify each candidate as direct, adjacent, component, or non-comparable.
Do not pad the comparison to reach an arbitrary count. Decide the possible
reuse unit: whole system, subsystem, component, protocol, data model, or pattern.
4. Build an evidence ledger
Prefer primary evidence in this order:
- Source code, tests, manifests, schemas, releases, and reproducible runtime
behavior.
- Official technical documentation, papers, standards, patents, and
engineering posts.
- Official product, license, and pricing material for product-level claims.
- Independent measurements whose method, date, and environment are visible.
For current products, dependencies, pricing, licenses, or architecture, browse
and record the date or revision. Use secondary sources only to locate primary
evidence or to add clearly attributed independent evaluation.
Tag every decision-relevant claim:
- Verified: directly supported by cited code, documentation, or measurement.
- Inferred: supported by evidence but not stated directly; include the
reasoning and confidence.
- Unknown: not revealed by available evidence; say what would resolve it.
Preserve contradictions. A public SDK, plugin, or MCP server proves an interface
exists; it does not prove that the underlying data, model, index, scheduler, or
hosted control plane is open or independently reproducible.
5. Trace the real system
Apply the relevant lenses from
architecture-lenses.md. At minimum answer:
- What is the end-to-end path from input to user-visible result?
- Who owns each data, control, and operational boundary?
- What is authoritative, what is derived, and what is only ephemeral?
- What survives restart, and how are stale or divergent states reconciled?
- Is each claimed capability merely declared, actually implemented, wired into
the live path, exercised, and measured?
- Which decisions are sensitivity or trade-off points for the named scenarios?
Inspect open-source implementation, tests, releases, and self-host deployment,
not only the README. For closed systems, draw a visible boundary around the
public surface and keep the hidden core unknown.
6. Test decision-relevant claims
When practical, run the same small representative workload against viable
options. Define before running:
- Question, candidate versions, corpus or scenario, and expected result.
- Scoring rule, environment, hardware, commands, and raw result location.
- Failure behavior and recovery test when statefulness is part of the decision.
Measure the property that can change the decision: coverage, correctness,
freshness, extraction fidelity, latency, throughput, resource use, operability,
or recovery. A component existing in source is not evidence that the production
path uses it.
If a fair test cannot run, state the missing credential, dataset, environment,
or budget and retain the uncertainty. Do not turn a vendor benchmark or demo
into local proof.
7. Evaluate adoption reality
For an adoption candidate, check more than technical fit:
- Maintenance and release activity, governance, contributor concentration, and
response to security or correctness issues.
- License obligations, distribution model, deployment complexity, upgrade path,
and operational ownership.
- Supply-chain posture, tests, release provenance, and dependency risk where
relevant.
- Unit cost, switching cost, lock-in, and the exit path if the project or vendor
changes direction.
Automated project-health or security scores are leads, not final truth. Inspect
the checks, their applicability, and counterevidence.
8. Make and bound the decision
Choose one disposition for each useful idea:
- Adopt: use the existing solution substantially as supplied.
- Adapt: reuse a bounded unit while owning the differentiating layer.
- Build: implement because ownership is itself required or candidates fail
a named constraint.
- Defer: evidence is insufficient or the capability is not needed now.
- Retain: keep the current system because change is not yet justified.
Tie the recommendation to the research brief and quality scenarios. State:
- Selected direction, reuse unit, and accepted quality trade-offs.
- Rejected alternatives and what should not be copied.
- Risks, unknowns, and evidence that would reverse the decision.
- Smallest validation milestone and observable success condition.
- Exit path or review trigger for assumptions likely to change.
- Inputs for
architecture-foundation: selected components, constraints,
ownership decisions, unresolved questions, and prohibited dependencies.
A long-term ambition can justify staged validation, but not speculative layers
in the current implementation.
Common failure modes
- Comparing feature names instead of system boundaries and scenarios.
- Treating self-hostable orchestration as ownership of upstream data or models.
- Equating a database row with a recoverable workflow or authoritative state.
- Counting declared modules without checking wiring, execution, and measurement.
- Assuming a public client repository contains a commercial product's core.
- Copying hyperscale architecture before proving a bounded workload.
- Ignoring acquisition, provenance, lifecycle, recovery, and evaluation while
focusing only on algorithms or storage.
- Ranking choices with invented precision or unconfirmed weights.
- Treating repository popularity or an automated score as adoption proof.
- Hiding unknowns behind confident prose or silently degrading when research
access fails.
Done when
The decision artifact contains:
- A bounded decision question, scenarios, constraints, and no-change baseline.
- Candidate classification and a named reuse unit for viable options.
- An evidence ledger with citations and verified/inferred/unknown labels.
- End-to-end, ownership, authority, recovery, and capability-maturity analysis.
- Trade-offs and decision-relevant tests, or an explicit test blocker.
- Adoption viability when a third-party dependency is recommended.
- An adopt/adapt/build/defer/retain decision, rejected alternatives, accepted
risks, reversal evidence, exit or review trigger, and smallest milestone.
Before claiming completion, re-open decisive sources, check dates and revisions,
and run repository-required validation for any changed files.
1---2name: architecture-research3description: Evidence-driven architecture research for understanding real systems and making technical decisions. Use when doing architecture landscape studies, source-backed system archaeology, build-vs-buy or adopt/adapt/build decisions, open-source and commercial comparisons, revisiting an earlier architecture choice, or handling requests such as 架构调研, 架构选型, 竞品架构, 技术尽调, 同类方案, 开源替代, how is X built, and what should we learn from X. Do not use for small mechanical changes, market-only discovery, or detailed design after the technology direction is already fixed.4---5
6# Architecture Research
7
8Understand how real systems work before committing to a technical direction.
9Produce a decision artifact backed by inspectable evidence, not a feature table,
10vendor narrative, or speculative target architecture.
11
12Read both references before completing decision-grade work:
13
14- [Architecture lenses](references/architecture-lenses.md) explains how to
15 inspect ownership, authority, wiring, lifecycle, recovery, trade-offs, and
16 adoption risk.
17- [Evidence matrix and decision template](references/evidence-matrix.md)
18 provides the output structure.
19
20## Operating Contract
21
22- Direct actions: read-only discovery, source inspection, local experiments,
23 decision recovery, comparison, and drafting within the requested access path.
24- Escalate before: paid API use, new accounts or legal terms, publication of
25 non-public findings, remote mutations, or an unauthorized production choice.
26- Evidence-backed pushback: challenge category errors, unsupported architecture
27 claims, false equivalence, and premature hyperscale design with cited facts.
28- Feedback loop: test decisive claims, record unknowns and reversal evidence,
29 then re-open the decision when its review trigger fires.
30
31### Scope and handoff
32
33Use this skill for four related tasks:
34
35- **Landscape research**: identify and compare relevant systems or approaches.
36- **System archaeology**: reconstruct how a system actually works from source,
37 deployment material, tests, runtime evidence, and authoritative documents.
38- **Architecture decision**: choose whether to adopt, adapt, build, defer, or
39 retain the current system.
40- **Decision reassessment**: recover an earlier decision, check whether its
41 assumptions still hold, and keep or revise it using current evidence.
42
43This skill owns external research, evidence, comparison, and the decision
44boundary. Once a direction is selected, hand detailed internal boundaries,
45contracts, and target architecture to `architecture-foundation`. Use
46`product-discovery` for customer or market validation without a technical
47decision question.
48
49Respect the requested access path and repository instructions. Never expose
50credentials or reproduce private implementation details in a public artifact.
51
52Do not invoke this workflow for a small bug fix, rename, formatting change,
53routine dependency use, or when the foundational technology is explicitly fixed
54by the user or nearest repository instructions.
55
56## Workflow
57
58### 1. State the decision question
59
60Before searching, write a compact research brief:
61
62- User outcome and the exact capability the system must own.
63- Current boundary, missing layer, and the decision to make.
64- One or more representative quality scenarios: stimulus, operating condition,
65 expected response, and measurable success.
66- Constraints that matter now: scale horizon, freshness, latency, quality,
67 privacy, deployment, budget, licensing, data ownership, and team capacity.
68- Explicit non-goals and the cost of making no change.
69
70Scale research depth to decision risk. Reversible component choices need less
71evidence than a new source of truth, data platform, hosted dependency, or
72one-way migration.
73
74Challenge category errors early. A browser, API wrapper, scraper, search index,
75agent runtime, and answer engine can share a surface while owning different
76capabilities.
77
78### 2. Recover existing context without inheriting its claims
79
80When prior decisions, incidents, chats, ADRs, or benchmarks exist, extract:
81
82- The decision and alternatives considered at the time.
83- Assumptions, constraints, unresolved unknowns, and promised validation.
84- What was actually implemented and what happened in operation.
85- Which facts are stale, contradicted, or were never verified.
86
87Prefer focused summaries, exact excerpts, decision records, and runtime
88artifacts over loading whole conversation archives. Treat prior conclusions as
89leads until their evidence is re-opened.
90
91### 3. Select representative alternatives
92
93Search before proposing architecture. Include only alternatives that can change
94the decision:
95
96- Maintained open-source systems with inspectable source and deployment paths.
97- Commercial systems with authoritative technical material.
98- Standards, public datasets, protocols, and lower-level reusable components.
99- The current system and the option to make no change.
100
101Classify each candidate as direct, adjacent, component, or non-comparable.
102Do not pad the comparison to reach an arbitrary count. Decide the possible
103reuse unit: whole system, subsystem, component, protocol, data model, or pattern.
104
105### 4. Build an evidence ledger
106
107Prefer primary evidence in this order:
108
1091. Source code, tests, manifests, schemas, releases, and reproducible runtime
110 behavior.
1112. Official technical documentation, papers, standards, patents, and
112 engineering posts.
1133. Official product, license, and pricing material for product-level claims.
1144. Independent measurements whose method, date, and environment are visible.
115
116For current products, dependencies, pricing, licenses, or architecture, browse
117and record the date or revision. Use secondary sources only to locate primary
118evidence or to add clearly attributed independent evaluation.
119
120Tag every decision-relevant claim:
121
122- **Verified**: directly supported by cited code, documentation, or measurement.
123- **Inferred**: supported by evidence but not stated directly; include the
124 reasoning and confidence.
125- **Unknown**: not revealed by available evidence; say what would resolve it.
126
127Preserve contradictions. A public SDK, plugin, or MCP server proves an interface
128exists; it does not prove that the underlying data, model, index, scheduler, or
129hosted control plane is open or independently reproducible.
130
131### 5. Trace the real system
132
133Apply the relevant lenses from
134[architecture-lenses.md](references/architecture-lenses.md). At minimum answer:
135
136- What is the end-to-end path from input to user-visible result?
137- Who owns each data, control, and operational boundary?
138- What is authoritative, what is derived, and what is only ephemeral?
139- What survives restart, and how are stale or divergent states reconciled?
140- Is each claimed capability merely declared, actually implemented, wired into
141 the live path, exercised, and measured?
142- Which decisions are sensitivity or trade-off points for the named scenarios?
143
144Inspect open-source implementation, tests, releases, and self-host deployment,
145not only the README. For closed systems, draw a visible boundary around the
146public surface and keep the hidden core unknown.
147
148### 6. Test decision-relevant claims
149
150When practical, run the same small representative workload against viable
151options. Define before running:
152
153- Question, candidate versions, corpus or scenario, and expected result.
154- Scoring rule, environment, hardware, commands, and raw result location.
155- Failure behavior and recovery test when statefulness is part of the decision.
156
157Measure the property that can change the decision: coverage, correctness,
158freshness, extraction fidelity, latency, throughput, resource use, operability,
159or recovery. A component existing in source is not evidence that the production
160path uses it.
161
162If a fair test cannot run, state the missing credential, dataset, environment,
163or budget and retain the uncertainty. Do not turn a vendor benchmark or demo
164into local proof.
165
166### 7. Evaluate adoption reality
167
168For an adoption candidate, check more than technical fit:
169
170- Maintenance and release activity, governance, contributor concentration, and
171 response to security or correctness issues.
172- License obligations, distribution model, deployment complexity, upgrade path,
173 and operational ownership.
174- Supply-chain posture, tests, release provenance, and dependency risk where
175 relevant.
176- Unit cost, switching cost, lock-in, and the exit path if the project or vendor
177 changes direction.
178
179Automated project-health or security scores are leads, not final truth. Inspect
180the checks, their applicability, and counterevidence.
181
182### 8. Make and bound the decision
183
184Choose one disposition for each useful idea:
185
186- **Adopt**: use the existing solution substantially as supplied.
187- **Adapt**: reuse a bounded unit while owning the differentiating layer.
188- **Build**: implement because ownership is itself required or candidates fail
189 a named constraint.
190- **Defer**: evidence is insufficient or the capability is not needed now.
191- **Retain**: keep the current system because change is not yet justified.
192
193Tie the recommendation to the research brief and quality scenarios. State:
194
195- Selected direction, reuse unit, and accepted quality trade-offs.
196- Rejected alternatives and what should not be copied.
197- Risks, unknowns, and evidence that would reverse the decision.
198- Smallest validation milestone and observable success condition.
199- Exit path or review trigger for assumptions likely to change.
200- Inputs for `architecture-foundation`: selected components, constraints,
201 ownership decisions, unresolved questions, and prohibited dependencies.
202
203A long-term ambition can justify staged validation, but not speculative layers
204in the current implementation.
205
206## Common failure modes
207
208- Comparing feature names instead of system boundaries and scenarios.
209- Treating self-hostable orchestration as ownership of upstream data or models.
210- Equating a database row with a recoverable workflow or authoritative state.
211- Counting declared modules without checking wiring, execution, and measurement.
212- Assuming a public client repository contains a commercial product's core.
213- Copying hyperscale architecture before proving a bounded workload.
214- Ignoring acquisition, provenance, lifecycle, recovery, and evaluation while
215 focusing only on algorithms or storage.
216- Ranking choices with invented precision or unconfirmed weights.
217- Treating repository popularity or an automated score as adoption proof.
218- Hiding unknowns behind confident prose or silently degrading when research
219 access fails.
220
221## Done when
222
223The decision artifact contains:
224
225- A bounded decision question, scenarios, constraints, and no-change baseline.
226- Candidate classification and a named reuse unit for viable options.
227- An evidence ledger with citations and verified/inferred/unknown labels.
228- End-to-end, ownership, authority, recovery, and capability-maturity analysis.
229- Trade-offs and decision-relevant tests, or an explicit test blocker.
230- Adoption viability when a third-party dependency is recommended.
231- An adopt/adapt/build/defer/retain decision, rejected alternatives, accepted
232 risks, reversal evidence, exit or review trigger, and smallest milestone.
233
234Before claiming completion, re-open decisive sources, check dates and revisions,
235and run repository-required validation for any changed files.