Skip to content

Conversation

@ignatandrei
Copy link
Owner

@ignatandrei ignatandrei commented Dec 14, 2025

Summary by CodeRabbit

  • New Features

    • Added the 246th RSCG example: Imposter, a source code generator for creating test doubles and mocks.
    • Expanded the RSCG catalog with full documentation, usage examples, and sample code for the new generator.
  • Documentation

    • Updated all reference pages and categories to reflect the expanded 246-item catalog.
    • Added author documentation for Bitchiko Tchelidze.

✏️ Tip: You can customize this high-level summary in your review settings.

@coderabbitai
Copy link

coderabbitai bot commented Dec 14, 2025

Walkthrough

This PR adds the 246th RSCG example (Imposter) to the repository, including complete documentation, example source code, metadata, and updates to all registry files and documentation pages that track the growing collection of generators.

Changes

Cohort / File(s) Change Summary
Count and Summary Updates
README.md, later.md, v2/rscg_examples_site/docs/about.md, v2/rscg_examples_site/src/components/HomepageFeatures/index.js
Updated total RSCG count from 245 to 246 and refreshed "Latest Update" timestamp (2025-12-12 → 2025-12-13) across summary pages and metadata
Global Listing Pages
v2/book/list.html, v2/rscg_examples_site/docs/indexRSCG.md, v2/rscg_examples_site/static/exports/RSCG.json
Added new row/entry for Imposter (item 246) to HTML list, time-based index, and JSON catalog export; updated headings to reflect 246 total
Imposter Generator Documentation
v2/book/examples/Imposter.html, v2/rscg_examples_site/docs/RSCG-Examples/Imposter.md
Added comprehensive HTML and Markdown documentation pages for the Imposter generator, including metadata, quick start, usage examples, features, benchmarks, and download links
Imposter Generator Metadata & Configuration
v2/rscg_examples/Imposter/description.json, v2/rscg_examples/Imposter/nuget.txt, v2/rscg_examples/Imposter/readme.txt, v2/rscg_examples/Imposter/video.json, v2/RSCGExamplesData/GeneratorDataRec.json
Added generator metadata (name, NuGet package, author, source links), descriptive text, comprehensive README, and JSON tour script; registered entry in generator data registry
Imposter Example Source Code & Projects
v2/rscg_examples/Imposter/src/MockData/IMyClock.cs, v2/rscg_examples/Imposter/src/MockData/MockData.csproj, v2/rscg_examples/Imposter/src/TestClock/TestClock.cs, v2/rscg_examples/Imposter/src/TestClock/TestClock.csproj, v2/rscg_examples/Imposter/src/TestClock/Usings.cs, v2/rscg_examples/Imposter/src/MockTest.slnx
Created complete .NET example project with mock interface (IMyClock), test project using Imposter-generated test doubles, test method ([TestMethod]), assembly-level GenerateImposter attribute, and solution file
Build & Tour Integration
v2/book/pandocHTML.yaml, v2/.tours/Imposter.tour
Added Imposter.html to pandoc input-files list; created CodeTour with 4 steps guiding through project structure, NuGet reference, and generated imposter file
Category Reorganization (Tests)
v2/rscg_examples_site/docs/Categories/Tests.md, v2/rscg_examples_site/docs/Categories/_PrimitiveTests.mdx, v2/rscg_examples_site/docs/RSCG-Examples/index.md
Reordered Tests category entries, adding Imposter as first item (1), shifting mocklis→2, MockMe→3, etc., advancing TUnit to 7; updated count from 6 to 7 generators in category
Author Documentation
v2/rscg_examples_site/docs/Authors/Bitchiko_Tchelidze.md
Added new author profile page for Bitchiko Tchelidze (Imposter creator) with reference count and package/GitHub badges

Estimated code review effort

🎯 3 (Moderate) | ⏱️ ~25 minutes

  • Count consistency verification: Ensure all 245→246 increments are applied consistently across README, HTML pages, JSON files, and component metadata
  • Example code review: Validate IMyClock interface design, TestClock test implementation, and correct usage of GenerateImposter assembly attribute
  • Category reordering: Verify Tests category shift (mocklis moved to position 2, TUnit to 7) is reflected accurately in all three category documentation files with matching metadata (links, badges, dates)
  • Metadata alignment: Confirm description.json, GeneratorDataRec.json, RSCG.json, and documentation all reference consistent author name, NuGet package ID, and GitHub links
  • Documentation completeness: Review Imposter.md for accuracy of feature descriptions, benchmark data, and code examples

Poem

🐰 A mock arrives in the RSCG fold,
Imposter, the 246th to behold!
Test doubles dancing, interfaces spun,
By Bitchiko's magic, the work is done,
Our catalog grows, one more in the sun!

Pre-merge checks and finishing touches

