From 9130cdd66fabf80f7873f3f75cd2df503692c9fc Mon Sep 17 00:00:00 2001 From: 6d486f49 Date: Thu, 18 Jun 2026 15:00:53 -0400 Subject: [PATCH] Cleanup, grammar fixes, and build fix --- GSR/Build/Program.cs | 14 +++- GSR/Model/GameDoc.cs | 1 + GSR/Model/GeneratedData.cs | 28 ++++--- GSR/Web/Layout/MainLayout.razor | 3 - GSR/Web/Layout/NavMenu.razor | 16 ---- GSR/Web/Layout/NavMenu.razor.css | 78 ------------------- GSR/Web/Pages/Games.razor | 55 ------------- GSR/Web/Pages/Home.razor | 53 +++++++++++++ gsr.docs/.obsidian/types.json | 8 ++ gsr.docs/.obsidian/workspace.json | 14 ++-- gsr.docs/Ashes Reborn.md | 1 + gsr.docs/Chrono CCG.md | 3 +- gsr.docs/Earthborne Trailblazers.md | 1 + gsr.docs/IMMORTAL Gates of Pyre.md | 3 + gsr.docs/Overview.md | 7 +- gsr.docs/Path of Exile 2.md | 1 + gsr.docs/ZeroSpace.md | 1 + {gsp.tasks => gsr.tasks}/.obsidian/app.json | 0 .../.obsidian/appearance.json | 0 .../.obsidian/community-plugins.json | 0 .../.obsidian/core-plugins.json | 0 .../plugins/kanban-bases-view/main.js | 0 .../plugins/kanban-bases-view/manifest.json | 0 .../plugins/kanban-bases-view/styles.css | 0 .../.obsidian/workspace.json | 15 ++-- .../Generate a Website.md | 0 {gsp.tasks => gsr.tasks}/Task.md | 0 {gsp.tasks => gsr.tasks}/_AI Tasks.base | 0 {gsp.tasks => gsr.tasks}/_Tasks.base | 0 29 files changed, 115 insertions(+), 187 deletions(-) delete mode 100644 GSR/Web/Layout/NavMenu.razor delete mode 100644 GSR/Web/Layout/NavMenu.razor.css delete mode 100644 GSR/Web/Pages/Games.razor create mode 100644 gsr.docs/.obsidian/types.json rename {gsp.tasks => gsr.tasks}/.obsidian/app.json (100%) rename {gsp.tasks => gsr.tasks}/.obsidian/appearance.json (100%) rename {gsp.tasks => gsr.tasks}/.obsidian/community-plugins.json (100%) rename {gsp.tasks => gsr.tasks}/.obsidian/core-plugins.json (100%) rename {gsp.tasks => gsr.tasks}/.obsidian/plugins/kanban-bases-view/main.js (100%) rename {gsp.tasks => gsr.tasks}/.obsidian/plugins/kanban-bases-view/manifest.json (100%) rename {gsp.tasks => gsr.tasks}/.obsidian/plugins/kanban-bases-view/styles.css (100%) rename {gsp.tasks => gsr.tasks}/.obsidian/workspace.json (94%) rename {gsp.tasks => gsr.tasks}/Generate a Website.md (100%) rename {gsp.tasks => gsr.tasks}/Task.md (100%) rename {gsp.tasks => gsr.tasks}/_AI Tasks.base (100%) rename {gsp.tasks => gsr.tasks}/_Tasks.base (100%) diff --git a/GSR/Build/Program.cs b/GSR/Build/Program.cs index e773c83..950a42f 100644 --- a/GSR/Build/Program.cs +++ b/GSR/Build/Program.cs @@ -2,8 +2,10 @@ using Markdig; using Model; -var docsDir = Path.GetFullPath(args.Length > 0 ? args[0] : Path.Combine("..", "..", "gsr.docs")); -var outputDir = Path.GetFullPath(args.Length > 1 ? args[1] : Path.Combine("..", "Model")); +var repoRoot = Path.GetFullPath(Path.Combine(AppContext.BaseDirectory, "..", "..", "..", "..", "..")); + +var docsDir = Path.GetFullPath(args.Length > 0 ? args[0] : Path.Combine(repoRoot, "gsr.docs")); +var outputDir = Path.GetFullPath(args.Length > 1 ? args[1] : Path.Combine(repoRoot, "GSR", "Model")); var pipeline = new MarkdownPipelineBuilder().UseAdvancedExtensions().Build(); @@ -17,6 +19,7 @@ foreach (var file in Directory.EnumerateFiles(docsDir, "*.md")) string body; var category = string.Empty; + bool? isVisible = true; string? link = null; string? git = null; @@ -42,6 +45,7 @@ foreach (var file in Directory.EnumerateFiles(docsDir, "*.md")) { case "category": category = val; break; case "link": link = val; break; + case "isVisible": isVisible = bool.Parse(val); break; case "git": git = val; break; } } @@ -70,7 +74,8 @@ foreach (var file in Directory.EnumerateFiles(docsDir, "*.md")) Category = category, Link = link, Git = git, - ContentHtml = html + ContentHtml = html, + IsVisible = isVisible, }); } } @@ -98,7 +103,8 @@ foreach (var g in games) sb.AppendLine($" Category = {VStr(g.Category)},"); sb.AppendLine($" Link = {VStr(g.Link)},"); sb.AppendLine($" Git = {VStr(g.Git)},"); - sb.AppendLine($" ContentHtml = {VStr(g.ContentHtml)}"); + sb.AppendLine($" ContentHtml = {VStr(g.ContentHtml)},"); + sb.AppendLine($" IsVisible = {(g.IsVisible != null && g.IsVisible.Value ? "true" : "false")},"); sb.AppendLine(" },"); } diff --git a/GSR/Model/GameDoc.cs b/GSR/Model/GameDoc.cs index 9c48e2c..c11c010 100644 --- a/GSR/Model/GameDoc.cs +++ b/GSR/Model/GameDoc.cs @@ -7,4 +7,5 @@ public class GameDoc public string? Link { get; set; } public string? Git { get; set; } public string ContentHtml { get; set; } = string.Empty; + public bool? IsVisible { get; set; } = true; } \ No newline at end of file diff --git a/GSR/Model/GeneratedData.cs b/GSR/Model/GeneratedData.cs index 8341a5f..919bd31 100644 --- a/GSR/Model/GeneratedData.cs +++ b/GSR/Model/GeneratedData.cs @@ -4,8 +4,8 @@ namespace Model; public static class GeneratedData { - public static string? OverviewHtml => @"

The reason of these tools come back to playing Star Craft 2, and not feeling like I get why I win or lose. Was my unit comp bad? Was I too greedy? Should I make defenses? Should I harass? Was my build order efficent? This is true of many games, where some elements can be a bit vague, like damage scaling or the like. So the purpose of this website is to host my own tooling, references, opinions, and learnings on the hobbies I partake it, to better understand and improve on gameplay.

-

The website is called Game Slop Reference, to make the scope clear. These are game reference materials, and the slop refers to two things. One, the obviousness of AI generation in the development of these tools, are more commonly referred to in 2026 as AI slop. But also the indication of quality one can expect from these websites, given the lack of plans to monetize, and my desire to quickly develop with low quality control, and to make tools for my own purposes then would perhaps be most beneficial to the general public.

+ public static string? OverviewHtml => @"

The website is called Game Slop Reference to make the scope clear. These are game reference materials, and the slop refers to two things. One, the obviousness of AI generation in the development of these tools is more commonly referred to in 2026 as AI slop. But also the indication of quality one can expect from these websites, given the lack of plans to monetize, and my desire to quickly develop with low quality control, and to make tools for my own purposes.

+

The reason these tools come back to playing StarCraft 2, and not feeling like I get why I win or lose. Was my unit comp bad? Was I too greedy? Should I make defenses? Should I harass? Was my build order efficient? This is true of many games, where some elements can be a bit vague, like damage scaling or the like. So the purpose of this website is to host my own tooling, references, opinions, and learnings on the hobbies I partake in, to better understand and improve on gameplay.

Perhaps in the future, you can catch me on Twitch working on this slop: JonathanMcCaffrey - Twitch.

"; @@ -18,16 +18,18 @@ public static class GeneratedData Link = null, Git = null, ContentHtml = @"

My plans are to make a rules reference, so I can easily search for rules of the game. Also obvious card gallery and ability to take notes on each card and chimera.

-" +", + IsVisible = false, }, new GameDoc { Title = @"Chrono CCG", Category = @"Game", - Link = null, + Link = @"https://cccg.gameslopreference.ca/", Git = @"https://git.jonathanmccaffrey.ca/JonathanMcCaffrey/ChronoCCG", ContentHtml = @"

Simple card gallery. For future plans, being able to create my own decks would be clear feature addition. But more importantly for my usages, being able to write notes on each card and favourite them. I'll be saving these notes on PostgreSQL and storing them on a local machine, so I can reference the cards and save notes from anywhere.

-" +", + IsVisible = true, }, new GameDoc { @@ -36,18 +38,20 @@ public static class GeneratedData Link = @"https://et.gameslopreference.ca/", Git = @"https://git.jonathanmccaffrey.ca/JonathanMcCaffrey/EarthborneTrailerblazer", ContentHtml = @"

Basic rule reference, card reference, and simulator of game states to understand meeple spread over time.

-" +", + IsVisible = true, }, new GameDoc { Title = @"IMMORTAL Gates of Pyre", Category = @"Game", - Link = null, - Git = null, + Link = @"https://igpfanreference.ca/", + Git = @"https://git.jonathanmccaffrey.ca/JonathanMcCaffrey/IGP-Fan-Reference", ContentHtml = @"

IGP Fan Reference was made before the AI agents, however I plan on using agents to update the site and add new features.

Such as adding tech trees, glossaries, and new UI. Generated code needs more work to prevent problems, such as hallucinated game terms, or styling issues.

However, simple things like playwright tests and minor UI feedback for improved UX experience has been added to the Build Calculator.

-" +", + IsVisible = true, }, new GameDoc { @@ -56,7 +60,8 @@ public static class GeneratedData Link = null, Git = null, ContentHtml = @"

I have collected many notes on Path of Exile 2, and wrote utility tools, like generating hideout ground and new character names. So my plan would be to remake these tools in a unified location, and I would want to add new basic tools that sample my characters damage and defenses, and inform me when they are too low or too high for the content I am doing.

-" +", + IsVisible = false, }, new GameDoc { @@ -66,7 +71,8 @@ public static class GeneratedData Git = null, ContentHtml = @"

Not much work has been done in this area. Mostly note taking and playing the game to get a good understanding of the game and features I would want to implement.

One obvious feature is a unit reference, knowing the amount of production buildings I should have based on my income to maximize production, and build calculators and such.

-" +", + IsVisible = false, }, }; } diff --git a/GSR/Web/Layout/MainLayout.razor b/GSR/Web/Layout/MainLayout.razor index 75a84d1..1f8ab4e 100644 --- a/GSR/Web/Layout/MainLayout.razor +++ b/GSR/Web/Layout/MainLayout.razor @@ -1,8 +1,5 @@ @inherits LayoutComponentBase
-
diff --git a/GSR/Web/Layout/NavMenu.razor b/GSR/Web/Layout/NavMenu.razor deleted file mode 100644 index b49b9c1..0000000 --- a/GSR/Web/Layout/NavMenu.razor +++ /dev/null @@ -1,16 +0,0 @@ - - diff --git a/GSR/Web/Layout/NavMenu.razor.css b/GSR/Web/Layout/NavMenu.razor.css deleted file mode 100644 index 4ad0898..0000000 --- a/GSR/Web/Layout/NavMenu.razor.css +++ /dev/null @@ -1,78 +0,0 @@ -.nav-header { - padding: 1.25rem 1rem; - border-bottom: 1px solid var(--border); -} - -.nav-brand { - display: flex; - align-items: center; - gap: 0.6rem; - text-decoration: none; - color: var(--text); -} - -.brand-icon { - font-size: 1.3rem; - color: var(--accent); -} - -.brand-text { - font-size: 0.95rem; - font-weight: 600; -} - -.nav-links { - padding: 0.75rem 0.5rem; - display: flex; - flex-direction: column; - gap: 0.25rem; -} - -.nav-link { - display: flex; - align-items: center; - gap: 0.6rem; - padding: 0.6rem 0.75rem; - border-radius: 6px; - color: var(--text-muted); - text-decoration: none; - font-size: 0.9rem; - font-weight: 500; - transition: background 0.15s, color 0.15s; -} - -.nav-link:hover { - background: var(--bg-hover); - color: var(--text); -} - -.nav-link.active { - background: rgba(0, 212, 255, 0.08); - color: var(--accent); -} - -.nav-icon { - width: 1.1rem; - height: 1.1rem; - flex-shrink: 0; -} - -@media (max-width: 768px) { - .nav-header { - padding: 0.75rem 1rem; - } - .nav-links { - flex-direction: row; - padding: 0.5rem; - gap: 0.25rem; - } - .nav-link { - flex: 1; - justify-content: center; - padding: 0.5rem; - font-size: 0.8rem; - } - .brand-text { - font-size: 0.85rem; - } -} diff --git a/GSR/Web/Pages/Games.razor b/GSR/Web/Pages/Games.razor deleted file mode 100644 index 0034213..0000000 --- a/GSR/Web/Pages/Games.razor +++ /dev/null @@ -1,55 +0,0 @@ -@page "/games" -@inject GameService Service - -Games - -

