@draig/lexis-two 1.0.2 → 1.0.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/package.json +1 -1
- package/.claude-plugin/marketplace.json +0 -29
- package/.claude-plugin/plugin.json +0 -9
- package/.codex-plugin/plugin.json +0 -31
- package/.env.example +0 -8
- package/.github/FUNDING.yml +0 -1
- package/.github/copilot-instructions.md +0 -47
- package/.github/plugin/marketplace.json +0 -20
- package/.github/plugin/plugin.json +0 -16
- package/.github/workflows/deploy-site.yml +0 -53
- package/.github/workflows/test.yml +0 -29
- package/AUDIT.md +0 -74
- package/SPECXIS.md +0 -576
- package/benchmarks/README.md +0 -114
- package/benchmarks/arms/baseline.js +0 -2
- package/benchmarks/arms/caveman-SKILL.md +0 -67
- package/benchmarks/arms/caveman.js +0 -8
- package/benchmarks/arms/lexis-two.js +0 -10
- package/benchmarks/arms/ponytail.js +0 -6
- package/benchmarks/behavior.js +0 -58
- package/benchmarks/behavior.yaml +0 -40
- package/benchmarks/benchmark-local.py +0 -156
- package/benchmarks/benchmark-opencode-go.js +0 -294
- package/benchmarks/correctness.js +0 -294
- package/benchmarks/lib/aggregate-opencode-go.js +0 -103
- package/benchmarks/lib/load-env.js +0 -31
- package/benchmarks/lib/opencode-go-client.js +0 -151
- package/benchmarks/loc.js +0 -13
- package/benchmarks/opencode-go-models.json +0 -31
- package/benchmarks/promptfooconfig.yaml +0 -41
- package/benchmarks/prompts.json +0 -15
- package/benchmarks/render-opencode-go-report.js +0 -28
- package/benchmarks/results/2026-06-15-llama3.2-local.md +0 -76
- package/benchmarks/results/2026-06-16-opencode-go.md +0 -56
- package/benchmarks/results/opencode-go-2026-06-16-report.html +0 -226
- package/benchmarks/results/opencode-go-2026-06-16.json +0 -1339
- package/docs/assets/lexis-two-nobg.png +0 -0
- package/docs/assets/logo.png +0 -0
- package/docs/assets/logo.svg +0 -4
- package/docs/portability.md +0 -147
- package/docs/site.md +0 -52
- package/gemini-extension.json +0 -7
- package/pi-extension/index.js +0 -161
- package/pi-extension/package.json +0 -8
- package/pi-extension/test/extension.test.js +0 -89
- package/pi-extension/test/helpers.test.js +0 -35
- package/scripts/check-rule-copies.js +0 -82
- package/site/astro.config.mjs +0 -18
- package/site/package-lock.json +0 -4913
- package/site/package.json +0 -14
- package/site/public/CNAME +0 -1
- package/site/public/assets/lexis-two-nobg.png +0 -0
- package/site/public/assets/logo.png +0 -0
- package/site/public/assets/logo.svg +0 -4
- package/site/public/robots.txt +0 -4
- package/site/src/components/Adapt.astro +0 -33
- package/site/src/components/Benchmarks.astro +0 -232
- package/site/src/components/Commands.astro +0 -33
- package/site/src/components/Ecosystem.astro +0 -30
- package/site/src/components/Example.astro +0 -77
- package/site/src/components/Footer.astro +0 -28
- package/site/src/components/Header.astro +0 -87
- package/site/src/components/Hero.astro +0 -58
- package/site/src/components/Home.astro +0 -46
- package/site/src/components/Hosts.astro +0 -62
- package/site/src/components/Install.astro +0 -139
- package/site/src/components/LanguageSwitcher.astro +0 -82
- package/site/src/components/Philosophy.astro +0 -23
- package/site/src/components/Stacks.astro +0 -33
- package/site/src/components/Suggested.astro +0 -39
- package/site/src/data/opencode-go-benchmark.json +0 -230
- package/site/src/i18n/en.ts +0 -155
- package/site/src/i18n/es.ts +0 -158
- package/site/src/i18n/index.ts +0 -14
- package/site/src/layouts/Layout.astro +0 -114
- package/site/src/pages/benchmarks.astro +0 -4
- package/site/src/pages/es/benchmarks.astro +0 -4
- package/site/src/pages/es/index.astro +0 -10
- package/site/src/pages/index.astro +0 -10
- package/site/src/styles/global.css +0 -780
- package/site/tsconfig.json +0 -3
- package/tests/behavior.test.js +0 -80
- package/tests/commands.test.js +0 -40
- package/tests/copilot-plugin.test.js +0 -33
- package/tests/correctness.test.js +0 -191
- package/tests/gemini-extension.test.js +0 -78
- package/tests/hooks-windows.test.js +0 -48
- package/tests/hooks.test.js +0 -177
- package/tests/opencode-plugin.test.js +0 -64
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@draig/lexis-two",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.0.3",
|
|
4
4
|
"description": "The simple way to obtain the best code. Portable rules, skills, and slash commands for AI agents with lowest tokens usage.",
|
|
5
5
|
"main": "./.opencode/plugins/lexis-two.mjs",
|
|
6
6
|
"exports": {
|
|
@@ -1,29 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"$schema": "https://anthropic.com/claude-code/marketplace.schema.json",
|
|
3
|
-
"name": "lexis-two",
|
|
4
|
-
"description": "The simple way to obtain the best code. Portable rules, skills, and slash commands for AI agents with lowest tokens usage.",
|
|
5
|
-
"owner": {
|
|
6
|
-
"name": "Agustin Avellaneda",
|
|
7
|
-
"url": "https://github.com/nitdraig"
|
|
8
|
-
},
|
|
9
|
-
"plugins": [
|
|
10
|
-
{
|
|
11
|
-
"name": "lexis-two",
|
|
12
|
-
"description": "The simple way to obtain the best code. Portable rules, skills, and slash commands for AI agents with lowest tokens usage.",
|
|
13
|
-
"source": "./",
|
|
14
|
-
"category": "productivity"
|
|
15
|
-
}
|
|
16
|
-
],
|
|
17
|
-
"suggestions": [
|
|
18
|
-
{
|
|
19
|
-
"name": "my-cursor-skills",
|
|
20
|
-
"url": "https://github.com/nitdraig/my-cursor-skills",
|
|
21
|
-
"description": "Cursor skills collection to review for complementary features"
|
|
22
|
-
},
|
|
23
|
-
{
|
|
24
|
-
"name": "ponytail",
|
|
25
|
-
"url": "https://github.com/DietrichGebert/ponytail",
|
|
26
|
-
"description": "Base project from which lexis-two was forked and extended"
|
|
27
|
-
}
|
|
28
|
-
]
|
|
29
|
-
}
|
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"name": "lexis-two",
|
|
3
|
-
"version": "1.0.0",
|
|
4
|
-
"description": "The simple way to obtain the best code. Portable rules, skills, and slash commands for AI agents with lowest tokens usage.",
|
|
5
|
-
"author": {
|
|
6
|
-
"name": "Agustin Avellaneda",
|
|
7
|
-
"url": "https://github.com/nitdraig"
|
|
8
|
-
}
|
|
9
|
-
}
|
|
@@ -1,31 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"name": "lexis-two",
|
|
3
|
-
"version": "1.0.0",
|
|
4
|
-
"description": "The simple way to obtain the best code. Portable rules, skills, and slash commands for AI agents with lowest tokens usage.",
|
|
5
|
-
"author": {
|
|
6
|
-
"name": "Agustin Avellaneda",
|
|
7
|
-
"url": "https://github.com/nitdraig"
|
|
8
|
-
},
|
|
9
|
-
"homepage": "https://github.com/nitdraig/lexis-two",
|
|
10
|
-
"repository": "https://github.com/nitdraig/lexis-two",
|
|
11
|
-
"license": "MIT",
|
|
12
|
-
"keywords": ["yagni", "minimalism", "code-review", "productivity"],
|
|
13
|
-
"skills": "../skills/",
|
|
14
|
-
"interface": {
|
|
15
|
-
"displayName": "Lexis-Two",
|
|
16
|
-
"shortDescription": "The simple way to obtain the best code",
|
|
17
|
-
"longDescription": "Prefer YAGNI, the standard library, native platform features, and the smallest correct implementation.",
|
|
18
|
-
"developerName": "Agustin Avellaneda",
|
|
19
|
-
"category": "Productivity",
|
|
20
|
-
"capabilities": ["Instructions", "Lifecycle hooks"],
|
|
21
|
-
"websiteURL": "https://github.com/nitdraig/lexis-two",
|
|
22
|
-
"defaultPrompt": [
|
|
23
|
-
"Use Lexis-Two mode for this task.",
|
|
24
|
-
"Review this diff for over-engineering.",
|
|
25
|
-
"Find the smallest correct implementation."
|
|
26
|
-
],
|
|
27
|
-
"brandColor": "#111111",
|
|
28
|
-
"composerIcon": "../assets/logo.png",
|
|
29
|
-
"logo": "../assets/logo.png"
|
|
30
|
-
}
|
|
31
|
-
}
|
package/.env.example
DELETED
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
# Copy to .env (gitignored) and fill in.
|
|
2
|
-
|
|
3
|
-
# Anthropic — for promptfoo benchmark (benchmarks/promptfooconfig.yaml)
|
|
4
|
-
ANTHROPIC_API_KEY=sk-ant-...
|
|
5
|
-
|
|
6
|
-
# OpenCode Go — for benchmarks/benchmark-opencode-go.js
|
|
7
|
-
# Get key: https://opencode.ai/docs/go/ → subscribe → /connect in OpenCode TUI
|
|
8
|
-
OPENCODE_API_KEY=
|
package/.github/FUNDING.yml
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
github: [nitdraig]
|
|
@@ -1,47 +0,0 @@
|
|
|
1
|
-
# Lexis — Lazy Senior Dev Mode
|
|
2
|
-
|
|
3
|
-
> Part of the [Lexis ecosystem](https://github.com/nitdraig/lexis-two) by @nitdraig.
|
|
4
|
-
> Forked from [ponytail](https://github.com/DietrichGebert/ponytail) (MIT).
|
|
5
|
-
|
|
6
|
-
You are a lazy senior developer. Lazy means efficient, not careless.
|
|
7
|
-
The best code is the code never written.
|
|
8
|
-
|
|
9
|
-
Before writing any code, stop at the first rung that holds:
|
|
10
|
-
1. Does this need to exist at all? (YAGNI)
|
|
11
|
-
2. Does the standard library already do this? Use it.
|
|
12
|
-
3. Does a native platform feature cover it? Use it.
|
|
13
|
-
4. Does an already-installed dependency solve it? Use it.
|
|
14
|
-
5. Can this be one line? Make it one line.
|
|
15
|
-
6. Only then: write the minimum code that works.
|
|
16
|
-
|
|
17
|
-
## Stack Shortcuts
|
|
18
|
-
|
|
19
|
-
- Modal → `<dialog>`, not a library
|
|
20
|
-
- Date input → `<input type="date">`, not a datepicker
|
|
21
|
-
- Animation → CSS transition, not framer-motion unless installed
|
|
22
|
-
- State → `useState` before zustand; zustand before redux
|
|
23
|
-
- Validation → HTML5 first, then zod if installed
|
|
24
|
-
- Server Components by default; `use client` only for interactivity
|
|
25
|
-
- Caching → in-memory Map before Redis unless Redis is configured
|
|
26
|
-
- MongoDB: single aggregation pipeline, not multiple queries
|
|
27
|
-
- PostgreSQL: Prisma ORM first, raw SQL only when ORM cannot express it
|
|
28
|
-
- SQLite: only for local/prototype/single-user — not production SaaS
|
|
29
|
-
- Redis: always set TTL; never use as primary DB
|
|
30
|
-
- Check which DB the project uses before writing any query
|
|
31
|
-
|
|
32
|
-
## Rules
|
|
33
|
-
|
|
34
|
-
- No abstractions that were not explicitly requested
|
|
35
|
-
- No new dependency if it can be avoided
|
|
36
|
-
- No boilerplate nobody asked for
|
|
37
|
-
- Deletion over addition. Boring over clever. Fewest files possible
|
|
38
|
-
- Question complex requests: "Do you actually need X, or does Y cover it?"
|
|
39
|
-
- Mark intentional simplifications: // lexis: reason
|
|
40
|
-
- All user-facing responses in Spanish. All code, comments, JSDoc in English
|
|
41
|
-
- Never rewrite entire files when a targeted edit is sufficient
|
|
42
|
-
- strict: true always. Never any, as, or ! without a // lexis: explanation
|
|
43
|
-
|
|
44
|
-
## Never Lazy About
|
|
45
|
-
|
|
46
|
-
Input validation, error handling that prevents data loss, security,
|
|
47
|
-
accessibility, TypeScript types, tests for new behavior.
|
|
@@ -1,20 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"name": "lexis-two",
|
|
3
|
-
"description": "The simple way to obtain the best code. Portable rules, skills, and slash commands for AI agents with lowest tokens usage.",
|
|
4
|
-
"owner": {
|
|
5
|
-
"name": "Agustin Avellaneda",
|
|
6
|
-
"url": "https://github.com/nitdraig"
|
|
7
|
-
},
|
|
8
|
-
"plugins": [
|
|
9
|
-
{
|
|
10
|
-
"name": "lexis-two",
|
|
11
|
-
"description": "The simple way to obtain the best code. Portable rules, skills, and slash commands for AI agents with lowest tokens usage.",
|
|
12
|
-
"source": "./",
|
|
13
|
-
"category": "productivity",
|
|
14
|
-
"tags": ["yagni", "minimalism", "code-review", "productivity"],
|
|
15
|
-
"commands": "commands/",
|
|
16
|
-
"skills": "skills/",
|
|
17
|
-
"hooks": "hooks/copilot-hooks.json"
|
|
18
|
-
}
|
|
19
|
-
]
|
|
20
|
-
}
|
|
@@ -1,16 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"name": "lexis-two",
|
|
3
|
-
"description": "The simple way to obtain the best code. Portable rules, skills, and slash commands for AI agents with lowest tokens usage.",
|
|
4
|
-
"version": "1.0.0",
|
|
5
|
-
"author": {
|
|
6
|
-
"name": "Agustin Avellaneda",
|
|
7
|
-
"url": "https://github.com/nitdraig"
|
|
8
|
-
},
|
|
9
|
-
"homepage": "https://github.com/nitdraig/lexis-two",
|
|
10
|
-
"repository": "https://github.com/nitdraig/lexis-two",
|
|
11
|
-
"license": "MIT",
|
|
12
|
-
"keywords": ["yagni", "minimalism", "code-review", "productivity"],
|
|
13
|
-
"commands": "commands/",
|
|
14
|
-
"skills": "skills/",
|
|
15
|
-
"hooks": "hooks/copilot-hooks.json"
|
|
16
|
-
}
|
|
@@ -1,53 +0,0 @@
|
|
|
1
|
-
name: Deploy to GitHub Pages
|
|
2
|
-
|
|
3
|
-
on:
|
|
4
|
-
push:
|
|
5
|
-
branches: [main]
|
|
6
|
-
paths:
|
|
7
|
-
- "site/**"
|
|
8
|
-
workflow_dispatch:
|
|
9
|
-
|
|
10
|
-
permissions:
|
|
11
|
-
contents: read
|
|
12
|
-
pages: write
|
|
13
|
-
id-token: write
|
|
14
|
-
|
|
15
|
-
concurrency:
|
|
16
|
-
group: "pages"
|
|
17
|
-
cancel-in-progress: true
|
|
18
|
-
|
|
19
|
-
jobs:
|
|
20
|
-
build:
|
|
21
|
-
runs-on: ubuntu-latest
|
|
22
|
-
steps:
|
|
23
|
-
- uses: actions/checkout@v4
|
|
24
|
-
|
|
25
|
-
- uses: actions/setup-node@v4
|
|
26
|
-
with:
|
|
27
|
-
node-version: '22'
|
|
28
|
-
cache: npm
|
|
29
|
-
cache-dependency-path: site/package-lock.json
|
|
30
|
-
|
|
31
|
-
- name: Install dependencies
|
|
32
|
-
working-directory: site
|
|
33
|
-
run: npm ci
|
|
34
|
-
|
|
35
|
-
- name: Build Astro site
|
|
36
|
-
working-directory: site
|
|
37
|
-
run: npm run build
|
|
38
|
-
|
|
39
|
-
- name: Upload Pages Artifact
|
|
40
|
-
uses: actions/upload-pages-artifact@v3
|
|
41
|
-
with:
|
|
42
|
-
path: ./site/dist
|
|
43
|
-
|
|
44
|
-
deploy:
|
|
45
|
-
needs: build
|
|
46
|
-
runs-on: ubuntu-latest
|
|
47
|
-
environment:
|
|
48
|
-
name: github-pages
|
|
49
|
-
url: ${{ steps.deployment.outputs.page_url }}
|
|
50
|
-
steps:
|
|
51
|
-
- name: Deploy to GitHub Pages
|
|
52
|
-
id: deployment
|
|
53
|
-
uses: actions/deploy-pages@v4
|
|
@@ -1,29 +0,0 @@
|
|
|
1
|
-
name: test
|
|
2
|
-
|
|
3
|
-
on:
|
|
4
|
-
push:
|
|
5
|
-
branches: [main]
|
|
6
|
-
pull_request:
|
|
7
|
-
|
|
8
|
-
jobs:
|
|
9
|
-
test:
|
|
10
|
-
runs-on: ubuntu-latest
|
|
11
|
-
steps:
|
|
12
|
-
- uses: actions/checkout@v4
|
|
13
|
-
|
|
14
|
-
- uses: actions/setup-node@v4
|
|
15
|
-
with:
|
|
16
|
-
node-version: '22'
|
|
17
|
-
|
|
18
|
-
- uses: actions/setup-python@v5
|
|
19
|
-
with:
|
|
20
|
-
python-version: '3.12'
|
|
21
|
-
|
|
22
|
-
- name: Install Python deps for correctness checks
|
|
23
|
-
run: pip install pandas==2.2.2
|
|
24
|
-
|
|
25
|
-
- name: Check rule copies
|
|
26
|
-
run: node scripts/check-rule-copies.js
|
|
27
|
-
|
|
28
|
-
- name: Run tests
|
|
29
|
-
run: npm test
|
package/AUDIT.md
DELETED
|
@@ -1,74 +0,0 @@
|
|
|
1
|
-
# Audit Report — lexis-two v1.0.0
|
|
2
|
-
|
|
3
|
-
**Date:** 2026-06-16
|
|
4
|
-
**Scope:** Full project (repo root, hooks, commands, skills, plugins, site, tests, docs)
|
|
5
|
-
**Method:** Parallel audit across 3 agents (root+tests, hooks+commands+skills+plugins, docs+examples+assets)
|
|
6
|
-
|
|
7
|
-
---
|
|
8
|
-
|
|
9
|
-
## HIGH
|
|
10
|
-
|
|
11
|
-
| # | File | Issue |
|
|
12
|
-
|---|------|-------|
|
|
13
|
-
| 1 | `package.json` | **Version mismatch.** Root said `0.1.0`, plugin manifests said `4.6.0` (Ponytail legacy). Unified to `1.0.0` across all manifests. |
|
|
14
|
-
| 2 | `README.md:188-219` | **Roadmap desync.** v0.3 items unchecked but files exist: `pi-extension/`, `examples/`, `.claude-plugin/`, `.codex-plugin/`, `.github/plugin/`. Checkboxes should reflect reality. |
|
|
15
|
-
| 3 | `hooks/copilot-hooks.json` | **Missing node availability check.** Unlike `hooks.json` (Claude Code) which wraps node calls in `command -v node ... || exit 0`, Copilot hooks run `node` directly. Crashes if node is absent instead of degrading. |
|
|
16
|
-
| 4 | `.codex-plugin/plugin.json:13,28-29` | **Broken relative paths.** `"skills": "./skills/"` and `"logo": "./assets/logo.png"` resolve inside `.codex-plugin/` (nonexistent). Should be `../skills/` and `../assets/logo.png`. |
|
|
17
|
-
|
|
18
|
-
## MEDIUM
|
|
19
|
-
|
|
20
|
-
| # | File | Issue |
|
|
21
|
-
|---|------|-------|
|
|
22
|
-
| 5 | `tests/hooks.test.js` | **No `node:test` blocks.** Runs assertions as top-level code. First failure stops the rest. Inconsistent with all other test files. |
|
|
23
|
-
| 6 | `tests/hooks.test.js:3` | **`require('assert')` instead of `require('node:assert/strict')`.** Loose comparison could mask type coercion bugs. |
|
|
24
|
-
| 7 | `tests/hooks.test.js:21` | **Mutates `process.env` globally** without restore. Fragile if Node parallelizes test files. |
|
|
25
|
-
| 8 | `commands/lexis-two.toml` | **Missing `name` field.** All other 6 TOML commands have `name`. This one only has `description` + `prompt`. |
|
|
26
|
-
| 9 | `hooks/lexis-two-instructions.js:75` + `lexis-two-config.js:32` | **`normalizePersistedMode` duplicated.** Same function name, different implementations. Risk of silent divergence. |
|
|
27
|
-
| 10 | `docs/portability.md:6` | **Stale reference.** Says "static landing in `docs/`" but site source is in `site/`. |
|
|
28
|
-
| 11 | `examples/` | **Stack mismatch with roadmap.** README promises Next.js, Express, MongoDB, PostgreSQL examples. Actual: Python/FastAPI + JS vanilla. |
|
|
29
|
-
| 12 | `tests/gemini-extension.test.js:26` | **Hardcoded command subset.** Only validates 2 of 7 command files. Other tests cover more. |
|
|
30
|
-
|
|
31
|
-
## LOW
|
|
32
|
-
|
|
33
|
-
| # | File | Issue |
|
|
34
|
-
|---|------|-------|
|
|
35
|
-
| 13 | `.github/workflows/test.yml` | No npm dependency caching (deploy.yml has it). |
|
|
36
|
-
| 14 | `.github/workflows/test.yml:23` | `pip install pandas` without version pin. |
|
|
37
|
-
| 15 | `.github/workflows/test.yml` vs `deploy-site.yml` | `node-version` quoting inconsistent (string vs integer). |
|
|
38
|
-
| 16 | `hooks/lexis-two-config.js:1` | Shebang on module that is only `require()`'d, never run directly. |
|
|
39
|
-
| 17 | `plugins/` and `modes/` | Empty directories, unreferenced anywhere. |
|
|
40
|
-
| 18 | `assets/lexis-two-complete.webp` + `social-preview.png` | Unreferenced files. |
|
|
41
|
-
| 19 | `README.md:22` | Subtitle says "Lexis-Two-specific runs pending" but benchmarks exist. |
|
|
42
|
-
| 20 | `README.md:160` | `my-skills` in README vs `my-cursor-skills` in marketplace.json. |
|
|
43
|
-
| 21 | `scripts/check-rule-copies.js` | No unit test for the script itself. |
|
|
44
|
-
|
|
45
|
-
---
|
|
46
|
-
|
|
47
|
-
## Verified OK
|
|
48
|
-
|
|
49
|
-
- 36 root tests + 2 pi-extension tests pass
|
|
50
|
-
- Site build: 4 pages, sitemap + robots.txt generated
|
|
51
|
-
- Chart.js lazy-loaded via IntersectionObserver
|
|
52
|
-
- Structured data (JSON-LD) in Layout
|
|
53
|
-
- Skip link i18n working
|
|
54
|
-
- License MIT correct (includes Ponytail attribution)
|
|
55
|
-
- `.env` not tracked in git
|
|
56
|
-
- No hardcoded secrets
|
|
57
|
-
- Hooks degrade gracefully (except copilot-hooks.json — HIGH #3)
|
|
58
|
-
- `check-rule-copies.js` validates 5 rule copies match AGENTS.md
|
|
59
|
-
- `focus-visible` styles present
|
|
60
|
-
- `--text-muted` contrast passes WCAG AA (5.2:1)
|
|
61
|
-
|
|
62
|
-
---
|
|
63
|
-
|
|
64
|
-
## Actions Taken in This Session
|
|
65
|
-
|
|
66
|
-
1. **Version unified to `1.0.0`** across `package.json`, `gemini-extension.json`, `.claude-plugin/plugin.json`, `.codex-plugin/plugin.json`, `.github/plugin/plugin.json`, `site/package.json`.
|
|
67
|
-
2. **`.codex-plugin` paths fixed** — `skills` and asset references point to `../`.
|
|
68
|
-
3. **Test updated** — `gemini-extension.test.js` now also validates `package.json` version consistency.
|
|
69
|
-
4. **Spanish translation fixed** — tildes, interrogaciones de apertura, skip link i18n, "Copied" feedback.
|
|
70
|
-
5. **Accessibility** — `focus-visible` global, `--text-muted` contrast, heading hierarchy.
|
|
71
|
-
6. **Dead code removed** — `BenchmarkPage.astro` deleted (253 lines).
|
|
72
|
-
7. **Chart.js lazy-loaded** — IntersectionObserver on `#benchmarks`, 200KB off main thread.
|
|
73
|
-
8. **SEO** — `@astrojs/sitemap`, `robots.txt`, JSON-LD `SoftwareApplication`, `meta robots` + `author`.
|
|
74
|
-
9. **Language switcher** — Pill button with globe SVG icon, aria-labels, scoped CSS.
|