Conversation
…to pandoc.yaml Aligns the CLI with upstream Keystone's switch from .env to project.conf for operational config. The 5 LaTeX/cover properties move to the Pandoc store where Pandoc can consume them natively, leaving project.conf with only the 3 project identity and Docker variables. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
There was a problem hiding this comment.
Pull request overview
Aligns Keystone CLI configuration with upstream changes by renaming the operational config file from .env to project.conf and relocating LaTeX/cover settings into the Pandoc YAML store.
Changes:
- Replaced
.envreferences withproject.confin project layout, DI registration, and the operational store/tests. - Moved cover + LaTeX settings from the operational env-style store into
PandocFileProjectModelStoreusing YAML keys. - Updated documentation/comments to reflect the new configuration split.
Reviewed changes
Copilot reviewed 11 out of 11 changed files in this pull request and generated 2 comments.
Show a summary per file
| File | Description |
|---|---|
| tests/Keystone.Cli.UnitTests/Domain/FileSystem/TestData/StandardProjectLayout.cs | Updates expected project file layout to include project.conf (and sample project.conf). |
| tests/Keystone.Cli.UnitTests/Application/Data/Stores/ProjectConfFileProjectModelStoreTests.cs | Renames and updates unit tests for the new project.conf-backed operational store. |
| tests/Keystone.Cli.UnitTests/Application/Data/Stores/PandocFileProjectModelStoreTests.cs | Adds test coverage for cover/LaTeX values now stored in pandoc.yaml. |
| src/Keystone.Cli/Domain/Project/ProjectModel.cs | Updates XML doc comments to reflect where fields are sourced from (project.conf vs pandoc.yaml). |
| src/Keystone.Cli/Domain/Project/ProjectFiles.cs | Introduces ProjectConfFileName constant and updates remarks. |
| src/Keystone.Cli/Configuration/DependenciesInstaller.cs | Switches DI registration to ProjectConfFileProjectModelStore. |
| src/Keystone.Cli/Application/Utility/Serialization/IEnvironmentFileSerializer.cs | Generalizes docs to “environment-style configuration file” (not .env specific). |
| src/Keystone.Cli/Application/Data/Stores/ProjectConfFileProjectModelStore.cs | Renames store and removes cover/LaTeX keys from operational config handling. |
| src/Keystone.Cli/Application/Data/Stores/PandocFileProjectModelStore.cs | Adds cover/LaTeX YAML metadata bindings and hashing. |
| src/Keystone.Cli/Application/Data/IProjectModelStore.cs | Updates interface docs to reference project.conf instead of .env. |
| CLAUDE.md | Updates documentation to match the renamed store. |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
tests/Keystone.Cli.UnitTests/Application/Data/Stores/ProjectConfFileProjectModelStoreTests.cs
Outdated
Show resolved
Hide resolved
Reconcile CoverImage xmldoc to reference only the pandoc.yaml key and rename test methods that still said "EnvironmentValues" to "ProjectConfValues". Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
There was a problem hiding this comment.
Pull request overview
Copilot reviewed 11 out of 11 changed files in this pull request and generated 5 comments.
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
src/Keystone.Cli/Application/Data/Stores/ProjectConfFileProjectModelStore.cs
Show resolved
Hide resolved
src/Keystone.Cli/Application/Data/Stores/ProjectConfFileProjectModelStore.cs
Show resolved
Hide resolved
src/Keystone.Cli/Application/Data/Stores/ProjectConfFileProjectModelStore.cs
Show resolved
Hide resolved
src/Keystone.Cli/Application/Utility/Serialization/IEnvironmentFileSerializer.cs
Show resolved
Hide resolved
tests/Keystone.Cli.UnitTests/Application/Data/Stores/ProjectConfFileProjectModelStoreTests.cs
Show resolved
Hide resolved
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.
Summary
Aligns the CLI with upstream Keystone's configuration change (knight-owl-dev/keystone#13), which replaces
.envwithproject.confas the operational config file. The 5 LaTeX/cover properties that don't belong in an operational config file move into the Pandoc store where Pandoc consumes them natively, leavingproject.confwith only project identity and Docker variables.Related Issues
Fixes #145
Changes
ProjectFiles.EnvFileNametoProjectConfFileNamewith valueproject.confEnvFileProjectModelStoretoProjectConfFileProjectModelStore, trimmed to 3 operational variables (ProjectName,DockerComposeProject,DockerImage)CoverImage,LatexPapersize,LatexGeometry,LatexFontsize,LatexFontfamily) toPandocFileProjectModelStorewith native YAML keys (cover-image,papersize,geometry,fontsize,fontfamily)CLAUDE.mdto match