Games

- -
- @foreach (var game in Service.Games) - { -
-

@game.Title

- @if (!string.IsNullOrEmpty(game.Link) || !string.IsNullOrEmpty(game.Git)) - { - - } -
- } -
- -@if (_selected is not null) -{ -
-
-
-

@_selected.Title

- -
-
- @((MarkupString)_selected.ContentHtml) -
-
-
-} - -@code { - private GameDoc? _selected; - - private void ShowDetail(GameDoc game) => _selected = game; - - private void CloseDetail() => _selected = null; -} diff --git a/GSR/Web/Pages/Home.razor b/GSR/Web/Pages/Home.razor index baba3cb..b380046 100644 --- a/GSR/Web/Pages/Home.razor +++ b/GSR/Web/Pages/Home.razor @@ -9,3 +9,56 @@ {
@((MarkupString)html)
} + + + +
+ @foreach (var game in Service.Games.Where(a=>a.IsVisible == true)) + { + + +
+

@game.Title

+ @if (!string.IsNullOrEmpty(game.Link) || !string.IsNullOrEmpty(game.Git)) + { + + } +
+ } +
+ +@if (_selected is not null) +{ +
+
+
+

@_selected.Title

+ +
+
+ @((MarkupString)_selected.ContentHtml) +
+
+
+} + +@code { + private GameDoc? _selected; + + private void ShowDetail(GameDoc game) => _selected = game; + + private void CloseDetail() => _selected = null; +} diff --git a/gsr.docs/.obsidian/types.json b/gsr.docs/.obsidian/types.json new file mode 100644 index 0000000..c01b4be --- /dev/null +++ b/gsr.docs/.obsidian/types.json @@ -0,0 +1,8 @@ +{ + "types": { + "aliases": "aliases", + "cssclasses": "multitext", + "tags": "tags", + "isVisible": "checkbox" + } +} \ No newline at end of file diff --git a/gsr.docs/.obsidian/workspace.json b/gsr.docs/.obsidian/workspace.json index 9c18ae9..7e3177a 100644 --- a/gsr.docs/.obsidian/workspace.json +++ b/gsr.docs/.obsidian/workspace.json @@ -13,12 +13,12 @@ "state": { "type": "markdown", "state": { - "file": "Chrono CCG.md", + "file": "Overview.md", "mode": "source", "source": false }, "icon": "lucide-file", - "title": "Chrono CCG" + "title": "Overview" } } ] @@ -185,12 +185,12 @@ }, "active": "8c140a22a97ab926", "lastOpenFiles": [ - "Path of Exile 2.md", - "Overview.md", "IMMORTAL Gates of Pyre.md", - "Chrono CCG.md", - "Earthborne Trailblazers.md", + "Overview.md", "ZeroSpace.md", - "Ashes Reborn.md" + "Path of Exile 2.md", + "Earthborne Trailblazers.md", + "Ashes Reborn.md", + "Chrono CCG.md" ] } \ No newline at end of file diff --git a/gsr.docs/Ashes Reborn.md b/gsr.docs/Ashes Reborn.md index e7cb5ca..2b9f187 100644 --- a/gsr.docs/Ashes Reborn.md +++ b/gsr.docs/Ashes Reborn.md @@ -1,4 +1,5 @@ --- category: Game +isVisible: false --- My plans are to make a rules reference, so I can easily search for rules of the game. Also obvious card gallery and ability to take notes on each card and chimera. \ No newline at end of file diff --git a/gsr.docs/Chrono CCG.md b/gsr.docs/Chrono CCG.md index 1cefdaa..e965016 100644 --- a/gsr.docs/Chrono CCG.md +++ b/gsr.docs/Chrono CCG.md @@ -1,6 +1,7 @@ --- category: Game -link: +link: https://cccg.gameslopreference.ca/ git: https://git.jonathanmccaffrey.ca/JonathanMcCaffrey/ChronoCCG +isVisible: true --- Simple card gallery. For future plans, being able to create my own decks would be clear feature addition. But more importantly for my usages, being able to write notes on each card and favourite them. I'll be saving these notes on PostgreSQL and storing them on a local machine, so I can reference the cards and save notes from anywhere. \ No newline at end of file diff --git a/gsr.docs/Earthborne Trailblazers.md b/gsr.docs/Earthborne Trailblazers.md index c4b2fc0..096e4ad 100644 --- a/gsr.docs/Earthborne Trailblazers.md +++ b/gsr.docs/Earthborne Trailblazers.md @@ -2,5 +2,6 @@ category: Game link: https://et.gameslopreference.ca/ git: https://git.jonathanmccaffrey.ca/JonathanMcCaffrey/EarthborneTrailerblazer +isVisible: true --- Basic rule reference, card reference, and simulator of game states to understand meeple spread over time. \ No newline at end of file diff --git a/gsr.docs/IMMORTAL Gates of Pyre.md b/gsr.docs/IMMORTAL Gates of Pyre.md index b13e19a..d810fb2 100644 --- a/gsr.docs/IMMORTAL Gates of Pyre.md +++ b/gsr.docs/IMMORTAL Gates of Pyre.md @@ -1,5 +1,8 @@ --- category: Game +link: https://igpfanreference.ca/ +git: https://git.jonathanmccaffrey.ca/JonathanMcCaffrey/IGP-Fan-Reference +isVisible: true --- [IGP Fan Reference](https://igpfanreference.ca/) was made before the AI agents, however I plan on using agents to update the site and add new features. diff --git a/gsr.docs/Overview.md b/gsr.docs/Overview.md index 30fee23..81f45ca 100644 --- a/gsr.docs/Overview.md +++ b/gsr.docs/Overview.md @@ -1,6 +1,5 @@ -The reason of these tools come back to playing Star Craft 2, and not feeling like I get why I win or lose. Was my unit comp bad? Was I too greedy? Should I make defenses? Should I harass? Was my build order efficent? This is true of many games, where some elements can be a bit vague, like damage scaling or the like. So the purpose of this website is to host my own tooling, references, opinions, and learnings on the hobbies I partake it, to better understand and improve on gameplay. +The website is called Game Slop Reference to make the scope clear. These are game reference materials, and the slop refers to two things. One, the obviousness of AI generation in the development of these tools is more commonly referred to in 2026 as AI slop. But also the indication of quality one can expect from these websites, given the lack of plans to monetize, and my desire to quickly develop with low quality control, and to make tools for my own purposes. -The website is called Game Slop Reference, to make the scope clear. These are game reference materials, and the slop refers to two things. One, the obviousness of AI generation in the development of these tools, are more commonly referred to in 2026 as AI slop. But also the indication of quality one can expect from these websites, given the lack of plans to monetize, and my desire to quickly develop with low quality control, and to make tools for my own purposes then would perhaps be most beneficial to the general public. - -Perhaps in the future, you can catch me on Twitch working on this slop: [JonathanMcCaffrey - Twitch](https://www.twitch.tv/jonathanmccaffrey). +The reason these tools come back to playing StarCraft 2, and not feeling like I get why I win or lose. Was my unit comp bad? Was I too greedy? Should I make defenses? Should I harass? Was my build order efficient? This is true of many games, where some elements can be a bit vague, like damage scaling or the like. So the purpose of this website is to host my own tooling, references, opinions, and learnings on the hobbies I partake in, to better understand and improve on gameplay. +Perhaps in the future, you can catch me on Twitch working on this slop: [JonathanMcCaffrey - Twitch](https://www.twitch.tv/jonathanmccaffrey). \ No newline at end of file diff --git a/gsr.docs/Path of Exile 2.md b/gsr.docs/Path of Exile 2.md index 2259fe3..0ea6a38 100644 --- a/gsr.docs/Path of Exile 2.md +++ b/gsr.docs/Path of Exile 2.md @@ -1,4 +1,5 @@ --- category: Game +isVisible: false --- I have collected many notes on Path of Exile 2, and wrote utility tools, like generating hideout ground and new character names. So my plan would be to remake these tools in a unified location, and I would want to add new basic tools that sample my characters damage and defenses, and inform me when they are too low or too high for the content I am doing. \ No newline at end of file diff --git a/gsr.docs/ZeroSpace.md b/gsr.docs/ZeroSpace.md index b0f88c3..72708f8 100644 --- a/gsr.docs/ZeroSpace.md +++ b/gsr.docs/ZeroSpace.md @@ -1,5 +1,6 @@ --- category: Game +isVisible: false --- Not much work has been done in this area. Mostly note taking and playing the game to get a good understanding of the game and features I would want to implement. diff --git a/gsp.tasks/.obsidian/app.json b/gsr.tasks/.obsidian/app.json similarity index 100% rename from gsp.tasks/.obsidian/app.json rename to gsr.tasks/.obsidian/app.json diff --git a/gsp.tasks/.obsidian/appearance.json b/gsr.tasks/.obsidian/appearance.json similarity index 100% rename from gsp.tasks/.obsidian/appearance.json rename to gsr.tasks/.obsidian/appearance.json diff --git a/gsp.tasks/.obsidian/community-plugins.json b/gsr.tasks/.obsidian/community-plugins.json similarity index 100% rename from gsp.tasks/.obsidian/community-plugins.json rename to gsr.tasks/.obsidian/community-plugins.json diff --git a/gsp.tasks/.obsidian/core-plugins.json b/gsr.tasks/.obsidian/core-plugins.json similarity index 100% rename from gsp.tasks/.obsidian/core-plugins.json rename to gsr.tasks/.obsidian/core-plugins.json diff --git a/gsp.tasks/.obsidian/plugins/kanban-bases-view/main.js b/gsr.tasks/.obsidian/plugins/kanban-bases-view/main.js similarity index 100% rename from gsp.tasks/.obsidian/plugins/kanban-bases-view/main.js rename to gsr.tasks/.obsidian/plugins/kanban-bases-view/main.js diff --git a/gsp.tasks/.obsidian/plugins/kanban-bases-view/manifest.json b/gsr.tasks/.obsidian/plugins/kanban-bases-view/manifest.json similarity index 100% rename from gsp.tasks/.obsidian/plugins/kanban-bases-view/manifest.json rename to gsr.tasks/.obsidian/plugins/kanban-bases-view/manifest.json diff --git a/gsp.tasks/.obsidian/plugins/kanban-bases-view/styles.css b/gsr.tasks/.obsidian/plugins/kanban-bases-view/styles.css similarity index 100% rename from gsp.tasks/.obsidian/plugins/kanban-bases-view/styles.css rename to gsr.tasks/.obsidian/plugins/kanban-bases-view/styles.css diff --git a/gsp.tasks/.obsidian/workspace.json b/gsr.tasks/.obsidian/workspace.json similarity index 94% rename from gsp.tasks/.obsidian/workspace.json rename to gsr.tasks/.obsidian/workspace.json index d5256d4..e6acddf 100644 --- a/gsp.tasks/.obsidian/workspace.json +++ b/gsr.tasks/.obsidian/workspace.json @@ -11,14 +11,13 @@ "id": "c9828c929e6de2aa", "type": "leaf", "state": { - "type": "markdown", + "type": "bases", "state": { - "file": "Generate a Website.md", - "mode": "source", - "source": false + "file": "_Tasks.base", + "viewName": "Table" }, - "icon": "lucide-file", - "title": "Generate a Website" + "icon": "columns", + "title": "_Tasks" } } ] @@ -183,11 +182,11 @@ "bases:Create new base": false } }, - "active": "c9828c929e6de2aa", + "active": "b3e9c9f896e71147", "lastOpenFiles": [ + "Generate a Website.md", "_AI Tasks.base", "_Tasks.base", - "Generate a Website.md", "Task.md", "T2.md", "T1.md", diff --git a/gsp.tasks/Generate a Website.md b/gsr.tasks/Generate a Website.md similarity index 100% rename from gsp.tasks/Generate a Website.md rename to gsr.tasks/Generate a Website.md diff --git a/gsp.tasks/Task.md b/gsr.tasks/Task.md similarity index 100% rename from gsp.tasks/Task.md rename to gsr.tasks/Task.md diff --git a/gsp.tasks/_AI Tasks.base b/gsr.tasks/_AI Tasks.base similarity index 100% rename from gsp.tasks/_AI Tasks.base rename to gsr.tasks/_AI Tasks.base diff --git a/gsp.tasks/_Tasks.base b/gsr.tasks/_Tasks.base similarity index 100% rename from gsp.tasks/_Tasks.base rename to gsr.tasks/_Tasks.base