Skip to content
Merged
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
4 changes: 4 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,10 @@
<a href="#documentation">Documentation</a>
</p>

<p align="center">
<a href="https://vamfi.github.io/codsemble/">Open the interactive project guide →</a>
</p>

---

## Why Codesemble?
Expand Down
8 changes: 7 additions & 1 deletion artifacts/CHECKSUMS.sha256
Original file line number Diff line number Diff line change
Expand Up @@ -21,14 +21,20 @@ ca34cfa4c7ad03edfc6b1dcf764fe44f6cb3465480f7177392ecf2c22e3c979c assets/social/
11bb7eb8dc8752d0320f00b10d356c950c00b029394562c13da58a8421fa3b23 CHANGELOG.md
8237734d45581f5ae60b5c0ba597b729846e8a5dcd3d3d50a6535fd0d09f6a5f CODE_OF_CONDUCT.md
e5f38de7b71097b9017788638f7972d9e45e6ea98022131290f4742eaca0e66d CONTRIBUTING.md
e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 docs/.nojekyll
436f4f88fe38c9371ada5091b152e180f1399668d29691cf3293f7f9899673b8 docs/ARCHITECTURE.md
d452b9a068b7edf94b916e093755563701a0a9aed9fae914d857421377087e89 docs/assets/codsemble-concept-native-compiler.webp
beaae606bcf49d4c99490daec3cfafff54b5ceb41765a9bffb832bfb2136acd2 docs/assets/codsemble-prism-flow.webp
f929dfc14de476c5ed1ce3c6e27f4cb9d7c9c45f7d3884c9b793174b74a1397c docs/BRAND.md
f41132adc833328e17b1e304ef41c4a3f72401b674d997f56269b3481e7b45d6 docs/CONFIG_SAFETY.md
015308700a7ceb71a073b7e7a619d44ec3367db0a33a49b73aab4f3346c209ab docs/DEFINITION_OF_DONE.md
2e259a451763d030d30864a118c0c7e9302fb0d0413d21a0280244230d48e40c docs/index.html
7f585f942f10a18f836b53d822028f39a2d5b6bf91f16b1218ab73aeee140047 docs/MIGRATION_V0_2.md
7b1b0fae02c9f36405ab7ca0ac97b5bf69e71b23a23e9e7ab8af484170fdd8ee docs/PRIVACY.md
5a54e204e4c0e9357442784225835f2bf0c865fb174351d175b4167e990addf9 docs/PROJECT_CAPABILITY_COMPILER.md
5bbc7300b711e5e25085d3282e2e234f264baf96d189305e33e5fd9e7832d3de docs/ROLE_CATALOG.md
38447c010dda4a69fe2c5963dd205366797901eb6865e95abd1507f5f16aca9c docs/script.js
2f12582b7da4af3174bb8630900ce8f2e6ef01c5e5d999ab248d5e24031bc1df docs/styles.css
a992f4b3cb388bac1a5d43b9a31a13be80505778894211aa46761e64e4fe56af docs/THREAT_MODEL.md
e03c31ce5087e8a203f2500791228e3c5fa9dfbb8bebf2f7352e2c31e14ee93e docs/USAGE.md
05575afa5edbb76589ee5ee00fcc3b1a07cb62a02c2b42fa204115c4e4742540 docs/USEFULNESS_COMPARISON.md
Expand All @@ -54,7 +60,7 @@ ec89a95f29bb67625a44663c08b0939cf522158cd094e31015b83c1a20c2062b plugins/codsem
a6689d5a15007ba0942ca9ff9538be7a3fc8e1c4b0993191b928063161f57098 plugins/codsemble/skills/update-team/agents/openai.yaml
d9297755666b1e88886564fc71bc060872d813c9fe043dd94954a210612491ba plugins/codsemble/skills/update-team/SKILL.md
152eb46211db24f9e4bdb3dd38a11ab0aa7ea6a19bc8a95c0b5d9521fc8ed289 PROJECT_GOAL.md
ffc6a562725255b92d420ecf5b25421573dc386c97052a59ca240fa72334f327 README.md
29c0ecda59afb32e5a2a3cad0ee0751a6dd8073a53d51f519faf52b12dca0a12 README.md
0504448900848d23d063b412d816ad2f5c5e786b4e6e0cb8754803f8f588cc2d ROADMAP.md
d2d0dd1a73d5d788475bc040d23b617f7d0ee324d8b40bd081a68b27eada18d2 scripts/build.mjs
c6581520fed9f775f87ef1e054c46e786129f03d79b7ad31a441c59e4bdd343a scripts/checksums.mjs
Expand Down
Empty file added docs/.nojekyll
Empty file.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added docs/assets/codsemble-prism-flow.webp
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
116 changes: 116 additions & 0 deletions docs/index.html

