Files
ECC/scripts/feedback.js
T
haelyraandGitHub f1fec0e539 feat: add retention feedback loop and honest support matrix (#2681)
* feat: add retention feedback loop

* test: retire obsolete README parity row guard

* fix: harden public feedback guidance

* fix: let feedback CLI output flush

* test: keep feedback help coverage focused
2026-08-04 21:42:25 -04:00

66 lines
1.4 KiB
JavaScript

#!/usr/bin/env node
const {
FEEDBACK_ROUTES,
getFeedbackPayload,
} = require('./lib/feedback-links');
function showHelp() {
process.stdout.write(`
Usage: ecc feedback [--json] [--help|-h]
Print ECC's low-friction public feedback routes. This command never uploads
diagnostics or reads project files.
`);
}
function parseArgs(argv) {
return argv.slice(2).reduce((parsed, arg) => {
if (arg === '--json') {
return { ...parsed, json: true };
}
if (arg === '--help' || arg === '-h') {
return { ...parsed, help: true };
}
throw new Error(`Unknown argument: ${arg}`);
}, { json: false, help: false });
}
function printHuman() {
process.stdout.write([
'ECC feedback',
'',
`Install or runtime problem:\n${FEEDBACK_ROUTES.problem}`,
'',
`Quick feedback (public GitHub issue):\n${FEEDBACK_ROUTES.feedback}`,
'',
`Feature idea:\n${FEEDBACK_ROUTES.feature}`,
'',
'ECC does not upload diagnostics or read project files. Redact sensitive information before posting publicly.',
'',
].join('\n'));
}
function main() {
try {
const options = parseArgs(process.argv);
if (options.help) {
showHelp();
return;
}
if (options.json) {
process.stdout.write(`${JSON.stringify(getFeedbackPayload(), null, 2)}\n`);
} else {
printHuman();
}
} catch (error) {
process.stderr.write(`Error: ${error.message}\n`);
process.exitCode = 1;
}
}
main();