docs(adr): ADR 007 — stable finding fingerprint schema#174
Conversation
Defines provider:callType:flagKey:normalizedFilePath as the v1.0 fingerprint schema. Foundation for baseline mode (ADR 008) and SARIF stability. Part of the v1.0.0 milestone. Signed-off-by: Krishan Kant Sharma <krishansharma0327@gmail.com>
📝 WalkthroughWalkthroughAdds ChangesADR 007: Stable Finding Fingerprints
Estimated code review effort🎯 1 (Trivial) | ⏱️ ~5 minutes Possibly related issues
Possibly related PRs
Poem
🚥 Pre-merge checks | ✅ 5✅ Passed checks (5 passed)
✏️ Tip: You can configure your own custom pre-merge checks in the settings. ✨ Finishing Touches🧪 Generate unit tests (beta)
Comment |
There was a problem hiding this comment.
Actionable comments posted: 2
🧹 Nitpick comments (1)
docs/adr/007-stable-finding-fingerprints.md (1)
25-25: 📐 Maintainability & Code Quality | 🔵 Trivial | ⚡ Quick winAdd language specifiers to fenced code blocks.
The markdownlint linter (MD040) flags three code blocks without language specifiers. Add
textto each code fence for compliance:
- Line 25: Schema definition block
- Line 37: Example fingerprints block
- Line 54: Dynamic key example block
📝 Proposed fixes for fenced code block language specifiers
### v1.0 fingerprint schema -``` +```text provider:callType:flagKey:normalizedFilePath```diff **Example fingerprints:** -``` +```text launchdarkly:boolVariation:checkout-v2:src/checkout/service.ts launchdarkly:stringVariation:payment-provider:src/payments/processor.ts```diff For dynamic keys (`isDynamic: true` or `flagKey === "*"`), include a sequential index within the file to differentiate multiple dynamic calls: -``` +```text launchdarkly:boolVariation:*:src/service.ts:0 launchdarkly:boolVariation:*:src/service.ts:1</details> Also applies to: 37-37, 54-54 <details> <summary>🤖 Prompt for AI Agents</summary>Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.In
@docs/adr/007-stable-finding-fingerprints.mdat line 25, The markdownlint
linter (MD040) requires all fenced code blocks to have language specifiers. Add
thetextlanguage specifier to the opening backticks of the three code blocks
that currently lack them: the Schema definition block (showing the format with
provider:callType:flagKey:normalizedFilePath), the Example fingerprints block
(showing launchdarkly examples), and the Dynamic key example block (showing
dynamic key usage with asterisks). Change each code fence opening from triple
backticks to triple backticks followed bytextto satisfy the linter
requirement.</details> <!-- cr-comment:v1:b716f6bc887ff35eae073ca5 --> _Source: Linters/SAST tools_ </blockquote></details> </blockquote></details> <details> <summary>🤖 Prompt for all review comments with AI agents</summary>Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.Inline comments:
In@docs/adr/007-stable-finding-fingerprints.md:
- Around line 49-60: The Dynamic key handling section acknowledges that index
order may shift but does not sufficiently document the implications. Enhance the
documentation in this section to explicitly state that sequential indices are
unstable when code is refactored or reordered, and that developers should
re-baseline their findings after any refactoring that modifies the order or
presence of dynamic calls (isDynamic: true or flagKey === "*"). Add a clear
warning or note that clarifies this limitation and its impact on existing
baselines.- Around line 86-87: ADR 007 contains unresolved references to a non-existent
ADR 008 in the lines discussing SARIF consumer fingerprint usage and baseline
artifact storage. To fix this, either create the missing ADR 008 document that
formally documents how SARIF consumers should use fingerprints as result
identities and how baseline artifacts should store fingerprint arrays, or
alternatively, inline these design decisions directly into ADR 007 by replacing
the references to ADR 008 with the actual decision content, ensuring all
architectural decisions referenced in the document are either documented
elsewhere or contained within the document itself.
Nitpick comments:
In@docs/adr/007-stable-finding-fingerprints.md:
- Line 25: The markdownlint linter (MD040) requires all fenced code blocks to
have language specifiers. Add thetextlanguage specifier to the opening
backticks of the three code blocks that currently lack them: the Schema
definition block (showing the format with
provider:callType:flagKey:normalizedFilePath), the Example fingerprints block
(showing launchdarkly examples), and the Dynamic key example block (showing
dynamic key usage with asterisks). Change each code fence opening from triple
backticks to triple backticks followed bytextto satisfy the linter
requirement.</details> <details> <summary>🪄 Autofix (Beta)</summary> Fix all unresolved CodeRabbit comments on this PR: - [ ] <!-- {"checkboxId": "4b0d0e0a-96d7-4f10-b296-3a18ea78f0b9"} --> Push a commit to this branch (recommended) - [ ] <!-- {"checkboxId": "ff5b1114-7d8c-49e6-8ac1-43f82af23a33"} --> Create a new PR with the fixes </details> --- <details> <summary>ℹ️ Review info</summary> <details> <summary>⚙️ Run configuration</summary> **Configuration used**: defaults **Review profile**: CHILL **Plan**: Pro Plus **Run ID**: `ce638c87-0d39-4174-8b3f-5e005d5bf842` </details> <details> <summary>📥 Commits</summary> Reviewing files that changed from the base of the PR and between 44c8fc5a16946496f121b1924a56f8b4a880d03b and 76485f08b6f6d1e09309e439227be1d781d71a8c. </details> <details> <summary>📒 Files selected for processing (1)</summary> * `docs/adr/007-stable-finding-fingerprints.md` </details> </details> <!-- This is an auto-generated comment by CodeRabbit for review status -->
Defines the v1.0 fingerprint schema: provider:callType:flagKey:normalizedFilePath. Foundation for baseline mode and SARIF stability. Part of the v1.0.0 milestone.
Summary by CodeRabbit
Release Notes