Large diffs are not rendered by default.

79 changes: 79 additions & 0 deletions docs/script.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,79 @@
const evidenceCopy = {
delivery: "A delivery goal activates a delivery work package and makes its evidence traceable.",
security: "A security requirement justifies a specialist review instead of a generic extra agent.",
tests: "An existing test boundary gives the compiler a concrete validation owner to cover.",
};

const menuToggle = document.querySelector(".menu-toggle");
const siteNav = document.querySelector(".site-nav");
menuToggle?.addEventListener("click", () => {
const open = menuToggle.getAttribute("aria-expanded") === "true";
menuToggle.setAttribute("aria-expanded", String(!open));
siteNav?.classList.toggle("is-open", !open);
});
siteNav?.querySelectorAll("a").forEach((link) => {
link.addEventListener("click", () => {
menuToggle?.setAttribute("aria-expanded", "false");
siteNav.classList.remove("is-open");
});
});

const tabs = [...document.querySelectorAll('[role="tab"]')];
const panels = [...document.querySelectorAll("[data-team-panel]")];
function selectTeam(team, focus = false) {
tabs.forEach((tab) => {
const selected = tab.dataset.team === team;
tab.setAttribute("aria-selected", String(selected));
tab.tabIndex = selected ? 0 : -1;
});
panels.forEach((panel) => { panel.hidden = panel.dataset.teamPanel !== team; });
if (focus) tabs.find((tab) => tab.dataset.team === team)?.focus();
}
tabs.forEach((tab, index) => {
tab.addEventListener("click", () => selectTeam(tab.dataset.team));
tab.addEventListener("keydown", (event) => {
if (!["ArrowRight", "ArrowLeft", "Home", "End"].includes(event.key)) return;
event.preventDefault();
const next = event.key === "Home" ? 0 : event.key === "End" ? tabs.length - 1 : (index + (event.key === "ArrowRight" ? 1 : -1) + tabs.length) % tabs.length;
selectTeam(tabs[next].dataset.team, true);
});
});

const evidenceDetail = document.querySelector("#evidence-detail-text");
document.querySelectorAll("[data-evidence]").forEach((chip) => {
chip.addEventListener("click", () => {
document.querySelectorAll("[data-evidence]").forEach((item) => item.classList.toggle("is-active", item === chip));
if (evidenceDetail) evidenceDetail.textContent = evidenceCopy[chip.dataset.evidence] ?? "This signal contributes to a bounded work package.";
});
});

document.querySelectorAll("[data-copy-target]").forEach((button) => {
button.addEventListener("click", async () => {
const target = document.getElementById(button.dataset.copyTarget);
const status = button.closest(".command-box")?.querySelector(".copy-status");
if (!target) return;
try {
await navigator.clipboard.writeText(target.textContent.trim());
button.textContent = "Copied";
if (status) status.textContent = "Install commands copied to your clipboard.";
} catch {
if (status) status.textContent = "Copy is unavailable here; select the commands above instead.";
}
window.setTimeout(() => { button.textContent = "Copy"; }, 1800);
});
});

const reduceMotion = window.matchMedia("(prefers-reduced-motion: reduce)").matches;
if (!reduceMotion && "IntersectionObserver" in window) {
const observer = new IntersectionObserver((entries) => {
entries.forEach((entry) => {
if (entry.isIntersecting) {
entry.target.classList.add("is-visible");
observer.unobserve(entry.target);
}
});
}, { threshold: .12 });
document.querySelectorAll(".reveal").forEach((element) => observer.observe(element));
} else {
document.querySelectorAll(".reveal").forEach((element) => element.classList.add("is-visible"));
}
Loading
Loading