Add agent skills for the five common model tasks - #400
Draft
jasonleenaylor wants to merge 1 commit into
Draft
Conversation
Adds .claude/skills/ with step-by-step guides for adding a property, adding a class, adding a virtual property, writing a data migration, and writing tests. Each was checked against current source rather than carried over as drafted, and the following were wrong: - The CellarModule table named a "CellarModule" id that does not exist and put Notebook at num 24. The real ids are Cellar 0, FeatSys 2, Scripture 3, Notebk 4, Ling 5, LangProj 6. - Code generation was described as emitting StructureMap registrations. The container is Microsoft.Extensions.DependencyInjection since #393. - Change history entries were said to go below the existing ones. The list in MasterLCModel.xml runs newest first. - DataMigration7000072.cs was cited as the example of splitting logic into private helpers. It has none; 7000065 does. - Partial interface extensions were shown in a new ILexEntryExtensions.cs. InterfaceAdditions.cs already holds about eighty of them. - Virtual FLIDs were described as starting at 20,000,000. They start at 20,000,001, are assigned in attribute construction order, and are capped at 30,000,000, so they must never be persisted or hard-coded. Version numbers in the worked examples are now marked as illustrative, with instructions to read the current version from MasterLCModel.xml. The FLEx Bridge metadata cache obligation from WARNING 4 is stated where the version gets bumped, build commands carry -m:1, and the test data directory is named rather than described. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Adds
.claude/skills/with step-by-step guides for the five common model tasks: adding aproperty, adding a class, adding a virtual property, writing a data migration, and writing
tests.
Stacked on #364. Review that one first; this PR targets its branch.
Audited, not carried over
Each guide was checked against current source rather than merged as drafted. Six things were
wrong:
CellarModuletable listed aCellarModuleid and Notebook atnum24Cellar0,FeatSys2,Scripture3,Notebk4,Ling5,LangProj6Microsoft.Extensions.DependencyInjectionsince #393MasterLCModel.xmlruns newest firstDataMigration7000072.cscited for the private-helper pattern7000065doesILexEntryExtensions.cs*Extensions.csexists;InterfaceAdditions.csholds about eightyThe last one matters beyond the off-by-one: because the number depends on construction order,
a virtual FLID must never be persisted or hard-coded. The guide now says so.
Also changed
current version from
MasterLCModel.xml. Four of the five hardcoded7000072/7000073,which is correct today only because no migration has landed since February.
WARNING 4is stated wherever the modelversion gets bumped. None of the guides mentioned it.
-m:1, matching Remove obsolete MSBuild wrapper scripts in favor of dotnet build #364.tests/SIL.LCModel.Tests/TestData/is named rather than described as "the test datadirectory".
CustomFieldForTestis noted as a protected nested class onLcmTestBase, so it is onlyreachable from a test deriving from those bases.
Verified as correct and left alone
The migration API surface (
CheckVersionNumber,IncrementVersionNumber,UpdateDTO,RemoveIncludingOwnedObjects,CreatePossibilityList, the repository methods), theDataMigrationTestsBasetemplate line for line againstDataMigration7000072Tests,Assert.AreEqualfor NUnit 3.13.3,IRepository<T>.Count, theCustomFieldForTestsix-argumentoverload, all seven
Overrides*.csfilenames,LexEntrybeingowner="none", and theanalysis/vernacular defaults being
en/fr.No code changes, so no build or test run is claimed.
This change is