Feat/lang detect project settings md files#23
Merged
Conversation
- Language detection: 17+ language signatures, monorepo detection, Makefile/Justfile fallback, 2 new tests - Configurable MD files: TINYHARNESS_MD_FILES env var, project_md_files in settings, additional files via .tinyharness/config.json, 3 new tests - Per-project settings: .tinyharness/config.json discovery + merge, MergedSettings, /project-settings cmd with init subcommand, source annotations Docs: docs/README.md, docs/language-detection.md, docs/per-project-settings.md, docs/project-instructions.md
- skills.md: SKILL.md format, frontmatter reference, discovery, invocation, truncation rules, examples, best practices - tools-reference.md: all 15 tools with params, categories, auto-exec rules, mode filtering, schema format, custom tools - configuration.md: all 13 settings fields, per-project config, system prompts, XDG paths, env vars, CLI flags - safety.md: command safety model, safe/deny lists, metacharacter rejection, chain splitting, audit log, security best practices - modes.md: mode overview, tool filtering, prompt architecture, escalation pattern, customization, use cases - contributing.md: workspace structure, dev workflow, code conventions, CI, PR process, common tasks Updated docs/README.md with full index and question-based nav.
GitHub picks up CONTRIBUTING.md for the 'Contributing' banner. Full contributor guide in docs/contributing.md.
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
Project-awareness enhancements: smarter language detection, per-project settings, and configurable instruction file discovery. Plus comprehensive documentation.
Changes
Language Detection
Cargo.tomlandpackage.jsonexistgo.modmodule line), Python (pyproject.toml)Per-Project Settings
.tinyharness/config.jsondiscovered walking up from CWD, same algorithm as instruction file discoveryMergedSettingswith source annotations (project/global/default)/project-settingscommand — shows effective settings with source tags/project-settings init— generates a commented templateConfigurable Instruction Files
TINYHARNESS_MD_FILESenv var — comma-separated override list (highest priority)project_md_filesinsettings.json— persisted custom discovery order.tinyharness/config.json→project_md_files(loaded after main file)discover_project_md()now takes a dynamic list instead of a hardcoded constDocumentation (10 files)
docs/skills.md— SKILL.md format, frontmatter reference, discovery, examplesdocs/tools-reference.md— all 15 tools with parameters, categories, and behaviordocs/configuration.md— all settings, XDG paths, prompts, env varsdocs/safety.md— command safety model, safe/deny lists, metacharacter handlingdocs/modes.md— mode overview, prompt architecture, escalation patterndocs/contributing.md— workspace structure, conventions, CI, PR processdocs/README.md— updated index with role-based and question-based navigationCONTRIBUTING.mdat repo root (GitHub banner pickup)