Skip to content

Conversation

@sameezy667
Copy link

@sameezy667 sameezy667 commented Dec 13, 2025

Summary
Add a professional static marketing website for Zplit with modern design and full governance compliance.

Features

  • 🎨 Landing Page: Hero section, features, phone mockups with glassmorphism effects
  • 📱 Design Showcase: 6 interactive app screens with light/dark theme toggle
  • Interactive Forms: Account creation with validation and expense splitting calculator
  • 🔒 Governance: GPL v3 license, KYA modal, The Stable Order copyright
  • 🔗 Deep Linking: Android App Links configuration
  • 🎭 Modern Design: Glassmorphism, Lottie animations, Material Design principles
  • 📱 Responsive: Works on all device sizes

Files Added

  • docs/index.html - Main landing page
  • docs/designs.html - Design showcase with interactive demos
  • docs/LICENSE.md - GPL v3 license
  • docs/COPYRIGHT.md - Copyright and attribution
  • docs/.well-known/assetlinks.json - Android deep linking
  • docs/.nojekyll - GitHub Pages configuration

Ready for GitHub Pages deployment!

Summary by CodeRabbit

  • Documentation

    • Added copyright and GPL-3.0 licensing documentation
  • New Features

    • Added landing page showcasing product overview and capabilities
    • Added interactive design showcase featuring expense splitting calculator, account setup flow, and analytics dashboard with dark/light theme support

✏️ Tip: You can customize this high-level summary in your review settings.

…mpliance, and deep linking support

Features:
- Landing page with interactive hero section and phone mockups
- Design showcase with 6 interactive app screens
- Account creation with validation and localStorage persistence
- Real-time expense splitting calculator (equal/custom/percentage)
- Light/Dark theme toggle
- Glassmorphism effects and Lottie animation support
- GPL v3 license with full governance footer
- KYA (Know Your Assumptions) modal and share functionality
- Android App Links configuration (.well-known/assetlinks.json)
- Stability Nexus logo integration throughout
- Responsive design with Material Design principles
@coderabbitai
Copy link

coderabbitai bot commented Dec 13, 2025

Walkthrough

This pull request adds foundational web presence files to the docs directory: an Android Asset Links configuration file, copyright and licensing documentation (GPL-3.0), a responsive landing page showcasing the Zplit project with hero section and features, and an interactive design showcase page featuring split calculator logic, account creation, theme toggle, and modal dialogs.

Changes

Cohort / File(s) Summary
Asset Links & Configuration
docs/.well-known/assetlinks.json
New Android Asset Links JSON file declaring handle_all_urls delegation for the com.stabilitynexus.zplit Android app with two SHA-256 certificate fingerprints.
Documentation
docs/COPYRIGHT.md, docs/LICENSE.md
Added GPL-3.0 copyright notice and full GNU General Public License v3 text with project metadata, terms, conditions, and contact information.
Landing & Design Pages
docs/index.html, docs/designs.html
New static HTML pages: landing page with hero section, feature cards, responsive navigation, and modals; design showcase with interactive split calculator (equal/custom/percent modes), account creation form with validation and localStorage persistence, theme toggle, and UI component demonstrations.

Estimated code review effort

🎯 3 (Moderate) | ⏱️ ~35 minutes

  • designs.html requires careful review of client-side logic: split calculator modes and auto-calculation, form validation logic, localStorage data persistence, and modal state management
  • index.html requires verification of responsive design breakpoints, navigation interactivity, modal dismiss handlers, and Lottie animation error handling
  • Accessibility considerations in both HTML files (semantic markup, ARIA attributes, keyboard navigation)
  • Consistency of theme toggle implementation across both pages

Poem

🐰 A new landing page hops into view,
With designs and docs, the site's born anew!
Split calculators spring and dance with delight,
While modals and toggles switch day into night—
From asset links to GPL's noble way,
Zplit's web presence blooms bright as the day! 🌟

Pre-merge checks and finishing touches