❌ Failed checks (1 warning, 1 inconclusive)
Check name Status Explanation Resolution
Docstring Coverage ⚠️ Warning Docstring coverage is 0.00% which is insufficient. The required threshold is 80.00%. You can run @coderabbitai generate docstrings to improve docstring coverage.
Title check ❓ Inconclusive The title 'first version' is vague and generic, providing no meaningful information about the changeset's content or purpose. Replace with a descriptive title that summarizes the main change, such as 'Add Imposter RSCG example (nr 246)' or 'Add Imposter generator documentation and examples'.
✅ Passed checks (1 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
✨ Finishing touches
  • 📝 Generate docstrings
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Post copyable unit tests in a comment
  • Commit unit tests in branch Imposter

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

Copy link

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 9

🧹 Nitpick comments (2)
v2/rscg_examples/Imposter/src/MockData/IMyClock.cs (1)

1-7: Drop redundant public modifiers on interface members.
Interface members are implicitly public; this reads cleaner without them.

 public interface IMyClock
 {
-    public DateTime GetNow();
-    public DateTime GetUtcNow();
-    
+    DateTime GetNow();
+    DateTime GetUtcNow();
 }
v2/rscg_examples_site/docs/RSCG-Examples/Imposter.md (1)

314-1065: (Docs snippet) Consider trimming the generated .g.cs excerpt or ensuring fences can’t drift.
A huge embedded generated file makes fence mistakes more likely and makes markdownlint noisier; a shorter excerpt + a link to the generated file image is usually enough for the example.

📜 Review details

Configuration used: CodeRabbit UI

Review profile: CHILL

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between ca5129e and f7aa2a7.

⛔ Files ignored due to path filters (3)
  • v2/Generator/all.csv is excluded by !**/*.csv
  • v2/rscg_examples_site/static/exports/RSCG.xlsx is excluded by !**/*.xlsx
  • v2/rscg_examples_site/static/sources/Imposter.zip is excluded by !**/*.zip
📒 Files selected for processing (26)
  • README.md (2 hunks)
  • later.md (1 hunks)
  • v2/.tours/Imposter.tour (1 hunks)
  • v2/RSCGExamplesData/GeneratorDataRec.json (1 hunks)
  • v2/book/examples/Imposter.html (1 hunks)
  • v2/book/list.html (2 hunks)
  • v2/book/pandocHTML.yaml (1 hunks)
  • v2/rscg_examples/Imposter/description.json (1 hunks)
  • v2/rscg_examples/Imposter/nuget.txt (1 hunks)
  • v2/rscg_examples/Imposter/readme.txt (1 hunks)
  • v2/rscg_examples/Imposter/src/MockData/IMyClock.cs (1 hunks)
  • v2/rscg_examples/Imposter/src/MockData/MockData.csproj (1 hunks)
  • v2/rscg_examples/Imposter/src/MockTest.slnx (1 hunks)
  • v2/rscg_examples/Imposter/src/TestClock/TestClock.cs (1 hunks)
  • v2/rscg_examples/Imposter/src/TestClock/TestClock.csproj (1 hunks)
  • v2/rscg_examples/Imposter/src/TestClock/Usings.cs (1 hunks)
  • v2/rscg_examples/Imposter/video.json (1 hunks)
  • v2/rscg_examples_site/docs/Authors/Bitchiko_Tchelidze.md (1 hunks)
  • v2/rscg_examples_site/docs/Categories/Tests.md (1 hunks)
  • v2/rscg_examples_site/docs/Categories/_PrimitiveTests.mdx (1 hunks)
  • v2/rscg_examples_site/docs/RSCG-Examples/Imposter.md (1 hunks)
  • v2/rscg_examples_site/docs/RSCG-Examples/index.md (4 hunks)
  • v2/rscg_examples_site/docs/about.md (1 hunks)
  • v2/rscg_examples_site/docs/indexRSCG.md (2 hunks)
  • v2/rscg_examples_site/src/components/HomepageFeatures/index.js (1 hunks)
  • v2/rscg_examples_site/static/exports/RSCG.json (1 hunks)
🧰 Additional context used
🧬 Code graph analysis (1)
v2/rscg_examples/Imposter/src/TestClock/TestClock.cs (1)
v2/rscg_examples/Imposter/src/MockData/IMyClock.cs (2)
  • DateTime (4-4)
  • DateTime (5-5)
🪛 Biome (2.1.2)
v2/rscg_examples/Imposter/video.json

[error] 35-36: Property key must be double quoted

(parse)


[error] 36-36: unexpected character =

(parse)


[error] 36-36: expected , but instead found " "

Remove " "

(parse)


[error] 36-36: expected : but instead found }

Remove }

(parse)


[error] 37-38: Expected an array, an object, or a literal but instead found ']'.

Expected an array, an object, or a literal here.

(parse)

🪛 LanguageTool
v2/rscg_examples/Imposter/readme.txt

[uncategorized] ~12-~12: If this is a compound adjective that modifies the following noun, use a hyphen.
Context: ...ing roslyn source generators to achieve high performance and low memory footprint. Visit the [D...

(EN_COMPOUND_ADJECTIVE_INTERNAL)


[grammar] ~38-~38: Ensure spelling is correct
Context: ...tests* project, this will generate an imoster csharp [assembly: GenerateImposter(typeof(Application.Domain.ICalculator))] Then use can use the generated imposter ...

(QB_NEW_EN_ORTHOGRAPHY_ERROR_IDS_1)

v2/rscg_examples_site/docs/Categories/_PrimitiveTests.mdx

[style] ~9-~9: Three successive sentences begin with the same word. Consider rewording the sentence or use a thesaurus to find a synonym.
Context: ...2025-02-10 4 MSTest Nuget ![GitHub Repo stars](https://img.shie...

(ENGLISH_WORD_REPEAT_BEGINNING_RULE)


[style] ~15-~15: Using many exclamation marks might seem excessive (in this case: 14 exclamation marks for a text that’s 1729 characters long)
Context: ...) 2023-04-16 7 TUnit Nuget ![GitHub Repo stars](https://img.shields....

(EN_EXCESSIVE_EXCLAMATION)

v2/rscg_examples_site/docs/RSCG-Examples/Imposter.md

[uncategorized] ~63-~63: If this is a compound adjective that modifies the following noun, use a hyphen.
Context: ...ing roslyn source generators to achieve high performance and low memory footprint. Visit the [D...

(EN_COMPOUND_ADJECTIVE_INTERNAL)


[grammar] ~89-~89: Ensure spelling is correct
Context: ...tests* project, this will generate an imoster csharp [assembly: GenerateImposter(typeof(Application.Domain.ICalculator))] Then use can use the generated imposter ...

(QB_NEW_EN_ORTHOGRAPHY_ERROR_IDS_1)

🪛 markdownlint-cli2 (0.18.1)
v2/rscg_examples_site/docs/indexRSCG.md

23-23: Spaces inside link text

(MD039, no-space-in-links)

v2/rscg_examples_site/docs/RSCG-Examples/Imposter.md

34-34: Bare URL used

(MD034, no-bare-urls)


37-37: Bare URL used

(MD034, no-bare-urls)


39-39: Bare URL used

(MD034, no-bare-urls)


118-118: Bare URL used

(MD034, no-bare-urls)


122-122: Unordered list indentation
Expected: 0; Actual: 1

(MD007, ul-indent)


123-123: Unordered list indentation
Expected: 0; Actual: 1

(MD007, ul-indent)


124-124: Unordered list indentation
Expected: 0; Actual: 1

(MD007, ul-indent)


125-125: Unordered list indentation
Expected: 0; Actual: 1

(MD007, ul-indent)


126-126: Unordered list indentation
Expected: 0; Actual: 1

(MD007, ul-indent)


127-127: Unordered list indentation
Expected: 0; Actual: 1

(MD007, ul-indent)


128-128: Unordered list indentation
Expected: 0; Actual: 1

(MD007, ul-indent)


129-129: Unordered list indentation
Expected: 0; Actual: 1

(MD007, ul-indent)


130-130: Unordered list indentation
Expected: 0; Actual: 1

(MD007, ul-indent)


131-131: Unordered list indentation
Expected: 0; Actual: 1

(MD007, ul-indent)


190-190: Fenced code blocks should have a language specified

(MD040, fenced-code-language)


201-201: Bare URL used

(MD034, no-bare-urls)


252-252: Hard tabs
Column: 1

(MD010, no-hard-tabs)


253-253: Hard tabs
Column: 1

(MD010, no-hard-tabs)


254-254: Hard tabs
Column: 1

(MD010, no-hard-tabs)


256-256: Hard tabs
Column: 1

(MD010, no-hard-tabs)


257-257: Hard tabs
Column: 1

(MD010, no-hard-tabs)


258-258: Hard tabs
Column: 1

(MD010, no-hard-tabs)


259-259: Hard tabs
Column: 1

(MD010, no-hard-tabs)


334-334: Spaces inside emphasis markers

(MD037, no-space-in-emphasis)


336-336: Spaces inside emphasis markers

(MD037, no-space-in-emphasis)


339-339: Spaces inside emphasis markers

(MD037, no-space-in-emphasis)


342-342: Code block style
Expected: fenced; Actual: indented

(MD046, code-block-style)


1062-1062: No space after hash on atx style heading

(MD018, no-missing-space-atx)


1063-1063: No space after hash on atx style heading

(MD018, no-missing-space-atx)


1065-1065: Fenced code blocks should have a language specified

(MD040, fenced-code-language)

⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (1)
  • GitHub Check: call-workflow-passing-data / build (24.3.0)
🔇 Additional comments (19)
v2/book/pandocHTML.yaml (1)

258-263: Good add—just ensure the referenced HTML file exists at build time.

v2/rscg_examples_site/docs/about.md (1)

8-10: Count bump to 246 is consistent with the new example.

v2/rscg_examples_site/src/components/HomepageFeatures/index.js (1)

5-14: Homepage count updated; no functional impact.

later.md (1)

1-4: Doc “Latest Update” date bump looks fine.

v2/RSCGExamplesData/GeneratorDataRec.json (1)

1488-1494: Entry addition is correctly formatted.

The Imposter entry has been added with appropriate metadata: ID, Category 13 (Tests), start date 2025-12-13, and show flag enabled. JSON structure is consistent with surrounding entries.

v2/book/list.html (2)

20-20: Heading count updated correctly.

The heading has been updated from "245 RSCG" to "246 RSCG" to reflect the addition of Imposter as the 246th entry.


1009-1012: New table row properly added.

The Imposter entry has been correctly inserted as row 246 with proper HTML structure and link to examples/Imposter.html, following the established table format.

v2/rscg_examples_site/static/exports/RSCG.json (1)

1965-1972: Imposter catalog entry is correctly structured.

The new Imposter object includes all required fields (Name, Link, NuGet, Source, Category, AddedOn) with valid URLs and metadata consistent with the generator registry. Category "Tests" aligns with other registrations in the PR.

v2/rscg_examples/Imposter/src/TestClock/Usings.cs (1)

1-4: Global usings and assembly attribute are correctly formatted.

Line 1-2 declare global using directives for test framework and Imposter abstractions. Line 4 defines the assembly-level GenerateImposter attribute targeting MockData.IMyClock. C# 10+ global using syntax is correct, and the attribute invocation matches expected generator API.

v2/rscg_examples/Imposter/nuget.txt (1)

1-1: Package description is concise and informative.

The single-line description clearly conveys Imposter's purpose (source-generated test doubles), key benefit (zero runtime overhead), and functionality (mock/stub generation via GenerateImposterAttribute). Appropriate for a NuGet package summary.

v2/rscg_examples_site/docs/indexRSCG.md (2)

10-10: Count metadata updated consistently.

The heading (line 10) and introductory text (line 12) have been updated from 245 to 246 entries to reflect the addition of Imposter, maintaining consistency with other documentation files in the PR.

Also applies to: 12-12


23-23: Imposter entry correctly added to documentation table.

The new row 246 is properly formatted with Imposter metadata (author attribution, date, and Tests category link), following the established markdown table structure and consistent with surrounding entries.

v2/rscg_examples/Imposter/description.json (1)

1-22: Generator metadata is properly structured.

The description.json file contains valid JSON with complete generator metadata (name, NuGet, GitHub links, author) and relevant demonstration configuration (csprojDemo, csFiles). All required fields are present and correctly formatted. References to TestClock.csproj and related test files align with the example project structure.

v2/rscg_examples/Imposter/src/MockTest.slnx (1)

1-4: LGTM: minimal solution wiring is clear and correct.

v2/rscg_examples_site/docs/RSCG-Examples/index.md (1)

3-5: LGTM: counts + Tests category wiring updated consistently (including Mermaid node).

Also applies to: 1471-1507, 2031-2032

v2/rscg_examples/Imposter/src/TestClock/TestClock.csproj (1)

4-29: Consider upgrading test framework packages for native net10.0 support.
Microsoft.NET.Test.Sdk 17.5.0, MSTest.TestAdapter/Framework 2.2.10, and coverlet.collector 3.2.0 are compatible with net10.0 but lack native net10.0 builds—they work via compatibility inference. For first-class net10.0 testing support, upgrade to newer versions of these packages that explicitly target net10.0, or consider Microsoft.Testing.Platform as an alternative.

README.md (2)

1-7: Header/count and “Latest Update” date are consistent with the new entry.
No issues spotted with the 246 count and 2025-12-13 update.


27-49: New “Imposter” catalog entry looks correctly integrated (numbering/date/links).
The numbering (246) and “Generated on: 2025-12-13” align with the “Latest Update” date and the link targets follow the existing conventions.

v2/rscg_examples_site/docs/Categories/_PrimitiveTests.mdx (1)

3-15: Tests category list update (reorder + new Imposter entry) looks consistent.
Links, badges, and dates appear well-formed and the numbering is sequential after the reorder.

Comment on lines +6 to +31
[
{
"file": "rscg_examples/Imposter/src/TestClock/TestClock.csproj",
"description": "First, we add Nuget [Imposter](https://www.nuget.org/packages/Imposter/) in csproj ",
"pattern": "Imposter"
}

,{
"file": "rscg_examples/Imposter/src/TestClock/Usings.cs",
"description": "File Usings.cs ",
"pattern": "this is the code"
}

,{
"file": "rscg_examples/Imposter/src/TestClock/TestClock.cs",
"description": "File TestClock.cs ",
"pattern": "this is the code"
}


,{
"file": "rscg_examples/Imposter/src/TestClock/obj/GX/Imposter.CodeGenerator/Imposter.CodeGenerator.CodeGenerator.ImposterGenerator/IMyClockImposter.g.cs",
"description": "Generated File 1 from 1 : IMyClockImposter.g.cs ",
"line": 1
}

Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟠 Major

🧩 Analysis chain

🏁 Script executed:

# Check if the generated file is present in the repo
find . -name "IMyClockImposter.g.cs" -type f 2>/dev/null | head -20

Repository: ignatandrei/RSCG_Examples

Length of output: 51


🏁 Script executed:

# Check .gitignore to see if obj/ is ignored
cat .gitignore 2>/dev/null | grep -E "^obj/|^.*obj/.*" | head -20

Repository: ignatandrei/RSCG_Examples

Length of output: 51


🏁 Script executed:

# Look for the Usings.cs and TestClock.cs files to check patterns
find . -path "*/Imposter/src/TestClock/Usings.cs" -o -path "*/Imposter/src/TestClock/TestClock.cs" | head -20

Repository: ignatandrei/RSCG_Examples

Length of output: 175


🏁 Script executed:

# Check if there are any checked-in generated files under src/
find . -path "*/Imposter/src/*/generated/*" -o -path "*/Imposter/src/*/*.g.cs" 2>/dev/null | head -20

Repository: ignatandrei/RSCG_Examples

Length of output: 51


🏁 Script executed:

# Read Usings.cs to check for the pattern "this is the code"
cat -n ./v2/rscg_examples/Imposter/src/TestClock/Usings.cs

Repository: ignatandrei/RSCG_Examples

Length of output: 256


🏁 Script executed:

# Read TestClock.cs to check for the pattern "this is the code"
cat -n ./v2/rscg_examples/Imposter/src/TestClock/TestClock.cs

Repository: ignatandrei/RSCG_Examples

Length of output: 606


🏁 Script executed:

# Verify the tour file exists and show its full content
cat -n ./v2/.tours/Imposter.tour

Repository: ignatandrei/RSCG_Examples

Length of output: 1292


Fix tour patterns and remove reference to build-generated file.

The patterns "this is the code" (lines 16 and 22) do not match any content in Usings.cs or TestClock.cs. Replace them with actual matching text from those files, or omit the pattern field.

The referenced generated file at obj/GX/Imposter.CodeGenerator/.../IMyClockImposter.g.cs (line 27) does not exist in the repository and is only created during build. Remove this step or replace it with a checked-in snapshot of the generated output under a stable path like src/TestClock/generated/.

🤖 Prompt for AI Agents
In v2/.tours/Imposter.tour around lines 6 to 31, the tour uses non-matching
patterns ("this is the code") for Usings.cs and TestClock.cs and references a
build-generated file under obj/GX/.../IMyClockImposter.g.cs that doesn't exist
in the repo; update the two entries to use real text that appears in those files
(or remove the pattern field entirely) and delete or replace the generated-file
step with a stable, checked-in generated snapshot (for example move the
generated output to src/TestClock/generated/ and reference that path) so the
tour only points to files that exist in source control.

Comment on lines +9 to +16
<p>Author :Bitchiko Tchelidze</p>

<p>Source: <a href="https://github.com/themidnightgospel/Imposter" target="_blank">https://github.com/themidnightgospel/Imposter</a> </p>

<h2>About</h2>

Generate classes from interfaces and allows return of mock data.Useful for testing and prototyping.

Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟡 Minor

Fix minor spacing/typos in public HTML text.

-<p>Author :Bitchiko Tchelidze</p>
+<p>Author : Bitchiko Tchelidze</p>
@@
-Generate classes from interfaces and allows return of mock data.Useful for testing and prototyping.
+Generate classes from interfaces and allows return of mock data. Useful for testing and prototyping.
📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
<p>Author :Bitchiko Tchelidze</p>
<p>Source: <a href="https://github.com/themidnightgospel/Imposter" target="_blank">https://github.com/themidnightgospel/Imposter</a> </p>
<h2>About</h2>
Generate classes from interfaces and allows return of mock data.Useful for testing and prototyping.
<p>Author : Bitchiko Tchelidze</p>
<p>Source: <a href="https://github.com/themidnightgospel/Imposter" target="_blank">https://github.com/themidnightgospel/Imposter</a> </p>
<h2>About</h2>
Generate classes from interfaces and allows return of mock data. Useful for testing and prototyping.
🤖 Prompt for AI Agents
In v2/book/examples/Imposter.html around lines 9–16, fix minor spacing and typos
in the public text: change "Author :Bitchiko Tchelidze" to "Author: Bitchiko
Tchelidze", ensure a space after "Source:" if missing, and rewrite the
description sentence to proper grammar and spacing — e.g. "Generates classes
from interfaces and allows returning mock data. Useful for testing and
prototyping." Update the HTML text accordingly.

Comment on lines +1 to +7
# Author : Bitchiko Tchelidze

Number RSCG: 1


1 [Imposter](/docs/Imposter) [![Nuget](https://img.shields.io/nuget/dt/Imposter?label=Imposter)](https://www.nuget.org/packages/Imposter/) ![GitHub Repo stars](https://img.shields.io/github/stars/themidnightgospel/Imposter?style=social) 2025-12-13

Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟡 Minor

Fix Markdown indentation to avoid rendering as a code block.

Consider:

-        1 [Imposter](/docs/Imposter) [![Nuget](https://img.shields.io/nuget/dt/Imposter?label=Imposter)](https://www.nuget.org/packages/Imposter/) ![GitHub Repo stars](https://img.shields.io/github/stars/themidnightgospel/Imposter?style=social) 2025-12-13
+1. [Imposter](/docs/Imposter) [![Nuget](https://img.shields.io/nuget/dt/Imposter?label=Imposter)](https://www.nuget.org/packages/Imposter/) ![GitHub Repo stars](https://img.shields.io/github/stars/themidnightgospel/Imposter?style=social) 2025-12-13
📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
# Author : Bitchiko Tchelidze
Number RSCG: 1
1 [Imposter](/docs/Imposter) [![Nuget](https://img.shields.io/nuget/dt/Imposter?label=Imposter)](https://www.nuget.org/packages/Imposter/) ![GitHub Repo stars](https://img.shields.io/github/stars/themidnightgospel/Imposter?style=social) 2025-12-13
# Author : Bitchiko Tchelidze
Number RSCG: 1
1. [Imposter](/docs/Imposter) [![Nuget](https://img.shields.io/nuget/dt/Imposter?label=Imposter)](https://www.nuget.org/packages/Imposter/) ![GitHub Repo stars](https://img.shields.io/github/stars/themidnightgospel/Imposter?style=social) 2025-12-13
🤖 Prompt for AI Agents
In v2/rscg_examples_site/docs/Authors/Bitchiko_Tchelidze.md around lines 1 to 7
the block starting with the numbered item is indented and being rendered as a
code block; remove the leading indentation and ensure proper blank lines so the
list renders as Markdown (e.g., unindent the "1 [Imposter]..." line to column 1,
keep a blank line above the list, and use standard list/item formatting).

Comment on lines +3 to 18
Number RSCG: 7

1 [mocklis](/docs/mocklis) [![Nuget](https://img.shields.io/nuget/dt/mocklis?label=mocklis)](https://www.nuget.org/packages/mocklis/) ![GitHub Repo stars](https://img.shields.io/github/stars/mocklis/mocklis?style=social) 2024-01-03
1 [Imposter](/docs/Imposter) [![Nuget](https://img.shields.io/nuget/dt/Imposter?label=Imposter)](https://www.nuget.org/packages/Imposter/) ![GitHub Repo stars](https://img.shields.io/github/stars/themidnightgospel/Imposter?style=social) 2025-12-13

2 [MockMe](/docs/MockMe) [![Nuget](https://img.shields.io/nuget/dt/MockMe?label=MockMe)](https://www.nuget.org/packages/MockMe/) ![GitHub Repo stars](https://img.shields.io/github/stars/connorivy/MockMe?style=social) 2025-02-10
2 [mocklis](/docs/mocklis) [![Nuget](https://img.shields.io/nuget/dt/mocklis?label=mocklis)](https://www.nuget.org/packages/mocklis/) ![GitHub Repo stars](https://img.shields.io/github/stars/mocklis/mocklis?style=social) 2024-01-03

3 [MSTest](/docs/MSTest) [![Nuget](https://img.shields.io/nuget/dt/MSTest.SourceGeneration?label=MSTest.SourceGeneration)](https://www.nuget.org/packages/MSTest.SourceGeneration/) ![GitHub Repo stars](https://img.shields.io/github/stars/microsoft/testfx?style=social) 2024-04-04
3 [MockMe](/docs/MockMe) [![Nuget](https://img.shields.io/nuget/dt/MockMe?label=MockMe)](https://www.nuget.org/packages/MockMe/) ![GitHub Repo stars](https://img.shields.io/github/stars/connorivy/MockMe?style=social) 2025-02-10

4 [Ridge](/docs/Ridge) [![Nuget](https://img.shields.io/nuget/dt/Ridge?label=Ridge)](https://www.nuget.org/packages/Ridge/) ![GitHub Repo stars](https://img.shields.io/github/stars/Melchy/Ridge?style=social) 2023-08-20
4 [MSTest](/docs/MSTest) [![Nuget](https://img.shields.io/nuget/dt/MSTest.SourceGeneration?label=MSTest.SourceGeneration)](https://www.nuget.org/packages/MSTest.SourceGeneration/) ![GitHub Repo stars](https://img.shields.io/github/stars/microsoft/testfx?style=social) 2024-04-04

5 [Rocks](/docs/Rocks) [![Nuget](https://img.shields.io/nuget/dt/Rocks?label=Rocks)](https://www.nuget.org/packages/Rocks/) ![GitHub Repo stars](https://img.shields.io/github/stars/JasonBock/Rocks?style=social) 2023-04-16
5 [Ridge](/docs/Ridge) [![Nuget](https://img.shields.io/nuget/dt/Ridge?label=Ridge)](https://www.nuget.org/packages/Ridge/) ![GitHub Repo stars](https://img.shields.io/github/stars/Melchy/Ridge?style=social) 2023-08-20

6 [TUnit](/docs/TUnit) [![Nuget](https://img.shields.io/nuget/dt/TUnit?label=TUnit)](https://www.nuget.org/packages/TUnit/) ![GitHub Repo stars](https://img.shields.io/github/stars/thomhurst/TUnit?style=social) 2025-11-08
6 [Rocks](/docs/Rocks) [![Nuget](https://img.shields.io/nuget/dt/Rocks?label=Rocks)](https://www.nuget.org/packages/Rocks/) ![GitHub Repo stars](https://img.shields.io/github/stars/JasonBock/Rocks?style=social) 2023-04-16

7 [TUnit](/docs/TUnit) [![Nuget](https://img.shields.io/nuget/dt/TUnit?label=TUnit)](https://www.nuget.org/packages/TUnit/) ![GitHub Repo stars](https://img.shields.io/github/stars/thomhurst/TUnit?style=social) 2025-11-08
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟡 Minor

Remove leading indentation so the list renders correctly.

Example adjustment:

-        1 [Imposter](/docs/Imposter) ...
+1. [Imposter](/docs/Imposter) ...
...
-        7 [TUnit](/docs/TUnit) ...
+7. [TUnit](/docs/TUnit) ...
📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
Number RSCG: 7
1 [mocklis](/docs/mocklis) [![Nuget](https://img.shields.io/nuget/dt/mocklis?label=mocklis)](https://www.nuget.org/packages/mocklis/) ![GitHub Repo stars](https://img.shields.io/github/stars/mocklis/mocklis?style=social) 2024-01-03
1 [Imposter](/docs/Imposter) [![Nuget](https://img.shields.io/nuget/dt/Imposter?label=Imposter)](https://www.nuget.org/packages/Imposter/) ![GitHub Repo stars](https://img.shields.io/github/stars/themidnightgospel/Imposter?style=social) 2025-12-13
2 [MockMe](/docs/MockMe) [![Nuget](https://img.shields.io/nuget/dt/MockMe?label=MockMe)](https://www.nuget.org/packages/MockMe/) ![GitHub Repo stars](https://img.shields.io/github/stars/connorivy/MockMe?style=social) 2025-02-10
2 [mocklis](/docs/mocklis) [![Nuget](https://img.shields.io/nuget/dt/mocklis?label=mocklis)](https://www.nuget.org/packages/mocklis/) ![GitHub Repo stars](https://img.shields.io/github/stars/mocklis/mocklis?style=social) 2024-01-03
3 [MSTest](/docs/MSTest) [![Nuget](https://img.shields.io/nuget/dt/MSTest.SourceGeneration?label=MSTest.SourceGeneration)](https://www.nuget.org/packages/MSTest.SourceGeneration/) ![GitHub Repo stars](https://img.shields.io/github/stars/microsoft/testfx?style=social) 2024-04-04
3 [MockMe](/docs/MockMe) [![Nuget](https://img.shields.io/nuget/dt/MockMe?label=MockMe)](https://www.nuget.org/packages/MockMe/) ![GitHub Repo stars](https://img.shields.io/github/stars/connorivy/MockMe?style=social) 2025-02-10
4 [Ridge](/docs/Ridge) [![Nuget](https://img.shields.io/nuget/dt/Ridge?label=Ridge)](https://www.nuget.org/packages/Ridge/) ![GitHub Repo stars](https://img.shields.io/github/stars/Melchy/Ridge?style=social) 2023-08-20
4 [MSTest](/docs/MSTest) [![Nuget](https://img.shields.io/nuget/dt/MSTest.SourceGeneration?label=MSTest.SourceGeneration)](https://www.nuget.org/packages/MSTest.SourceGeneration/) ![GitHub Repo stars](https://img.shields.io/github/stars/microsoft/testfx?style=social) 2024-04-04
5 [Rocks](/docs/Rocks) [![Nuget](https://img.shields.io/nuget/dt/Rocks?label=Rocks)](https://www.nuget.org/packages/Rocks/) ![GitHub Repo stars](https://img.shields.io/github/stars/JasonBock/Rocks?style=social) 2023-04-16
5 [Ridge](/docs/Ridge) [![Nuget](https://img.shields.io/nuget/dt/Ridge?label=Ridge)](https://www.nuget.org/packages/Ridge/) ![GitHub Repo stars](https://img.shields.io/github/stars/Melchy/Ridge?style=social) 2023-08-20
6 [TUnit](/docs/TUnit) [![Nuget](https://img.shields.io/nuget/dt/TUnit?label=TUnit)](https://www.nuget.org/packages/TUnit/) ![GitHub Repo stars](https://img.shields.io/github/stars/thomhurst/TUnit?style=social) 2025-11-08
6 [Rocks](/docs/Rocks) [![Nuget](https://img.shields.io/nuget/dt/Rocks?label=Rocks)](https://www.nuget.org/packages/Rocks/) ![GitHub Repo stars](https://img.shields.io/github/stars/JasonBock/Rocks?style=social) 2023-04-16
7 [TUnit](/docs/TUnit) [![Nuget](https://img.shields.io/nuget/dt/TUnit?label=TUnit)](https://www.nuget.org/packages/TUnit/) ![GitHub Repo stars](https://img.shields.io/github/stars/thomhurst/TUnit?style=social) 2025-11-08
Number RSCG: 7
1. [Imposter](/docs/Imposter) [![Nuget](https://img.shields.io/nuget/dt/Imposter?label=Imposter)](https://www.nuget.org/packages/Imposter/) ![GitHub Repo stars](https://img.shields.io/github/stars/themidnightgospel/Imposter?style=social) 2025-12-13
2. [mocklis](/docs/mocklis) [![Nuget](https://img.shields.io/nuget/dt/mocklis?label=mocklis)](https://www.nuget.org/packages/mocklis/) ![GitHub Repo stars](https://img.shields.io/github/stars/mocklis/mocklis?style=social) 2024-01-03
3. [MockMe](/docs/MockMe) [![Nuget](https://img.shields.io/nuget/dt/MockMe?label=MockMe)](https://www.nuget.org/packages/MockMe/) ![GitHub Repo stars](https://img.shields.io/github/stars/connorivy/MockMe?style=social) 2025-02-10
4. [MSTest](/docs/MSTest) [![Nuget](https://img.shields.io/nuget/dt/MSTest.SourceGeneration?label=MSTest.SourceGeneration)](https://www.nuget.org/packages/MSTest.SourceGeneration/) ![GitHub Repo stars](https://img.shields.io/github/stars/microsoft/testfx?style=social) 2024-04-04
5. [Ridge](/docs/Ridge) [![Nuget](https://img.shields.io/nuget/dt/Ridge?label=Ridge)](https://www.nuget.org/packages/Ridge/) ![GitHub Repo stars](https://img.shields.io/github/stars/Melchy/Ridge?style=social) 2023-08-20
6. [Rocks](/docs/Rocks) [![Nuget](https://img.shields.io/nuget/dt/Rocks?label=Rocks)](https://www.nuget.org/packages/Rocks/) ![GitHub Repo stars](https://img.shields.io/github/stars/JasonBock/Rocks?style=social) 2023-04-16
7. [TUnit](/docs/TUnit) [![Nuget](https://img.shields.io/nuget/dt/TUnit?label=TUnit)](https://www.nuget.org/packages/TUnit/) ![GitHub Repo stars](https://img.shields.io/github/stars/thomhurst/TUnit?style=social) 2025-11-08
🤖 Prompt for AI Agents
v2/rscg_examples_site/docs/Categories/Tests.md around lines 3-18: the numbered
list items are indented with leading spaces which prevents Markdown from
rendering them as a proper list; remove the leading indentation from each list
line so each item starts at column 1 (ensure there is a single blank line
separating the "Number RSCG: 7" heading and the list), keep the inline links and
badges unchanged, and verify the list renders as a normal ordered list after the
change.

Comment on lines +29 to +41
Imposter — Source-generated test doubles, zero runtime overhead. A high-performance Roslyn incremental source generator that produces imposters (mocks/stubs) for interfaces and overridable class members via GenerateImposterAttribute. Ships analyzer + runtime in a single package.

Author: Bitchiko Tchelidze

NuGet:
*https://www.nuget.org/packages/Imposter/*


You can find more details at https://github.com/themidnightgospel/Imposter

Source: https://github.com/themidnightgospel/Imposter

:::
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟠 Major

Fix markdownlint + spelling issues (likely CI-breaking): bare URLs, tabs, list indent, and missing/imbalanced fences.
At minimum: convert bare URLs to links, replace hard tabs with spaces, fix list indentation, ensure every fenced block declares a language and is correctly closed, and fix “imoster”→“imposter”.

Concrete starters (not exhaustive, but addresses the reported rules):

-Author: Bitchiko Tchelidze
+Author: Bitchiko Tchelidze
@@
-NuGet: 
-*https://www.nuget.org/packages/Imposter/*   
+NuGet:
+* [https://www.nuget.org/packages/Imposter/](https://www.nuget.org/packages/Imposter/)
@@
-You can find more details at https://github.com/themidnightgospel/Imposter
+You can find more details at [https://github.com/themidnightgospel/Imposter](https://github.com/themidnightgospel/Imposter)
@@
-Use `[GenerateImposter]` attribute in your **tests** project, this will generate an imoster
+Use `[GenerateImposter]` attribute in your **tests** project; this will generate an imposter
@@
- - [Method Impersonation](...)
+- [Method Impersonation](...)

Also please replace the hard tabs around the csproj snippet (Line 252+ in this file) with spaces to satisfy MD010.

Also applies to: 63-66, 89-100, 118-132, 190-201, 252-260

🧰 Tools
🪛 markdownlint-cli2 (0.18.1)

34-34: Bare URL used

(MD034, no-bare-urls)


37-37: Bare URL used

(MD034, no-bare-urls)


39-39: Bare URL used

(MD034, no-bare-urls)

🤖 Prompt for AI Agents
v2/rscg_examples_site/docs/RSCG-Examples/Imposter.md lines 29-41 (and also
address ranges 63-66, 89-100, 118-132, 190-201, 252-260): the file contains
markdownlint and spelling issues — bare URLs, hard tabs, list indentation
problems, missing/imbalanced fenced-code-block language markers/closures, and a
typo "imoster" — so convert bare URLs into inline markdown links, replace all
hard tabs with spaces (especially around the csproj snippet at 252+ to satisfy
MD010), fix list indentation to use consistent spaces, ensure every fenced block
declares a language (e.g., ```cs or ```xml) and is properly closed, and correct
the spelling "imoster" to "imposter"; apply these fixes across the listed line
ranges and run markdownlint to confirm no remaining violations.

Comment on lines +12 to +15
Imposter is a mocking library that's using roslyn source generators to achieve high performance and low memory footprint.

Visit the [Docs](https://themidnightgospel.github.io/Imposter/) for more information

Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟡 Minor

Fix “imoster” typo + minor grammar polish in README.
Line 38 says “imoster”; should be “imposter”. Also consider “Roslyn” capitalization and “memory-efficient” hyphenation.

-Imposter is a mocking library that's using roslyn source generators to achieve high performance and low memory footprint.
+Imposter is a mocking library that uses Roslyn source generators to achieve high performance and a low memory footprint.
@@
-Use `[GenerateImposter]` attribute in your **tests** project, this will generate an imoster
+Use `[GenerateImposter]` attribute in your **tests** project; this will generate an imposter
@@
-Then use can use the generated imposter in your tests
+Then you can use the generated imposter in your tests

Also applies to: 38-45

🧰 Tools
🪛 LanguageTool

[uncategorized] ~12-~12: If this is a compound adjective that modifies the following noun, use a hyphen.
Context: ...ing roslyn source generators to achieve high performance and low memory footprint. Visit the [D...

(EN_COMPOUND_ADJECTIVE_INTERNAL)

🤖 Prompt for AI Agents
In v2/rscg_examples/Imposter/readme.txt around lines 12-15 and also lines 38-45,
correct the typo "imoster" to "imposter", capitalize "Roslyn", and hyphenate
"memory-efficient" (and optionally "high-performance") for grammar; update the
sentences so they read e.g. "Imposter is a mocking library that uses Roslyn
source generators to achieve high-performance and a memory-efficient footprint."
Ensure consistent capitalization and hyphenation throughout the file.

Comment on lines +3 to +7
<PropertyGroup>
<TargetFramework>net10.0</TargetFramework>
<ImplicitUsings>enable</ImplicitUsings>
<Nullable>enable</Nullable>
</PropertyGroup>
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟡 Minor

🧩 Analysis chain

🏁 Script executed:

# Search for global.json
find . -name "global.json" -type f | head -20

Repository: ignatandrei/RSCG_Examples

Length of output: 51


🏁 Script executed:

# Search for CI configuration files
find . -name "*.yml" -o -name "*.yaml" | grep -E "(\.github|\.gitlab|azure|workflow)" | head -20

Repository: ignatandrei/RSCG_Examples

Length of output: 181


🏁 Script executed:

# Check other .csproj files to see what target frameworks are used
find . -name "*.csproj" -type f | head -20

Repository: ignatandrei/RSCG_Examples

Length of output: 972


🏁 Script executed:

# Look at the specific file and surrounding context
cat -n v2/rscg_examples/Imposter/src/MockData/MockData.csproj | head -20

Repository: ignatandrei/RSCG_Examples

Length of output: 348


🏁 Script executed:

# Examine the CI workflow that compiles
cat -n ./.github/workflows/compile.yml | head -50

Repository: ignatandrei/RSCG_Examples

Length of output: 1050


🏁 Script executed:

# Check what target frameworks other examples use
find ./v2/rscg_examples -name "*.csproj" -type f | head -10 | xargs grep -h "TargetFramework" | sort | uniq

Repository: ignatandrei/RSCG_Examples

Length of output: 250


🏁 Script executed:

# Get more detail on compile.yml
wc -l ./.github/workflows/compile.yml

Repository: ignatandrei/RSCG_Examples

Length of output: 103


🏁 Script executed:

# Check the pr.yml workflow for .NET build steps
cat -n ./.github/workflows/pr.yml | head -80

Repository: ignatandrei/RSCG_Examples

Length of output: 758


🏁 Script executed:

# Search more broadly for .NET/dotnet references in CI files
grep -r "dotnet\|\.NET\|TargetFramework.*10" ./.github/workflows/ 2>/dev/null || echo "No .NET build found in CI"

Repository: ignatandrei/RSCG_Examples

Length of output: 94


🏁 Script executed:

# Check if there are any other .csproj files with net10.0
grep -r "net10.0" ./v2/rscg_examples --include="*.csproj" 2>/dev/null | wc -l

Repository: ignatandrei/RSCG_Examples

Length of output: 71


🌐 Web query:

.NET 10.0 net10.0 target framework release date support

💡 Result:

  • Release date: .NET 10 shipped November 11, 2025. [1]
  • Target framework moniker: use TFM "net10.0" (and platform-specific variants like net10.0-android, net10.0-windows, etc.). [2]
  • Support: .NET 10 is an LTS release and is supported for three years (end of support November 10, 2028). [1][3]

Sources: [1] .NET Blog — Announcing .NET 10; [2] Microsoft Learn — Target frameworks (TFMs); [3] .NET Support Policy / Releases & support.


Using net10.0 is valid but inconsistent with other examples in the repo.

net10.0 is a supported LTS release (released November 11, 2025). However, all other examples in v2/rscg_examples target net7.0, net8.0, or net9.0. Consider using a more widely-supported version for consistency, especially if developers may not have .NET 10 locally installed yet:

-    <TargetFramework>net10.0</TargetFramework>
+    <TargetFramework>net8.0</TargetFramework>
🤖 Prompt for AI Agents
In v2/rscg_examples/Imposter/src/MockData/MockData.csproj around lines 3-7, the
project targets net10.0 which is inconsistent with other examples; change the
<TargetFramework> value to a more widely-used version (for consistency choose
net8.0 or the repo’s most common target like net7.0) so the example builds for
developers without .NET 10, and update any repo documentation or CI that assumes
the project target if necessary.

Comment on lines +9 to +16
public void TestMyClock()
{
var mock = new IMyClockImposter();
mock.GetUtcNow().Returns(DateTime.Now.AddYears(-1));
mock.GetNow().Returns(DateTime.Now.AddYears(-1));
IMyClock clock = mock.Instance();
Assert.AreEqual(DateTime.Now.AddYears(-1).Year, clock.GetNow().Year);
}
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟠 Major

Make the test deterministic (capture a single expected timestamp; use UTC for GetUtcNow).
Current multiple DateTime.Now evaluations can flake; and GetUtcNow should be based on UtcNow (or a fixed constant).

 public void TestMyClock()
 {
     var mock = new IMyClockImposter();
-    mock.GetUtcNow().Returns(DateTime.Now.AddYears(-1));
-    mock.GetNow().Returns(DateTime.Now.AddYears(-1));
+    var expectedLocal = DateTime.Now.AddYears(-1);
+    var expectedUtc = DateTime.UtcNow.AddYears(-1);
+    mock.GetUtcNow().Returns(expectedUtc);
+    mock.GetNow().Returns(expectedLocal);
     IMyClock clock = mock.Instance();
-    Assert.AreEqual(DateTime.Now.AddYears(-1).Year, clock.GetNow().Year);
+    Assert.AreEqual(expectedLocal, clock.GetNow());
 }
🤖 Prompt for AI Agents
In v2/rscg_examples/Imposter/src/TestClock/TestClock.cs around lines 9 to 16,
the test calls DateTime.Now multiple times and uses Now for GetUtcNow which can
introduce flakiness; capture a single timestamp before stubbing (e.g. var
expected = DateTime.UtcNow.AddYears(-1)), use that same expected value for both
mock.GetUtcNow() and mock.GetNow() returns, and assert against expected (prefer
full equality or expected.Year if you only care about year) so the test is
deterministic and GetUtcNow is based on UTC.

Comment on lines +35 to +37
{"typeStep":"browser","arg":"https://ignatandrei.github.io/RSCG_Examples/v2/docs/Imposter#download-example-net--c-",
SpeakTest=" "},
{"typeStep":"waitseconds","arg":"30"},
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🔴 Critical

Critical: Fix invalid JSON syntax.

Lines 35–36 contain malformed JSON that prevents the file from parsing. The property SpeakTest=" " uses an equals sign instead of proper JSON syntax (colon). This breaks the entire JSON file.

Option 1 (recommended): Remove the invalid property line:

 {"typeStep":"browser","arg":"https://ignatandrei.github.io/RSCG_Examples/v2/docs/Imposter#download-example-net--c-"
-SpeakTest=" "},
+},

Option 2 (if property is intentional): Use proper JSON property syntax:

 {"typeStep":"browser","arg":"https://ignatandrei.github.io/RSCG_Examples/v2/docs/Imposter#download-example-net--c-",
-SpeakTest=" "},
+"speakTest":""},
📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
{"typeStep":"browser","arg":"https://ignatandrei.github.io/RSCG_Examples/v2/docs/Imposter#download-example-net--c-",
SpeakTest=" "},
{"typeStep":"waitseconds","arg":"30"},
{"typeStep":"browser","arg":"https://ignatandrei.github.io/RSCG_Examples/v2/docs/Imposter#download-example-net--c-",
"speakTest":""},
{"typeStep":"waitseconds","arg":"30"},
🧰 Tools
🪛 Biome (2.1.2)

[error] 35-36: Property key must be double quoted

(parse)


[error] 36-36: unexpected character =

(parse)


[error] 36-36: expected , but instead found " "

Remove " "

(parse)


[error] 36-36: expected : but instead found }

Remove }

(parse)

🤖 Prompt for AI Agents
In v2/rscg_examples/Imposter/video.json around lines 35 to 37, the JSON is
malformed because the property uses an equals sign (SpeakTest=" ") instead of a
colon; remove that invalid property line or replace it with valid JSON property
syntax (use a colon and quoted key/value) so the surrounding array/object
remains valid and the file can parse.

@ignatandrei ignatandrei merged commit 2f0661d into main Dec 14, 2025
3 checks passed
@ignatandrei ignatandrei deleted the Imposter branch December 14, 2025 15:22
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants