mirror of
https://github.com/storytold/figcraft.git
synced 2026-10-24 10:27:00 -06:00
Progress docs: target-app parity, gaps, alpha gate, readiness by audience (#100)
Progress docs per craftrules standards/progress-docs.md: target-app parity, gaps, roadmap with alpha gate, readiness by audience (full / mainstream / essentials) with Opus 5.5 hours, and auto layout, components, prototyping, dev mode, collaboration, format, hardware, UI and localization parity docs. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Opus 5.5
parent
4924512f4e
commit
97159514b4
+14
-5
@@ -3,7 +3,7 @@
|
||||
//! - `ci` fmt check, clippy -D warnings, tests, layers, assets, wasm check
|
||||
//! - `layers` crate dependency layering check
|
||||
//! - `assets` every file under assets/ and docs/ has a row in ATTRIBUTION.md
|
||||
//! - `parity` menu-catalog coverage → docs/parity.md
|
||||
//! - `parity` menu-catalog coverage → docs/parity-checklist.md
|
||||
//! - `version` print the version, or `version set X.Y.Z`
|
||||
//! - `icon` regenerate the app icon PNGs/ICO from code (original artwork)
|
||||
//! - `wasm` check the core crates and web app for wasm32, and build the plugin SDK and examples
|
||||
@@ -198,8 +198,17 @@ fn parity() -> bool {
|
||||
];
|
||||
let (done, total, missing) = figcraft_engine::catalog::parity(&extra);
|
||||
let pct = done as f64 * 100.0 / total.max(1) as f64;
|
||||
// The generation date: the date of the last commit (no clock dependency in xtask).
|
||||
let date = Command::new("git")
|
||||
.args(["log", "-1", "--format=%cs"])
|
||||
.current_dir(root())
|
||||
.output()
|
||||
.ok()
|
||||
.and_then(|o| String::from_utf8(o.stdout).ok())
|
||||
.map(|d| d.trim().to_string())
|
||||
.unwrap_or_default();
|
||||
let mut md = format!(
|
||||
"# Parity report\n\nGenerated by `cargo xtask parity`: FigCraft commands registered for the incumbent's main menu and toolbar ({} commands in the engine).\n\n**{done} / {total} menu items ({pct:.1}%)**\n\n",
|
||||
"# Parity checklist\n\n> **Generated:** {date} by `cargo xtask parity`. Do not edit by hand.\n\nFigCraft commands registered for the incumbent's main menu and toolbar ({} commands in the engine).\n\n**{done} / {total} menu items ({pct:.1}%)**\n\n",
|
||||
figcraft_engine::all_commands().len()
|
||||
);
|
||||
if missing.is_empty() {
|
||||
@@ -210,13 +219,13 @@ fn parity() -> bool {
|
||||
md.push_str(&format!("- `{m}`\n"));
|
||||
}
|
||||
}
|
||||
md.push_str("\nMenu coverage measures breadth only; see ROADMAP.md for depth and fidelity.\n");
|
||||
let path = root().join("docs/parity.md");
|
||||
md.push_str("\nMenu coverage measures breadth only; see docs/target-app-parity.md for depth and fidelity.\n");
|
||||
let path = root().join("docs/parity-checklist.md");
|
||||
if let Err(e) = std::fs::write(&path, md) {
|
||||
eprintln!("{}: {e}", path.display());
|
||||
return false;
|
||||
}
|
||||
eprintln!("parity: {done}/{total} ({pct:.1}%) → docs/parity.md");
|
||||
eprintln!("parity: {done}/{total} ({pct:.1}%) → docs/parity-checklist.md");
|
||||
true
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user