3_analysis_techniques.xml 14 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349
  1. <analysis_techniques>
  2. <overview>
  3. Heuristics for analyzing a codebase to extract reliable, user-facing documentation.
  4. This file contains technique checklists only—no tool instructions or invocations.
  5. </overview>
  6. <ui_ux_analysis_techniques>
  7. <technique name="component_discovery">
  8. <description>Find and analyze UI components and their interactions</description>
  9. <heuristics>
  10. <rule>Start from feature or route directories and enumerate components related to the requested topic.</rule>
  11. <rule>Differentiate container vs presentational components; note composition patterns.</rule>
  12. <rule>Trace inputs/outputs: props, state, context, events, and side effects.</rule>
  13. <rule>Record conditional rendering that affects user-visible states.</rule>
  14. </heuristics>
  15. <evidence_to_collect>
  16. <item>Primary components and responsibilities.</item>
  17. <item>Props/state/context that change behavior.</item>
  18. <item>High-level dependency/composition map.</item>
  19. </evidence_to_collect>
  20. </technique>
  21. <technique name="style_analysis">
  22. <description>Analyze styling and visual elements</description>
  23. <heuristics>
  24. <rule>Identify design tokens and utility classes used to drive layout and state.</rule>
  25. <rule>Capture responsive behavior and breakpoint rules that materially change UX.</rule>
  26. <rule>Document visual affordances tied to state (loading, error, disabled).</rule>
  27. </heuristics>
  28. <evidence_to_collect>
  29. <item>Key classes/selectors influencing layout/state.</item>
  30. <item>Responsive behavior summary and breakpoints.</item>
  31. </evidence_to_collect>
  32. </technique>
  33. <technique name="user_flow_mapping">
  34. <description>Map user interactions and navigation flows</description>
  35. <analysis_areas>
  36. <area>Route definitions and navigation</area>
  37. <area>Form submissions and validations</area>
  38. <area>Button clicks and event handlers</area>
  39. <area>State changes and UI updates</area>
  40. <area>Loading and error states</area>
  41. </analysis_areas>
  42. <heuristics>
  43. <rule>Outline entry points and expected outcomes for each primary flow.</rule>
  44. <rule>Summarize validation rules and failure states the user can encounter.</rule>
  45. <rule>Record redirects and deep-link behavior relevant to the feature.</rule>
  46. </heuristics>
  47. <evidence_to_collect>
  48. <item>Flow diagrams or bullet sequences for main tasks.</item>
  49. <item>Validation conditions and error messages.</item>
  50. <item>Navigation transitions and guards.</item>
  51. </evidence_to_collect>
  52. </technique>
  53. <technique name="user_feedback_analysis">
  54. <description>Analyze how the system communicates with users</description>
  55. <elements_to_find>
  56. <element>Error messages and alerts</element>
  57. <element>Success notifications</element>
  58. <element>Loading indicators</element>
  59. <element>Tooltips and help text</element>
  60. <element>Confirmation dialogs</element>
  61. <element>Progress indicators</element>
  62. </elements_to_find>
  63. <heuristics>
  64. <rule>Map message triggers to the user actions that cause them.</rule>
  65. <rule>Capture severity, persistence, and dismissal behavior.</rule>
  66. <rule>Note localization or accessibility considerations in messages.</rule>
  67. </heuristics>
  68. <evidence_to_collect>
  69. <item>Catalog of messages with purpose and conditions.</item>
  70. <item>Loading/progress patterns and timeouts.</item>
  71. </evidence_to_collect>
  72. </technique>
  73. <technique name="accessibility_analysis">
  74. <description>Check for accessibility features and compliance</description>
  75. <accessibility_checks>
  76. <check>ARIA labels and roles</check>
  77. <check>Keyboard navigation support</check>
  78. <check>Screen reader compatibility</check>
  79. <check>Focus management</check>
  80. <check>Color contrast considerations</check>
  81. </accessibility_checks>
  82. <heuristics>
  83. <rule>Confirm interactive elements have clear focus and labels.</rule>
  84. <rule>Describe keyboard-only navigation paths for core flows.</rule>
  85. </heuristics>
  86. <evidence_to_collect>
  87. <item>Accessibility gaps affecting task completion.</item>
  88. </evidence_to_collect>
  89. </technique>
  90. <technique name="responsive_design_analysis">
  91. <description>Analyze responsive design and mobile experience</description>
  92. <analysis_points>
  93. <point>Breakpoint definitions</point>
  94. <point>Mobile-specific components</point>
  95. <point>Touch event handlers</point>
  96. <point>Viewport configurations</point>
  97. <point>Media queries</point>
  98. </analysis_points>
  99. <heuristics>
  100. <rule>Summarize layout changes across breakpoints that alter workflow.</rule>
  101. <rule>Note touch targets and gestures required on mobile.</rule>
  102. </heuristics>
  103. <evidence_to_collect>
  104. <item>Table of key differences per breakpoint.</item>
  105. </evidence_to_collect>
  106. </technique>
  107. </ui_ux_analysis_techniques>
  108. <code_analysis_techniques>
  109. <technique name="entry_point_analysis">
  110. <description>Understand feature entry points and control flow</description>
  111. <steps>
  112. <step>Identify main functions, controllers, or route handlers.</step>
  113. <step>Trace execution and decision branches.</step>
  114. <step>Document input validation and preconditions.</step>
  115. </steps>
  116. <evidence_to_collect>
  117. <item>Entry points list and short purpose statements.</item>
  118. <item>Decision matrix or flow sketch.</item>
  119. </evidence_to_collect>
  120. </technique>
  121. <technique name="api_extraction">
  122. <description>Extract API specifications from code</description>
  123. <patterns>
  124. <pattern type="rest">
  125. <extraction>
  126. <item>HTTP method and route path</item>
  127. <item>Path/query parameters</item>
  128. <item>Request/response schemas</item>
  129. <item>Status codes and error bodies</item>
  130. </extraction>
  131. </pattern>
  132. <pattern type="graphql">
  133. <extraction>
  134. <item>Schema and input types</item>
  135. <item>Resolvers and return types</item>
  136. <item>Field arguments and constraints</item>
  137. </extraction>
  138. </pattern>
  139. </patterns>
  140. </technique>
  141. <technique name="dependency_mapping">
  142. <description>Map dependencies and integration points</description>
  143. <analysis_points>
  144. <point>Imports and module boundaries</point>
  145. <point>Package and runtime dependencies</point>
  146. <point>External API/SDK usage</point>
  147. <point>DB connections and migrations</point>
  148. <point>Messaging/queue/event streams</point>
  149. <point>Filesystem or network side effects</point>
  150. </analysis_points>
  151. <evidence_to_collect>
  152. <item>Dependency graph summary and hot spots.</item>
  153. <item>List of external integrations and auth methods.</item>
  154. </evidence_to_collect>
  155. </technique>
  156. <technique name="data_model_extraction">
  157. <description>Extract data models, schemas, and type definitions</description>
  158. <sources>
  159. <source type="typescript">
  160. <patterns>- interfaces, types, classes, enums</patterns>
  161. </source>
  162. <source type="database">
  163. <patterns>- Schema definitions, migration files, ORM models</patterns>
  164. </source>
  165. <source type="validation">
  166. <patterns>- JSON Schema, Joi/Yup/Zod schemas, validation decorators</patterns>
  167. </source>
  168. </sources>
  169. <evidence_to_collect>
  170. <item>Canonical definitions and field constraints.</item>
  171. <item>Entity relationships and ownership.</item>
  172. </evidence_to_collect>
  173. </technique>
  174. <technique name="business_logic_extraction">
  175. <description>Identify and document business rules</description>
  176. <indicators>
  177. <indicator>Complex conditionals</indicator>
  178. <indicator>Calculation functions</indicator>
  179. <indicator>Validation rules</indicator>
  180. <indicator>State machines</indicator>
  181. <indicator>Domain-specific constants and algorithms</indicator>
  182. </indicators>
  183. <documentation_focus>
  184. <focus>Why the logic exists (business need)</focus>
  185. <focus>When the logic applies (conditions)</focus>
  186. <focus>What the logic does (transformation)</focus>
  187. <focus>Edge cases and invariants</focus>
  188. <focus>Impact of changes</focus>
  189. </documentation_focus>
  190. </technique>
  191. <technique name="error_handling_analysis">
  192. <description>Document error handling and recovery</description>
  193. <analysis_areas>
  194. <area>try/catch blocks and error boundaries</area>
  195. <area>Custom error classes and codes</area>
  196. <area>Logging, fallbacks, retries, circuit breakers</area>
  197. </analysis_areas>
  198. <evidence_to_collect>
  199. <item>Error taxonomy and user-facing messages.</item>
  200. <item>Recovery/rollback strategies and timeouts.</item>
  201. </evidence_to_collect>
  202. </technique>
  203. <technique name="security_analysis">
  204. <description>Identify security measures and vulnerabilities</description>
  205. <security_checks>
  206. <check category="authentication">JWT, sessions, OAuth, API keys</check>
  207. <check category="authorization">RBAC, permission checks, ownership validation</check>
  208. <check category="data_protection">Encryption, hashing, sensitive data handling</check>
  209. <check category="input_validation">Sanitization and injection prevention</check>
  210. </security_checks>
  211. <evidence_to_collect>
  212. <item>Threat surfaces and mitigations relevant to the feature.</item>
  213. </evidence_to_collect>
  214. </technique>
  215. <technique name="performance_analysis">
  216. <description>Identify performance factors and optimization opportunities</description>
  217. <analysis_points>
  218. <point>Expensive loops/algorithms</point>
  219. <point>DB query patterns (e.g., N+1)</point>
  220. <point>Caching strategies</point>
  221. <point>Concurrency and async usage</point>
  222. <point>Batching and resource pooling</point>
  223. <point>Memory management and object lifetimes</point>
  224. </analysis_points>
  225. <metrics_to_document>
  226. <metric>Time/space complexity</metric>
  227. <metric>DB query counts</metric>
  228. <metric>API response times</metric>
  229. <metric>Memory usage</metric>
  230. <metric>Concurrency handling</metric>
  231. </metrics_to_document>
  232. </technique>
  233. <technique name="test_coverage_analysis">
  234. <description>Assess test coverage at a useful granularity</description>
  235. <test_types>
  236. <type name="unit">
  237. <analysis>Function-level coverage and edge cases</analysis>
  238. </type>
  239. <type name="integration">
  240. <analysis>Workflow coverage and contract boundaries</analysis>
  241. </type>
  242. <type name="api">
  243. <analysis>Endpoint success/failure paths and schemas</analysis>
  244. </type>
  245. </test_types>
  246. <evidence_to_collect>
  247. <item>List of critical behaviors missing tests.</item>
  248. </evidence_to_collect>
  249. </technique>
  250. <technique name="configuration_extraction">
  251. <description>Extract configuration options and their impacts</description>
  252. <configuration_sources>
  253. <source>.env files, config files, CLI args, feature flags</source>
  254. </configuration_sources>
  255. <documentation_requirements>
  256. <requirement>Default values and valid ranges</requirement>
  257. <requirement>Behavioral impact of each option</requirement>
  258. <requirement>Dependencies between options</requirement>
  259. <requirement>Security implications</requirement>
  260. </documentation_requirements>
  261. </technique>
  262. </code_analysis_techniques>
  263. <workflow_analysis>
  264. <technique name="user_journey_mapping">
  265. <description>Map user workflows through the feature</description>
  266. <steps>
  267. <step>Identify entry points (UI, API, CLI)</step>
  268. <step>Trace user actions and decision points</step>
  269. <step>Map data transformations</step>
  270. <step>Identify outcomes and completion criteria</step>
  271. </steps>
  272. <deliverables>
  273. <deliverable>Flow diagrams, procedures, decision trees, state diagrams</deliverable>
  274. </deliverables>
  275. </technique>
  276. <technique name="integration_flow_analysis">
  277. <description>Document integration with other systems</description>
  278. <integration_types>
  279. <type>Sync API calls, async messaging, events, batch processing, streaming</type>
  280. </integration_types>
  281. <documentation_focus>
  282. <focus>Protocols, auth, error handling, data transforms, SLAs</focus>
  283. </documentation_focus>
  284. </technique>
  285. </workflow_analysis>
  286. <metadata_extraction>
  287. <technique name="version_compatibility">
  288. <description>Summarize version constraints and compatibility</description>
  289. <sources>
  290. <source>package manifests, READMEs, migration guides, breaking changes docs</source>
  291. </sources>
  292. <evidence_to_collect>
  293. <item>Minimum/recommended versions and notable constraints.</item>
  294. </evidence_to_collect>
  295. </technique>
  296. <technique name="deprecation_tracking">
  297. <description>Track deprecations and migrations</description>
  298. <indicators>
  299. <indicator>Explicit deprecation notices and TODO markers</indicator>
  300. <indicator>Legacy code paths and adapters</indicator>
  301. </indicators>
  302. <documentation_requirements>
  303. <requirement>Deprecation date and removal timeline</requirement>
  304. <requirement>Migration path and alternatives</requirement>
  305. </documentation_requirements>
  306. </technique>
  307. </metadata_extraction>
  308. <quality_indicators>
  309. <indicator name="documentation_completeness">
  310. <checks>
  311. <check>Public APIs documented with inputs/outputs and errors</check>
  312. <check>Examples for complex features</check>
  313. <check>Error scenarios covered with recovery guidance</check>
  314. <check>Config options explained with defaults and impacts</check>
  315. <check>Security considerations addressed</check>
  316. </checks>
  317. </indicator>
  318. <indicator name="code_quality_metrics">
  319. <metrics>
  320. <metric>Cyclomatic complexity</metric>
  321. <metric>Code duplication</metric>
  322. <metric>Test coverage and gaps</metric>
  323. <metric>Documentation coverage for user-visible behaviors</metric>
  324. <metric>Known technical debt affecting UX</metric>
  325. </metrics>
  326. </indicator>
  327. </quality_indicators>
  328. </analysis_techniques>