Skip to content

Feat/lang detect project settings md files#23

Merged
PTFOPlayer merged 4 commits into
masterfrom
feat/lang-detect-project-settings-md-files
Jun 4, 2026
Merged

Feat/lang detect project settings md files#23
PTFOPlayer merged 4 commits into
masterfrom
feat/lang-detect-project-settings-md-files

Conversation

@PTFOPlayer
Copy link
Copy Markdown
Owner

@PTFOPlayer PTFOPlayer commented Jun 4, 2026

Summary

Project-awareness enhancements: smarter language detection, per-project settings, and configurable instruction file discovery. Plus comprehensive documentation.

Changes

Language Detection

  • Detects 17+ languages and build tools from marker files (Zig, Deno, Bun, Swift, Ruby, Elixir, Haskell, Kotlin, .NET, Dart/Flutter, Nix, plus the original 6)
  • Monorepo detection: "Rust + Node.js" when both Cargo.toml and package.json exist
  • Makefile/Justfile fallback for unknown project types with proper build/test commands
  • Better name extraction: Go (go.mod module line), Python (pyproject.toml)
  • 2 new tests

Per-Project Settings

  • .tinyharness/config.json discovered walking up from CWD, same algorithm as instruction file discovery
  • MergedSettings with source annotations (project/global/default)
  • Safe commands extend the global list; denied commands replace; all other fields override
  • /project-settings command — shows effective settings with source tags
  • /project-settings init — generates a commented template

Configurable Instruction Files

  • TINYHARNESS_MD_FILES env var — comma-separated override list (highest priority)
  • project_md_files in settings.json — persisted custom discovery order
  • Additional per-project files via .tinyharness/config.jsonproject_md_files (loaded after main file)
  • discover_project_md() now takes a dynamic list instead of a hardcoded const
  • 3 new tests, including empty-list and custom-order scenarios

Documentation (10 files)

  • docs/skills.md — SKILL.md format, frontmatter reference, discovery, examples
  • docs/tools-reference.md — all 15 tools with parameters, categories, and behavior
  • docs/configuration.md — all settings, XDG paths, prompts, env vars
  • docs/safety.md — command safety model, safe/deny lists, metacharacter handling
  • docs/modes.md — mode overview, prompt architecture, escalation pattern
  • docs/contributing.md — workspace structure, conventions, CI, PR process
  • docs/README.md — updated index with role-based and question-based navigation
  • CONTRIBUTING.md at repo root (GitHub banner pickup)

- 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.
@PTFOPlayer PTFOPlayer merged commit 414265f into master Jun 4, 2026
4 checks passed
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.

1 participant