Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .github/ISSUE_TEMPLATE/bug_report.yml
Original file line number Diff line number Diff line change
Expand Up @@ -35,7 +35,7 @@ body:
id: version
attributes:
label: Version or commit
placeholder: v0.4.0, or the short commit SHA
placeholder: v0.5.0, or the short commit SHA
validations:
required: true

Expand Down
36 changes: 36 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
# Changelog

All notable changes to this project are documented in this file.

The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/),
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).

## [0.5.0] - 2026-10-16

### Added

- Test coverage for all 8 intelligence atoms (Search, Summarize, Classify, Recommend, Analyze, Extract, Generate, Prompt)
- Test coverage for all 25 properties atoms (Status, Text, Number, Date, DateTime, Currency, Enum, Boolean, ID, Owner, Priority, CreatedAt, UpdatedAt, Score, Percent, Duration, Count, JSON, Address, AI, StartDate, EndDate, Email, Phone, URL)
- Test coverage for 11 previously untested actions atoms (Create/Update/Delete/View, Notify/Message/Assign, Search/Filter/Sort/Export)
- Test coverage for 4 previously untested interfaces atoms (Calendar, Chart, Detail, Form)
- Test coverage for 3 previously untested rules atoms (Audit, Permission, Policy)
- `test:coverage` npm script for running tests with coverage reporting

### Changed

- Updated README Roadmap to reflect current 100% reference implementation coverage
- Bumped version to 0.5.0 in package.json and CITATION.cff

### Fixed

- Corrected the stale Roadmap section in README that contradicted the Status section

## [0.4.0] - 2026-08-21

### Added

- 115 atoms across 6 families (ontology established in 0.2.0)
- Composition system prompt and plan schema
- Evaluation harness with baseline vs composition comparison
- Reference implementations for 90 of 115 atoms (25 missing: 14 actions, 9 interfaces, 2 rules)
- CI pipeline with validation, coverage, linting, and type-checking
4 changes: 2 additions & 2 deletions CITATION.cff
Original file line number Diff line number Diff line change
Expand Up @@ -2,8 +2,8 @@ cff-version: 1.2.0
message: "If you use this work in research, please cite it as below."
title: "Software Periodic Table: A Finite Ontology of Recurring Application Elements for Compositional Code Generation"
type: software
version: 0.4.0
date-released: 2026-08-21
version: 0.5.0
date-released: 2026-10-16
license: MIT

authors:
Expand Down
23 changes: 15 additions & 8 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -126,6 +126,9 @@ npm run check
npm run lint
npm test

# Tests with coverage reporting
npm run test:coverage

# Run the composition examples
npm run example # Task + Kanban board
npm run example:crm # CRM contact management
Expand Down Expand Up @@ -157,6 +160,9 @@ enforced by tests rather than by convention:
the cross-family name collision) plus consistency between each scenario's
acceptance criteria and its ground truth.
- `test/atoms.test.ts` — behaviour of the atom implementations.
- `test/atoms-untested.test.ts` — behaviour of the atoms that previously had no
tests, across the intelligence, properties, actions, interfaces, and rules
families.

Run with `npm test`. No test framework dependency; `node:test` and `tsx` only.

Expand Down Expand Up @@ -190,11 +196,14 @@ See `docs/AGENT_USAGE.md` for a detailed walkthrough of both patterns, including

## Status

The ontology (115 elements) is stable. **Every element has a tested reference
The ontology (115 elements) is stable. **Every element has a reference
implementation — 115 of 115 (100%)**, across all six families (run `npm run
coverage` for the live report). `test/ontology.test.ts` fails if any atom loses its
implementation, because a symbol with no implementation is a hole in the claim that
the table is composable end to end. The composition system prompt, examples, and
coverage` for the live report). Behaviour tests cover the five families
intelligence, properties, actions, interfaces, and rules completely; the objects
family has reference implementations but no dedicated unit tests.
`test/ontology.test.ts` fails if any atom loses its implementation, because a
symbol with no implementation is a hole in the claim that the table is composable
end to end. The composition system prompt, examples, and
evaluation harness are functional and unit-tested.

**No empirical claim is made yet.** An earlier version of this README reported a
Expand Down Expand Up @@ -238,11 +247,9 @@ against the feature requests, and collect empirical results.

## Roadmap

- **Near term:** Expand reference implementations to cover all 115 elements. Remaining families: Actions (13 missing), Interfaces (7 missing), Rules (1 missing).
- **Medium term:** Run a corrected LLM evaluation, publish the results with the
raw JSON, and collect community-contributed atoms.
- **Near term:** Run a corrected LLM evaluation, publish the results with the raw JSON, and collect community-contributed atoms.
- **Medium term:** Develop domain packs for common verticals (CRM, healthcare, fintech).
- **Long term:** Port the ontology to additional languages (Python, Rust, Go).
Develop domain packs for common verticals.

## Contributing

Expand Down
3 changes: 2 additions & 1 deletion package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "software-periodic-table",
"version": "0.4.0",
"version": "0.5.0",
"description": "A finite ontology of 115 recurring software elements and a composition framework for LLM-based coding agents",
"type": "module",
"scripts": {
Expand All @@ -16,6 +16,7 @@
"search": "tsx scripts/search.ts",
"check": "tsc --noEmit && tsc -p tsconfig.test.json && tsc -p tsconfig.examples.json",
"test": "node --import tsx --test test/*.test.ts",
"test:coverage": "node --import tsx --test --experimental-test-coverage test/*.test.ts",
"format": "biome check --write",
"lint": "biome check",
"ci": "npm run validate && npm run coverage && npm run lint && npm run check && npm test && npm run build && npm run examples:check",
Expand Down
Loading
Loading