{"id":930,"date":"2025-11-04T15:03:56","date_gmt":"2025-11-04T15:03:56","guid":{"rendered":"https:\/\/paultrowler.com\/wordpress\/?page_id=930"},"modified":"2025-11-05T16:34:34","modified_gmt":"2025-11-05T16:34:34","slug":"7-deadly-sins","status":"publish","type":"page","link":"https:\/\/paultrowler.com\/wordpress\/index.php\/7-deadly-sins\/","title":{"rendered":"7 deadly sins dealing with literature"},"content":{"rendered":"\n<!DOCTYPE html>\n<html lang=\"en\">\n<head>\n  <meta charset=\"utf-8\" \/>\n  <meta name=\"viewport\" content=\"width=device-width, initial-scale=1\" \/>\n  <title>Literature Review: 7 Deadly Sins Checker \u2014 Copy-Prompt Mode<\/title>\n  <script src=\"https:\/\/cdn.tailwindcss.com\"><\/script>\n  <script>\n    tailwind.config = {\n      theme: {\n        extend: {\n          colors: {\n            primary: {50:'#f0f9ff',100:'#e0f2fe',200:'#bae6fd',300:'#7dd3fc',400:'#38bdf8',500:'#0ea5e9',600:'#0284c7',700:'#0369a1',800:'#075985',900:'#0c4a6e'}\n          },\n          boxShadow: { soft:'0 10px 25px -10px rgba(8, 47, 73, 0.20)' },\n          borderRadius: { '2xl':'1.25rem' }\n        }\n      }\n    }\n  <\/script>\n  <style>\n    html, body { background: linear-gradient(to bottom, #f0f9ff, #ffffff); }\n    .container { max-width: 1000px; }\n    textarea { tab-size: 2; }\n    .prompt-segment { border-left: 4px solid #0ea5e9; padding-left: 1rem; margin: 1rem 0; }\n    .prompt-segment h4 { font-weight: 600; color: #075985; }\n    .prompt-segment-content { color: #334155; font-style: italic; }\n    .prompt-gap { background-color: #fef9c3; color: #92400e; padding: 1px 6px; border-radius: 4px; font-weight: 600; font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, \"Liberation Mono\", \"Courier New\", monospace; }\n    .prompt-gap-filled { background-color: #dcfce7; color: #166534; }\n  <\/style>\n<\/head>\n<body class=\"text-gray-900\">\n  <div class=\"container mx-auto px-4 py-8\">\n\n    <section class=\"mt-0 rounded-2xl border bg-white p-4 sm:p-6 shadow-soft\">\n      <div class=\"flex items-center justify-between gap-3\">\n        <h2 class=\"text-lg sm:text-xl font-semibold text-[#0c4a6e]\">Paste your text which engages with literature related to your doctorate<\/h2>\n        <button id=\"btnSample\" class=\"px-3 py-2 text-sm rounded-xl border hover:bg-primary-50\">Paste sample<\/button>\n      <\/div>\n\n      <textarea id=\"inputText\" class=\"mt-3 w-full h-56 md:h-64 rounded-xl border px-3 py-2 text-sm focus:outline-none focus:ring-2 focus:ring-primary-400\"\n        placeholder=\"Paste here to incorporate your material into the prompt\"><\/textarea>\n      <div class=\"mt-1 text-xs text-gray-500\"><span id=\"charCount\">0<\/span> characters<\/div>\n\n      <!-- Visible prompt excerpt -->\n      <div class=\"mt-6\">\n        <label class=\"block font-semibold text-[#075985] mb-2\">Generated Prompt (visible excerpt)<\/label>\n        <div id=\"prompt-output\" class=\"w-full text-[15px] leading-relaxed bg-primary-50 border border-primary-200 rounded-xl p-4\">\n          <!-- Filled by JS -->\n        <\/div>\n      <\/div>\n\n      <!-- Single combined action button -->\n      <div class=\"mt-4\">\n        <button id=\"btnBuildCopyGo\" class=\"w-full flex items-center justify-center py-2 px-4 border border-primary-300 rounded-md shadow-sm text-sm font-medium text-white bg-primary-600 hover:bg-primary-700 focus:outline-none focus:ring-2 focus:ring-offset-2 focus:ring-primary-500\">\n          <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20\" height=\"20\" class=\"h-4 w-4 mr-2\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\">\n            <path stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\" d=\"M8 16H6a2 2 0 01-2-2V6a2 2 0 012-2h8a2 2 0 012 2v2m-6 12h8a2 2 0 002-2v-8a2 2 0 00-2-2h-8a2 2 0 00-2 2v8a2 2 0 002 2z\"><\/path>\n          <\/svg>\n          <span id=\"copyGoText\">Copy prompt &amp; open ChatGPT<\/span>\n        <\/button>\n        <p class=\"text-[13px] leading-relaxed text-primary-800 mt-2 bg-primary-50 border border-primary-200 rounded-lg p-3\">\n          For security reasons browsers don\u2019t auto-paste \u2014 after ChatGPT opens, press <kbd>Ctrl\/\u2318+V<\/kbd> to paste the copied prompt into the chat box.\n        <\/p>\n      <\/div>\n\n      <!-- Hidden prompt (for copy only) -->\n      <textarea id=\"builtPrompt\" class=\"mt-4 w-full h-72 md:h-80 rounded-xl border px-3 py-2 text-sm hidden\" readonly><\/textarea>\n\n      <p id=\"errorMsg\" class=\"mt-3 text-sm text-red-600 hidden\"><\/p>\n    <\/section>\n\n    <section class=\"mt-6\">\n      <div class=\"rounded-2xl border bg-white overflow-hidden shadow-soft\">\n        <div class=\"flex items-center justify-between p-4 border-b\">\n          <h2 class=\"text-lg font-semibold\">What you\u2019ll get back<\/h2>\n        <\/div>\n        <div class=\"p-4 text-sm text-gray-700\">\n          <ul class=\"list-disc pl-5 space-y-1\">\n            <li>A table with three columns: <em>Text that violates<\/em> (short excerpt), <em>Violated sin<\/em> (exact label), <em>Why it violates<\/em> (1\u20132 sentences, actionable).<\/li>\n            <li>A short \u201cSocratic prompts\u201d section with 2 targeted questions for each sin found.<\/li>\n          <\/ul>\n        <\/div>\n      <\/div>\n    <\/section>\n\n    <footer class=\"mt-8 text-center text-xs text-gray-500\">\n      <!-- Copyright line -->\n      Copyright 2025 Professor Paul Trowler All rights reserved. For personal use only for educational purposes, no part of this code to be copied, reused or sold\n    <\/footer>\n  <\/div>\n\n  <script>\n  (function(){\n    const $ = (s)=>document.querySelector(s);\n\n    const PROMPT_VISIBLE_EXCERPT = (charCount) => `\n      <p>You are an expert academic writing coach for doctoral researchers.<\/p>\n      <div class=\"prompt-segment\">\n        <h4>Task Focus<\/h4>\n        <div class=\"prompt-segment-content\">\n          Analyse the pasted literature-engagement text for violations of the \u201cSeven Deadly Sins of Literature Reviews\u201d\n          and provide actionable, specific feedback.\n        <\/div>\n      <\/div>\n      <p><b>Your output includes:<\/b><\/p>\n      <ol class=\"list-decimal ml-6\">\n        <li>A markdown table with headers exactly: <code>Text that violates<\/code> | <code>Violated sin<\/code> | <code>Why it violates<\/code>.<\/li>\n        <li>Then a brief section titled <em>\u201cSocratic prompts\u201d<\/em> with 2 targeted questions for each sin found.<\/li>\n      <\/ol>\n      <p class=\"text-sm text-gray-600 mt-2\">Attached text length: <span class=\"${charCount ? 'prompt-gap-filled' : 'prompt-gap'}\">${charCount || 0}<\/span> characters.<\/p>\n    `;\n\n    \/\/ Hidden directives (prepended on copy; not shown in UI)\n    function hiddenDirectives(userText){\n      return [\n        \"Role: You are an expert academic writing coach for doctoral researchers.\",\n        \"Goal: Diagnose and improve literature-review writing using the \u201cSeven Deadly Sins of Literature Reviews\u201d.\",\n        \"Return ONLY the specified outputs: first a markdown table (with headers exactly: | Text that violates | Violated sin | Why it violates |), then a short 'Socratic prompts' section with 2 targeted questions for each sin that actually appeared.\",\n        \"Table rules:\",\n        \"- For 'Text that violates', quote \u2264220 characters from the user's text (no ellipses at both ends unless necessary).\",\n        \"- For 'Violated sin', use one of: No organisation, just listing; Abstract discussion, not grounded in the thesis; No criticality; Limited or excessive scope; Criteria for selection wrong; Wrong balance of criticality; Discussion of theory disconnected.\",\n        \"- For 'Why it violates', give 1\u20132 crisp, actionable sentences; avoid generic advice.\",\n        \"General rules:\",\n        \"- Be concrete and doctoral-specific; avoid platitudes.\",\n        \"- Prefer synthesis over listing; name the missing schema or logic where relevant.\",\n        \"- If multiple excerpts illustrate the same issue, choose the most representative 1\u20133; avoid redundancy.\",\n        \"- If no issues are found, produce an empty table (headers only) and add a 'Socratic prompts' section with 2 constructive next-step questions total.\",\n        \"Text to analyse:\",\n        \"<<<BEGIN-TEXT\",\n        userText || \"[No text provided]\",\n        \"END-TEXT>>>\"\n      ].join(\"\\\\n\");\n    }\n\n    function buildHiddenPrompt(userText){\n      const visiblePreface = \"You will receive instructions and the user's text. Follow the table format and then provide Socratic prompts as specified.\";\n      return hiddenDirectives(userText) + \"\\\\n\\\\n\" + visiblePreface;\n    }\n\n    function copyToClipboard(text){\n      if (navigator.clipboard && navigator.clipboard.writeText) {\n        return navigator.clipboard.writeText(text);\n      }\n      \/\/ Fallback\n      const ta = document.createElement('textarea');\n      ta.value = text; document.body.appendChild(ta); ta.select();\n      try { document.execCommand('copy'); } finally { document.body.removeChild(ta); }\n      return Promise.resolve();\n    }\n\n    function showError(msg){ const el=$('#errorMsg'); el.textContent=msg; el.classList.toggle('hidden', !msg); }\n\n    \/\/ typing in main textbox updates preview + charcount\n    $('#inputText').addEventListener('input', ()=>{\n      const v = $('#inputText').value || '';\n      $('#charCount').textContent = v.length;\n      $('#prompt-output').innerHTML = PROMPT_VISIBLE_EXCERPT(v.length);\n    });\n\n    \/\/ single combined: build prompt, copy, then open ChatGPT\n    $('#btnBuildCopyGo').addEventListener('click', async ()=>{\n      showError('');\n      const txt = ($('#inputText').value||'').trim();\n      if (!txt) { showError('Please paste some text first.'); return; }\n\n      \/\/ Build preview and hidden prompt\n      $('#prompt-output').innerHTML = PROMPT_VISIBLE_EXCERPT(txt.length);\n      $('#builtPrompt').value = buildHiddenPrompt(txt);\n\n      const hidden = $('#builtPrompt').value.trim();\n      try {\n        await copyToClipboard(hidden);\n        const btn = $('#btnBuildCopyGo');\n        const label = $('#copyGoText');\n        const prev = label.textContent;\n        label.textContent = 'Copied! Opening ChatGPT\u2026';\n        btn.classList.add('bg-green-600','hover:bg-green-700');\n\n        \/\/ Open ChatGPT\n        window.open('https:\/\/chatgpt.com', '_blank', 'noopener');\n\n        setTimeout(()=>{\n          label.textContent = prev;\n          btn.classList.remove('bg-green-600','hover:bg-green-700');\n        },1600);\n      } catch(e){\n        showError('Copy failed. You can select the text and copy manually.');\n      }\n    });\n\n    \/\/ Paste sample text\n    $('#btnSample').addEventListener('click', ()=>{\n      const sample = 'Scholars have long discussed student engagement. Smith (2010) argues that engagement improves outcomes. Jones and Patel (2012) report increased attendance. Brown et al. (2011) describe positive attitudes.\\n\\nThis literature is important. Many researchers say it has impact across contexts. Definitions vary widely across studies with little attempt to anchor them in this thesis.\\n\\nAs noted in the literature, there are several perspectives. \"Engagement is the degree to which students participate in educational activities\" (Taylor, 2008, p. 14).\\n\\nThere is a lot of work on this topic, but limited attention to methods.';\n      $('#inputText').value = sample;\n      $('#charCount').textContent = sample.length;\n      $('#prompt-output').innerHTML = PROMPT_VISIBLE_EXCERPT(sample.length);\n      showError('');\n    });\n\n    \/\/ initial state\n    $('#prompt-output').innerHTML = PROMPT_VISIBLE_EXCERPT(0);\n  })();\n  <\/script>\n  <!-- Copyright 2025 Professor Paul Trowler All rights reserved. For personal use only for educational purposes, no part of this code to be copied, reused or sold-->\n<\/body>\n<\/html>\n","protected":false},"excerpt":{"rendered":"<p>Literature Review: 7 Deadly Sins Checker \u2014 Copy-Prompt Mode Paste your text which engages with literature related to your doctorate Paste sample 0 characters Generated Prompt (visible excerpt) Copy prompt &amp; open ChatGPT For security reasons browsers don\u2019t auto-paste \u2014 after ChatGPT opens, press Ctrl\/\u2318+V to paste the copied prompt into the chat box. What [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"engaging-with-the-literature","meta":{"footnotes":""},"class_list":["post-930","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/paultrowler.com\/wordpress\/index.php\/wp-json\/wp\/v2\/pages\/930","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/paultrowler.com\/wordpress\/index.php\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/paultrowler.com\/wordpress\/index.php\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/paultrowler.com\/wordpress\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/paultrowler.com\/wordpress\/index.php\/wp-json\/wp\/v2\/comments?post=930"}],"version-history":[{"count":2,"href":"https:\/\/paultrowler.com\/wordpress\/index.php\/wp-json\/wp\/v2\/pages\/930\/revisions"}],"predecessor-version":[{"id":936,"href":"https:\/\/paultrowler.com\/wordpress\/index.php\/wp-json\/wp\/v2\/pages\/930\/revisions\/936"}],"wp:attachment":[{"href":"https:\/\/paultrowler.com\/wordpress\/index.php\/wp-json\/wp\/v2\/media?parent=930"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}