✅ Passed checks (3 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title accurately describes the main deliverable of the PR: launching a static website with modern design, deep linking configuration (Android App Links), and governance compliance (GPL v3 license and KYA).
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
✨ Finishing touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Post copyable unit tests in a comment

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

Copy link

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 8

📜 Review details

Configuration used: CodeRabbit UI

Review profile: CHILL

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between a490608 and 8933b59.

📒 Files selected for processing (5)
  • docs/.well-known/assetlinks.json (1 hunks)
  • docs/COPYRIGHT.md (1 hunks)
  • docs/LICENSE.md (1 hunks)
  • docs/designs.html (1 hunks)
  • docs/index.html (1 hunks)
🧰 Additional context used
🪛 LanguageTool
docs/LICENSE.md

[style] ~29-~29: Consider using only “Public” to avoid wordiness.
Context: ...re referring to freedom, not price. Our General Public Licenses are designed to make sure that...

(GENERAL_XX)


[style] ~93-~93: Consider a more concise word here.
Context: ...are not required to accept this License in order to receive or run a copy of the Program. A...

(IN_ORDER_TO_PREMIUM)


[style] ~93-~93: To make your writing clearer, consider a shorter, more direct phrase.
Context: ...tion of a covered work occurring solely as a consequence of using peer-to-peer transmission to rece...

(AS_A_CONSEQUENCE_OF)

🪛 markdownlint-cli2 (0.18.1)
docs/COPYRIGHT.md

45-45: Bare URL used

(MD034, no-bare-urls)

docs/LICENSE.md

134-134: Bare URL used

(MD034, no-bare-urls)

🔇 Additional comments (1)
docs/index.html (1)

23-24: The asset paths are correct as-is; the suggested fix would break them.

The assets/stability.svg file is located at the repository root, not inside the docs/ directory. From docs/index.html, the path ../assets/stability.svg correctly points to the asset at the repo root. Changing to ./assets/stability.svg would cause 404 errors on GitHub Pages because it would look for the asset inside the docs/ directory where it doesn't exist.

Likely an incorrect or invalid review comment.

Comment on lines +1 to +13
[
{
"relation": ["delegate_permission/common.handle_all_urls"],
"target": {
"namespace": "android_app",
"package_name": "com.stabilitynexus.zplit",
"sha256_cert_fingerprints": [
"14:6D:E9:83:C5:73:06:50:D8:EE:B9:95:2F:34:FC:64:16:A0:83:42:E6:1D:BE:A8:8A:04:96:B2:3F:CF:44:E5",
"AA:BB:CC:DD:EE:FF:00:11:22:33:44:55:66:77:88:99:AA:BB:CC:DD:EE:FF:00:11:22:33:44:55:66:77:88:99"
]
}
}
] No newline at end of file
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🔴 Critical

🧩 Analysis chain

🏁 Script executed:

# Check if this file exists and examine its full context
git ls-files | grep -i assetlinks

Repository: StabilityNexus/Zplit

Length of output: 96


🏁 Script executed:

# Check git history for this file
git log --oneline -- "docs/.well-known/assetlinks.json" | head -20

Repository: StabilityNexus/Zplit

Length of output: 175


🏁 Script executed:

# Look for any documentation or context about this file
find . -type f -name "*.md" -o -name "*.txt" -o -name "*.doc*" | xargs grep -l "assetlinks\|SHA-256\|App Links" 2>/dev/null | head -10

Repository: StabilityNexus/Zplit

Length of output: 46


🏁 Script executed:

# Check if there are other assetlinks files or similar patterns in the repo
find . -type f -name "*assetlinks*" -o -name "*app-links*"

Repository: StabilityNexus/Zplit

Length of output: 98


🏁 Script executed:

# Show the git commit details
git show 8933b59 -- docs/.well-known/assetlinks.json | head -50

Repository: StabilityNexus/Zplit

Length of output: 1654


🏁 Script executed:

# Check if there's any README or documentation about setting up this file
find . -type f \( -name "README*" -o -name "SETUP*" -o -name "CONTRIBUTING*" \) -exec grep -l "assetlinks\|fingerprint\|deep.*link\|App.*Link" {} \;

Repository: StabilityNexus/Zplit

Length of output: 46


🏁 Script executed:

# Check the package name in the file to see if it matches the app
rg "com\.stabilitynexus\.zplit" --type json

Repository: StabilityNexus/Zplit

Length of output: 46


🏁 Script executed:

# Look for Android app source code
find . -type f \( -name "*.gradle" -o -name "AndroidManifest.xml" -o -name "build.gradle*" \) | head -10

Repository: StabilityNexus/Zplit

Length of output: 254


🏁 Script executed:

# Check for any documentation about the certificate fingerprints
rg "14:6D:E9:83" -A 2 -B 2

Repository: StabilityNexus/Zplit

Length of output: 46


🏁 Script executed:

# Look for any references to certificate fingerprints or signing config
rg "fingerprint\|signing\|keystore" --type json --type gradle --type xml -i | head -20

Repository: StabilityNexus/Zplit

Length of output: 46


🏁 Script executed:

# Examine the Android app build configuration to see signing details
cat -n android/app/build.gradle.kts | head -100

Repository: StabilityNexus/Zplit

Length of output: 1753


🏁 Script executed:

# Look for any signing configuration
rg "signingConfigs\|sign\|keyStore" android/ -A 5

Repository: StabilityNexus/Zplit

Length of output: 46


🏁 Script executed:

# Check if there are other Android modules or package name configurations
find android/ -name "build.gradle.kts" -o -name "build.gradle" | xargs grep -l "com.stabilitynexus\|applicationId" 2>/dev/null

Repository: StabilityNexus/Zplit

Length of output: 92


🏁 Script executed:

# Check the git history to see if the package name was changed
git log --all -p -- android/app/build.gradle.kts | grep -A 5 -B 5 "applicationId\|namespace" | head -40

Repository: StabilityNexus/Zplit

Length of output: 1408


Replace placeholder fingerprints and verify package name matches Android app.

The second fingerprint (AA:BB:CC:DD:EE:FF:00:11:...) is a placeholder and will prevent Android App Links verification from succeeding. Additionally:

  • The first fingerprint does not appear in the actual Android app signing configuration (which currently uses debug keys)
  • The package_name in assetlinks.json (com.stabilitynexus.zplit) does not match the Android app package name (com.example.zplit per android/app/build.gradle.kts)

Both fingerprints must be replaced with the actual SHA-256 hashes of the debug and/or release signing certificates, and the package name must match the app's applicationId.

🤖 Prompt for AI Agents
In docs/.well-known/assetlinks.json around lines 1 to 13, the assetlinks file
contains a placeholder fingerprint and a mismatched package name; replace the
placeholder fingerprint (AA:BB:...) and the incorrect first fingerprint with the
actual SHA-256 signing-certificate fingerprints for your debug and/or release
keys and change "package_name" to match the app's applicationId
(com.example.zplit). Obtain the correct SHA-256 values from your signing key
(e.g., via keytool or the Android Gradle signing report) and list them both in
the sha256_cert_fingerprints array, then verify the file is reachable at
https://<your-domain>/.well-known/assetlinks.json and that the package_name
exactly matches android/app/build.gradle.kts.

Comment on lines +3 to +4
**Copyright © 2025 The Stable Order. All rights reserved.**

Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟠 Major

Avoid “All rights reserved” alongside GPL notice (mixed legal signal).
GPL-3.0 grants broad rights; keeping “All rights reserved” in the same notice can be confusing/misleading.

-**Copyright © 2025 The Stable Order. All rights reserved.**
+**Copyright © 2025 The Stable Order.**

Also applies to: 14-21

Comment on lines +44 to +47
**The Stable Order**
Email: contact@stability.nexus
Website: [https://stability.nexus/](https://stability.nexus/)
GitHub: [https://github.com/StabilityNexus](https://github.com/StabilityNexus)
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟡 Minor

Add mailto: for the email to satisfy markdown linters / consistency.

-Email: contact@stability.nexus  
+Email: [contact@stability.nexus](mailto:contact@stability.nexus)  
📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
**The Stable Order**
Email: contact@stability.nexus
Website: [https://stability.nexus/](https://stability.nexus/)
GitHub: [https://github.com/StabilityNexus](https://github.com/StabilityNexus)
**The Stable Order**
Email: [contact@stability.nexus](mailto:contact@stability.nexus)
Website: [https://stability.nexus/](https://stability.nexus/)
GitHub: [https://github.com/StabilityNexus](https://github.com/StabilityNexus)
🧰 Tools
🪛 markdownlint-cli2 (0.18.1)

45-45: Bare URL used

(MD034, no-bare-urls)

🤖 Prompt for AI Agents
In docs/COPYRIGHT.md around lines 44 to 47 the contact email is plain text;
update it to a mailto link to satisfy markdown linters and keep consistency —
replace "Email: contact@stability.nexus" with a Markdown link using mailto
(e.g., Email: [contact@stability.nexus](mailto:contact@stability.nexus)).

Comment on lines +926 to +1072
<script>
let currentSplitMethod = 'equal';

function setTheme(theme) {
const body = document.body;
const buttons = document.querySelectorAll('.theme-btn');

buttons.forEach(btn => btn.classList.remove('active'));
event.target.classList.add('active');

if (theme === 'dark') {
body.classList.add('dark-mode');
} else {
body.classList.remove('dark-mode');
}
}

function setSplitMethod(method) {
currentSplitMethod = method;
document.querySelectorAll('#expense-screen button[id^="split-"]').forEach(btn => {
btn.style.background = 'white';
btn.style.color = 'var(--text-dark)';
btn.style.border = '1px solid #ddd';
});
const activeBtn = document.getElementById('split-' + method);
activeBtn.style.background = 'var(--primary-green)';
activeBtn.style.color = 'white';
activeBtn.style.border = 'none';
calculateSplit();
}

function calculateSplit() {
const amount = parseFloat(document.getElementById('expense-amount').value) || 0;
const people = parseInt(document.getElementById('expense-people').value) || 2;
const resultDiv = document.getElementById('split-result');

if (amount === 0) {
resultDiv.innerHTML = '💰 Enter an amount to split';
return;
}

let perPerson = 0;
let message = '';

switch(currentSplitMethod) {
case 'equal':
perPerson = amount / people;
message = `💰 Each person pays: <strong>$${perPerson.toFixed(2)}</strong>`;
break;
case 'custom':
message = `✏️ Custom split - Assign amounts manually for ${people} people`;
break;
case 'percent':
message = `📊 Percentage split - Divide $${amount.toFixed(2)} by percentages`;
break;
}

resultDiv.innerHTML = message;
}

// Account creation with validation
function createAccount() {
const username = document.getElementById('account-username').value.trim();
const displayname = document.getElementById('account-displayname').value.trim();
const usernameError = document.getElementById('username-error');
const displaynameError = document.getElementById('displayname-error');
const successMsg = document.getElementById('account-success');

let isValid = true;

// Reset errors
usernameError.style.display = 'none';
displaynameError.style.display = 'none';
successMsg.style.display = 'none';

// Validate username
if (!username) {
usernameError.textContent = 'Username is required';
usernameError.style.display = 'block';
isValid = false;
} else if (username.length < 3) {
usernameError.textContent = 'Username must be at least 3 characters';
usernameError.style.display = 'block';
isValid = false;
} else if (!/^[a-zA-Z0-9_]+$/.test(username)) {
usernameError.textContent = 'Username can only contain letters, numbers, and underscores';
usernameError.style.display = 'block';
isValid = false;
}

// Validate display name
if (!displayname) {
displaynameError.textContent = 'Display name is required';
displaynameError.style.display = 'block';
isValid = false;
}

if (isValid) {
// Store in localStorage (simulating local storage)
localStorage.setItem('zplit_username', username);
localStorage.setItem('zplit_displayname', displayname);

// Show success with animation
successMsg.style.display = 'block';
successMsg.style.animation = 'slideInUp 0.5s ease-out';

// Clear form
document.getElementById('account-username').value = '';
document.getElementById('account-displayname').value = '';

// Display saved account info
const accountInfo = document.getElementById('saved-account-info');
if (accountInfo) {
accountInfo.innerHTML = `
<div style="margin-top: 1rem; padding: 1rem; background: rgba(76, 175, 80, 0.1); border-radius: 8px; border-left: 4px solid var(--primary-green);">
<p style="margin: 0; font-weight: 600;">Saved Account:</p>
<p style="margin: 0.5rem 0 0 0;">Username: @${username}</p>
<p style="margin: 0.5rem 0 0 0;">Display Name: ${displayname}</p>
</div>
`;
}

setTimeout(() => {
successMsg.style.animation = 'fadeOut 0.5s ease-out';
setTimeout(() => {
successMsg.style.display = 'none';
}, 500);
}, 3000);
}
}

@keyframes slideInUp {
from {
transform: translateY(20px);
opacity: 0;
}
to {
transform: translateY(0);
opacity: 1;
}
}

@keyframes fadeOut {
from { opacity: 1; }
to { opacity: 0; }
}

Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🔴 Critical

Critical: invalid CSS @keyframes inside <script> breaks all JS on the page.
Move those keyframes into the <style> block (or remove if not needed).

         function createAccount() {
           $$$
         }
-        
-        @keyframes slideInUp {
-            from {
-                transform: translateY(20px);
-                opacity: 0;
-            }
-            to {
-                transform: translateY(0);
-                opacity: 1;
-            }
-        }
-        
-        @keyframes fadeOut {
-            from { opacity: 1; }
-            to { opacity: 0; }
-        }

Committable suggestion skipped: line range outside the PR's diff.

🤖 Prompt for AI Agents
In docs/designs.html around lines 926 to 1072 there are CSS @keyframes rules
placed inside a <script> tag which breaks JS execution; move the @keyframes
slideInUp and fadeOut declarations out of the script block into an existing or
new <style> block (or into the page's CSS file) so the animations remain defined
but the script contains only JavaScript; ensure you remove the @keyframes from
the script and verify the animation class names still match the JS usage.

Comment on lines +929 to +941
function setTheme(theme) {
const body = document.body;
const buttons = document.querySelectorAll('.theme-btn');

buttons.forEach(btn => btn.classList.remove('active'));
event.target.classList.add('active');

if (theme === 'dark') {
body.classList.add('dark-mode');
} else {
body.classList.remove('dark-mode');
}
}
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🔴 Critical

Fix setTheme() relying on implicit global event (breaks in many browsers).

-<button class="theme-btn active" onclick="setTheme('light')">Light</button>
-<button class="theme-btn" onclick="setTheme('dark')">Dark</button>
+<button class="theme-btn active" onclick="setTheme('light', event)">Light</button>
+<button class="theme-btn" onclick="setTheme('dark', event)">Dark</button>
-        function setTheme(theme) {
+        function setTheme(theme, event) {
             const body = document.body;
             const buttons = document.querySelectorAll('.theme-btn');
             
             buttons.forEach(btn => btn.classList.remove('active'));
             event.target.classList.add('active');

Committable suggestion skipped: line range outside the PR's diff.

🤖 Prompt for AI Agents
In docs/designs.html around lines 929–941, setTheme() currently uses an implicit
global event (event.target) which is nonstandard and breaks in many browsers;
change the function to accept the event (e.g., function setTheme(theme, event))
and use event.currentTarget (or event.target if caller ensures target) to mark
the clicked button as active, update callers to pass the event (or call with
.bind/this if using inline handlers), and keep the rest of the logic (remove
'active' from all .theme-btn and add 'dark-mode' to body when theme === 'dark').

Comment on lines +616 to +617
<li><a href="https://github.com/StabilityNexus/Zplit" target="_blank">GitHub</a></li>
</ul>
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟠 Major

Add rel="noopener noreferrer" to target="_blank" links.

-<a href="https://github.com/StabilityNexus/Zplit" target="_blank">GitHub</a>
+<a href="https://github.com/StabilityNexus/Zplit" target="_blank" rel="noopener noreferrer">GitHub</a>

(Apply similarly to all external target="_blank" anchors on this page.)

Also applies to: 761-766, 772-787, 805-821

🤖 Prompt for AI Agents
In docs/index.html around lines 616-617 (and also apply the same change to the
other affected ranges 761-766, 772-787, 805-821), any anchor with
target="_blank" should include rel="noopener noreferrer"; update each external
<a> tag that opens in a new tab to add rel="noopener noreferrer" alongside
target="_blank" to prevent window.opener vulnerabilities and improve security,
making sure to add the attribute to every external anchor in those line ranges
without altering other attributes or link text.

Comment on lines +4 to +10
Copyright © 2025 The Stable Order. All rights reserved.

This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.

Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟠 Major

Drop “All rights reserved” in GPL header.
It’s commonly removed in GPL’d projects to avoid conflicting signals.

-Copyright © 2025 The Stable Order. All rights reserved.
+Copyright © 2025 The Stable Order.
📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
Copyright © 2025 The Stable Order. All rights reserved.
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
Copyright © 2025 The Stable Order.
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
🤖 Prompt for AI Agents
In docs/LICENSE.md around lines 4 to 10, the GPL header currently includes the
phrase "All rights reserved" which should be removed; update the header by
deleting "All rights reserved." so the copyright line simply reads "Copyright ©
2025 The Stable Order." and leave the rest of the GPL text unchanged.

Comment on lines +131 to +137
**The Stable Order**
Website: [https://stability.nexus/](https://stability.nexus/)
GitHub: [https://github.com/StabilityNexus](https://github.com/StabilityNexus)
Email: contact@stability.nexus

For questions about this license or Zplit, please visit our GitHub repository:
[https://github.com/StabilityNexus/Zplit](https://github.com/StabilityNexus/Zplit)
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟡 Minor

Make email a mailto: link (and keep link style consistent).

 Email: contact@stability.nexus
+Email: [contact@stability.nexus](mailto:contact@stability.nexus)
📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
**The Stable Order**
Website: [https://stability.nexus/](https://stability.nexus/)
GitHub: [https://github.com/StabilityNexus](https://github.com/StabilityNexus)
Email: contact@stability.nexus
For questions about this license or Zplit, please visit our GitHub repository:
[https://github.com/StabilityNexus/Zplit](https://github.com/StabilityNexus/Zplit)
**The Stable Order**
Website: [https://stability.nexus/](https://stability.nexus/)
GitHub: [https://github.com/StabilityNexus](https://github.com/StabilityNexus)
Email: [contact@stability.nexus](mailto:contact@stability.nexus)
For questions about this license or Zplit, please visit our GitHub repository:
[https://github.com/StabilityNexus/Zplit](https://github.com/StabilityNexus/Zplit)
🧰 Tools
🪛 markdownlint-cli2 (0.18.1)

134-134: Bare URL used

(MD034, no-bare-urls)

🤖 Prompt for AI Agents
In docs/LICENSE.md around lines 131 to 137, the plain email address should be
converted into a mailto link and match the existing Markdown link style; replace
the line "Email: contact@stability.nexus" with a Markdown link form such as
"Email: [contact@stability.nexus](mailto:contact@stability.nexus)" so it becomes
clickable and consistent with the Website/GitHub links.

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